all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe46:5d84
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: c6abe996-5115-4e9b-bf1d-a7a63b42b338
        host_id: 4667d18e0398acd2fb730ad41ba32e35789c4ac8cd4c0875d25b316b
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe46:5d84
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.75
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.233
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe46:5d84
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job python-osism-test-setup explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/python-osism/.zuul.yaml@main#128>'
      - '<Job python-osism-test-setup explicit: None implied: None source: osism/python-osism/.zuul.yaml@main#133>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 0d06857e0023401c8c109ac2721607f6
      build_refs:
      - branch: main
        change: '1631'
        change_message: "chore(deps): update dependency tailwindcss to v4\n\nThis
          PR contains the following updates:\n\n| Package | Change | Age | Confidence
          |\n|---|---|---|---|\n| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
          | [`^3.4.17` -> `^4.0.0`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.17/4.1.11)
          | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.17/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tailwindlabs/tailwindcss
          (tailwindcss)</summary>\n\n### [`v4.1.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11)\n\n#####
          Fixed\n\n- Add heuristic to skip candidate migrations inside `emit(\u2026)`
          ([#&#8203;18330](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18330))\n-
          Extract candidates with variants in Clojure/ClojureScript keywords ([#&#8203;18338](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18338))\n-
          Document `--watch=always` in the CLI's usage ([#&#8203;18337](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18337))\n-
          Add support for Vite 7 to `@tailwindcss/vite` ([#&#8203;18384](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18384))\n\n###
          [`v4.1.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10)\n\n#####
          Fixed\n\n-   Fix incorrectly generated CSS when using percentages in arbitrary
          values with calc, e.g.: `w-[calc(100%-var(--offset))]` ([#&#8203;18289](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18289))\n\n###
          [`v4.1.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9)\n\n#####
          Fixed\n\n-   Correctly parse custom properties with strings containing semicolons
          ([#&#8203;18251](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18251))\n-
          \  Upgrade: Migrate arbitrary modifiers without percentage signs to bare
          values (e.g. `/[0.16]` \u2192 `/16`) ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
          \  Upgrade: Migrate CSS variable shorthands where fallback value contains
          function call ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
          \  Upgrade: Migrate negative arbitrary values to negative bare values (e.g.
          `mb-[-32rem]` \u2192 `-mb-128`) ([#&#8203;18212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18212))\n-
          \  Upgrade: Do not migrate `blur` in `wire:model.blur` ([#&#8203;18216](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18216))\n-
          \  Don't add spaces around CSS dashed idents when formatting math expressions
          ([#&#8203;18220](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18220))\n\n###
          [`v4.1.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8)\n\n#####
          Added\n\n-   Improve error messages when `@apply` fails ([#&#8203;18059](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18059))\n\n#####
          Fixed\n\n-   Upgrade: Do not migrate declarations that look like candidates
          in `<style>` blocks ([#&#8203;18057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18057),
          [18068](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18068))\n-
          \  Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos
          ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
          \  Upgrade: Don't error when updating dependencies in pnpm monorepos ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
          \  Upgrade: Migrate deprecated `order-none` to `order-0` ([#&#8203;18126](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18126))\n-
          \  Support Leptos `class:` attributes when extracting classes ([#&#8203;18093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18093))\n-
          \  Fix \"Cannot read properties of undefined\" crash on malformed arbitrary
          value ([#&#8203;18133](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18133))\n-
          \  Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around
          ([#&#8203;18154](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18154))\n-
          \  Fix Haml pre-processing crash when there is no `\\n` at the end of the
          file ([#&#8203;18155](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18155))\n-
          \  Ignore `.pnpm-store` folders by default (can be overridden by `@source
          \u2026` rules) ([#&#8203;18163](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18163))\n-
          \  Fix PostCSS crash when calling `toJSON()` ([#&#8203;18083](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18083))\n\n###
          [`v4.1.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7)\n\n#####
          Added\n\n-   Upgrade: Migrate bare values to named values ([#&#8203;18000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18000))\n-
          \  Upgrade: Added cache to improve template migration performance ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n#####
          Fixed\n\n-   Allow `_` before numbers during candidate extraction ([#&#8203;17961](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17961))\n-
          \  Prevent duplicate suggestions when using `@theme` and `@utility` together
          ([#&#8203;17675](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17675))\n-
          \  Ensure that media queries within `::before` and `::after` pseudo selectors
          create valid CSS rules in production builds ([#&#8203;17979](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17979))\n-
          \  Ensure that the standalone CLI does not leave temporary files behind
          ([#&#8203;17981](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17981))\n-
          \  Ensure `-rotate-*` utilities properly negate arbitrary values ([#&#8203;18014](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18014))\n-
          \  Ignore custom variants using `:merge(\u2026)` selectors in legacy JS
          plugins ([#&#8203;18020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18020))\n-
          \  Ensure classes containing `.` are properly extracted from Clojure files
          ([#&#8203;18038](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18038))\n-
          \  Upgrade: Fix error when using `@import \u2026 source(\u2026)` ([#&#8203;17963](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17963))\n-
          \  Upgrade: Change casing of utilities with named values to kebab-case to
          match updated theme variables ([#&#8203;18017](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18017))\n-
          \  Upgrade: Don't migrate strings that match utility names in Vue attribute
          bindings other than `class` ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n###
          [`v4.1.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6)\n\n#####
          Added\n\n-   Upgrade: Automatically convert arbitrary values to named values
          when possible (e.g. `h-[1lh]` to `h-lh`) ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831),
          [#&#8203;17854](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17854))\n-
          \  Upgrade: Update dependencies in parallel for improved performance ([#&#8203;17898](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17898))\n-
          \  Add detailed logging about `@source` directives, discovered files and
          scanned files when using `DEBUG=*` ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906),
          [#&#8203;17952](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17952))\n-
          \  Add support for generating source maps in development ([#&#8203;17775](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17775))\n\n#####
          Fixed\n\n-   Ensure negative arbitrary `scale` values generate negative
          values ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831))\n-
          \  Fix HAML extraction with embedded Ruby ([#&#8203;17846](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17846))\n-
          \  Don't scan files for utilities when using `@reference` ([#&#8203;17836](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17836))\n-
          \  Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand
          `bg-red-500/(--my_opacity)` ([#&#8203;17889](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17889))\n-
          \  Don't scan `.log` files for classes by default ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906))\n-
          \  Ensure that custom utilities applying other custom utilities don't swallow
          nested `@apply` rules ([#&#8203;17925](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17925))\n-
          \  Download platform specific package if `optionalDependencies` are skipped
          ([#&#8203;17929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17929))\n\n###
          [`v4.1.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#415---2025-04-30)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.4...v4.1.5)\n\n#####
          Added\n\n-   Support using `@tailwindcss/upgrade` to upgrade between versions
          of v4.\\* ([#&#8203;17717](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17717))\n-
          \  Add `h-lh` / `min-h-lh` / `max-h-lh` utilities ([#&#8203;17790](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17790))\n-
          \  Transition `display`, `visibility`, `content-visibility`, `overlay`,
          and `pointer-events` when using `transition` to simplify `@starting-style`
          usage ([#&#8203;17812](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17812))\n\n#####
          Fixed\n\n-   Don't scan `.geojson` or `.db` files for classes by default
          ([#&#8203;17700](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17700),
          [#&#8203;17711](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17711))\n-
          \  Hide default shadow suggestions when missing default shadow theme keys
          ([#&#8203;17743](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17743))\n-
          \  Replace `_` with `.` in theme suggestions for `@utility` if surrounded
          by digits ([#&#8203;17733](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17733))\n-
          \  Skip `color-mix(\u2026)` when opacity is `100%` ([#&#8203;17815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17815))\n-
          \  PostCSS: Ensure that errors in imported stylesheets are recoverable ([#&#8203;17754](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17754))\n-
          \  Upgrade: Bump all Tailwind CSS related dependencies during upgrade ([#&#8203;17763](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17763))\n-
          \  Upgrade: Don't add `-` to variants starting with `@` ([#&#8203;17814](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17814))\n-
          \  Upgrade: Don't format stylesheets that didn't change when upgrading ([#&#8203;17824](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17824))\n\n###
          [`v4.1.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#414---2025-04-14)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.3...v4.1.4)\n\n#####
          Added\n\n-   Add experimental `@tailwindcss/oxide-wasm32-wasi` target for
          running Tailwind in browser environments like StackBlitz ([#&#8203;17558](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17558))\n\n#####
          Fixed\n\n-   Ensure `color-mix(\u2026)` polyfills do not cause used CSS
          variables to be removed ([#&#8203;17555](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17555))\n-
          \  Ensure `color-mix(\u2026)` polyfills create fallbacks for theme variables
          that reference other theme variables ([#&#8203;17562](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17562))\n-
          \  Fix brace expansion in declining ranges like `{10..0..5}` and `{0..10..-5}`
          ([#&#8203;17591](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17591))\n-
          \  Work around a Chrome rendering bug when using the `skew-*` utilities
          ([#&#8203;17627](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17627))\n-
          \  Ensure container query variant names can contain hyphens ([#&#8203;17628](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17628))\n-
          \  Ensure `shadow-inherit`, `inset-shadow-inherit`, `drop-shadow-inherit`,
          and `text-shadow-inherit` inherit the shadow color ([#&#8203;17647](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17647))\n-
          \  Ensure compatibility with array tuples used in `fontSize` JS theme keys
          ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n-
          \  Ensure folders with binary file extensions in their names are scanned
          for utilities ([#&#8203;17595](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17595))\n-
          \  Upgrade: Convert `fontSize` array tuple syntax to CSS theme variables
          ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n\n###
          [`v4.1.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#413---2025-04-04)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.2...v4.1.3)\n\n#####
          Fixed\n\n- Show warning when using unsupported bare value data type in `--value(\u2026)`
          ([#&#8203;17464](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17464))\n-
          PostCSS: Ensure changes to the input CSS file don't generate stale output
          when using Turbopack ([#&#8203;17554](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17554))\n-
          Ensure classes are detected in Ruby's `%w` syntax in Slim templates ([#&#8203;17557](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17557))\n\n###
          [`v4.1.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#412---2025-04-03)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.1...v4.1.2)\n\n#####
          Fixed\n\n-   Don't rely on the presence of `@layer base` to polyfill `@property`
          ([#&#8203;17506](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17506))\n-
          \  Support setting multiple inset shadows as arbitrary values ([#&#8203;17523](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17523))\n-
          \  Fix `drop-shadow-*` utilities that are defined with multiple shadows
          ([#&#8203;17515](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17515))\n-
          \  PostCSS: Fix race condition when two changes are queued concurrently
          ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
          \  PostCSS: Ensure files containing `@tailwind utilities` are processed
          ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
          \  Ensure the `color-mix(\u2026)` polyfill creates fallbacks even when using
          colors that cannot be statically analyzed ([#&#8203;17513](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17513))\n-
          \  Fix slow incremental builds with `@tailwindcss/vite` and `@tailwindcss/postscss`
          (especially on Windows) ([#&#8203;17511](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17511))\n-
          \  Vite: Fix missing CSS file in Qwik setups ([#&#8203;17533](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17533))\n\n###
          [`v4.1.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#411---2025-04-02)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.0...v4.1.1)\n\n#####
          Fixed\n\n-   Disable padding in `@source inline(\u2026)` brace expansion
          ([#&#8203;17491](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17491))\n-
          \  Inject polyfills after `@import` and body-less `@layer` ([#&#8203;17493](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17493))\n-
          \  Ensure `@tailwindcss/cli` does not contain an import for `jiti` ([#&#8203;17502](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17502))\n\n###
          [`v4.1.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#410---2025-04-01)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.17...v4.1.0)\n\n#####
          Added\n\n-   Add `details-content` variant ([#&#8203;15319](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15319))\n-
          \  Add `inverted-colors` variant ([#&#8203;11693](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11693))\n-
          \  Add `noscript` variant ([#&#8203;11929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11929),
          [#&#8203;17431](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17431))\n-
          \  Add `items-baseline-last` and `self-baseline-last` utilities ([#&#8203;13888](https://redirect.github.com/tailwindlabs/tailwindcss/pull/13888),
          [#&#8203;17476](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17476))\n-
          \  Add `pointer-none`, `pointer-coarse`, and `pointer-fine` variants ([#&#8203;16946](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16946))\n-
          \  Add `any-pointer-none`, `any-pointer-coarse`, and `any-pointer-fine`
          variants ([#&#8203;16941](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16941))\n-
          \  Add safe alignment utilities ([#&#8203;14607](https://redirect.github.com/tailwindlabs/tailwindcss/pull/14607))\n-
          \  Add `user-valid` and `user-invalid` variants ([#&#8203;12370](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12370))\n-
          \  Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#&#8203;12128](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12128))\n-
          \  Add `@source inline(\u2026)` and `@source not inline(\u2026)` ([#&#8203;17147](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17147))\n-
          \  Add `@source not \"\u2026\"` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Add `text-shadow-*` utilities ([#&#8203;17389](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17389))\n-
          \  Add `mask-*` utilities ([#&#8203;17134](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17134))\n-
          \  Add `bg-{position,size}-*` utilities for arbitrary values ([#&#8203;17432](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17432))\n-
          \  Add `shadow-*/<alpha>`, `inset-shadow-*/<alpha>`, `drop-shadow-*/<alpha>`,
          and `text-shadow-*/<alpha>` utilities to control shadow opacity ([#&#8203;17398](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17398),
          [#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
          \  Add `drop-shadow-<color>` utilities ([#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
          \  Improve compatibility with older versions of Safari and Firefox ([#&#8203;17435](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17435))\n\n#####
          Fixed\n\n-   Follow symlinks when resolving `@source` directives ([#&#8203;17391](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17391))\n-
          \  Don't scan ignored files for classes when changing an ignored file triggers
          a rebuild using `@tailwindcss/cli` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Support negated `content` rules in legacy JavaScript configuration ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Interpret syntax like `@(\"@&#8203;\")md:\u2026` as `@md:\u2026` in Razor
          files ([#&#8203;17427](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17427))\n-
          \  Disallow top-level braces, top-level semicolons, and unbalanced parentheses
          and brackets in arbitrary values ([#&#8203;17361](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17361))\n-
          \  Ensure the `--theme(\u2026)` function still resolves to the CSS variables
          when using legacy JS plugins ([#&#8203;17458](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17458))\n-
          \  Detect used theme variables in CSS module files ([#&#8203;17433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17433),
          [#&#8203;17467](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17467))\n\n#####
          Changed\n\n-   Ignore `node_modules` by default (can be overridden by `@source
          \u2026` rules) ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  `@source` rules that include file extensions or point inside `node_modules/`
          folders no longer consider your `.gitignore` rules ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Deprecate `bg-{left,right}-{top,bottom}` in favor of `bg-{top,bottom}-{left,right}`
          utilities ([#&#8203;17378](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17378))\n-
          \  Deprecate `object-{left,right}-{top,bottom}` in favor of `object-{top,bottom}-{left,right}`
          utilities ([#&#8203;17437](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17437))\n\n###
          [`v4.0.17`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17)\n\n#####
          Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
          ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
          [`v4.0.16`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4016---2025-03-25)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.15...v4.0.16)\n\n#####
          Added\n\n-   Add support for literal values in `--value('\u2026')` and `--modifier('\u2026')`
          ([#&#8203;17304](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17304))\n\n#####
          Fixed\n\n-   Fix class extraction followed by `(` in Pug ([#&#8203;17320](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17320))\n-
          \  Ensure `@keyframes` for theme animations are emitted if they are referenced
          following a comma ([#&#8203;17352](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17352))\n-
          \  Vite: Ensure that updates to an imported CSS file are properly propagated
          after updating source files ([#&#8203;17347](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17347))\n-
          \  Pre process `Slim` templates embedded in Ruby files ([#&#8203;17336](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17336))\n-
          \  Error when input and output files resolve to the same file when using
          the CLI ([#&#8203;17311](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17311))\n-
          \  Add missing suggestions when `--spacing(--value(integer, number))` is
          used ([#&#8203;17308](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17308))\n-
          \  Add `::-webkit-details-marker` pseudo to `marker` variant ([#&#8203;17362](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17362))\n\n###
          [`v4.0.15`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4015---2025-03-20)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.14...v4.0.15)\n\n#####
          Fixed\n\n- Fix incorrect angle in `-bg-conic-*` utilities ([#&#8203;17174](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17174))\n-
          Fix `border-[12px_4px]` being interpreted as a `border-color` instead of
          a `border-width` ([#&#8203;17248](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17248))\n-
          Work around a crash in Safari 16.4 and 16.5 when using the default Preflight
          styles ([#&#8203;17306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17306))\n-
          Pre-process `<template lang=\"\u2026\">` in Vue files ([#&#8203;17252](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17252))\n-
          Ensure that all CSS variables used by Preflight are prefixed ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n-
          Prevent segfault when loaded in a worker thread on Linux ([#&#8203;17276](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17276))\n-
          Ensure multiple `--value(\u2026)` or `--modifier(\u2026)` calls don't delete
          subsequent declarations ([#&#8203;17273](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17273))\n-
          Fix class extraction followed by `(` in Slim ([#&#8203;17278](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17278))\n-
          Export `PluginUtils` from `tailwindcss/plugin` for compatibility with v3
          ([#&#8203;17299](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17299))\n-
          Remove redundant `line-height: initial` from Preflight ([#&#8203;15212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15212))\n-
          Increase Standalone hardware compatibility on macOS x64 builds ([#&#8203;17267](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17267))\n-
          Ensure that the CSS file rebuilds if a new CSS variable is used from templates
          ([#&#8203;17301](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17301))\n\n#####
          Changed\n\n- The `--theme(\u2026)` function now returns CSS variables from
          your theme variables unless used inside positions where CSS variables are
          invalid (e.g. inside `@media` queries) ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n\n###
          [`v4.0.14`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.13...v4.0.14)\n\n#####
          Fixed\n\n- Do not extract candidates with JS string interpolation `${` ([#&#8203;17142](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17142))\n-
          Fix extraction of variants containing `.` character ([#&#8203;17153](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17153))\n-
          Fix extracting candidates in Clojure/ClojureScript ([#&#8203;17087](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17087))\n\n###
          [`v4.0.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4013---2025-03-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.12...v4.0.13)\n\n#####
          Fixed\n\n- Fix Haml pre-processing ([#&#8203;17051](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17051))\n-
          Ensure `.node` and `.wasm` files are not scanned for utilities ([#&#8203;17123](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17123))\n-
          Improve performance when scanning JSON files ([#&#8203;17125](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17125))\n-
          Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors
          ([#&#8203;17094](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17094),
          [#&#8203;17085](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17085),
          [#&#8203;17113](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17113))\n-
          Don't create invalid CSS when encountering a link wrapped in square brackets
          ([#&#8203;17129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17129))\n\n###
          [`v4.0.12`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4012---2025-03-07)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.11...v4.0.12)\n\n#####
          Fixed\n\n- Vite: Fix `url(\u2026)` rebasing in transitively imported CSS
          files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
          PostCSS: Rebase `url(\u2026)`s in imported CSS files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
          Ensure utilities are sorted based on their actual property order ([#&#8203;16995](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16995))\n-
          Ensure strings in Pug and Slim templates are handled correctly ([#&#8203;17000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17000))\n-
          Ensure classes between `}` and `{` are properly extracted ([#&#8203;17001](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17001))\n-
          Fix `razor`/`cshtml` pre-processing ([#&#8203;17027](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17027))\n-
          Ensure extracting candidates from JS embedded in a PHP string works as expected
          ([#&#8203;17031](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17031))\n\n###
          [`v4.0.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4011---2025-03-06)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.10...v4.0.11)\n\n#####
          Fixed\n\n- Ensure classes containing `--` are extracted correctly ([#&#8203;16972](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16972))\n-
          Ensure classes containing numbers followed by dash or underscore are extracted
          correctly ([#&#8203;16980](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16980))\n-
          Ensure arbitrary container queries are extracted correctly ([#&#8203;16984](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16984))\n-
          Ensure classes ending in `[` are extracted in Slim templating language ([#&#8203;16985](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16985))\n-
          Ensure arbitrary variables with data types are extracted correctly ([#&#8203;16986](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16986))\n\n###
          [`v4.0.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4010---2025-03-05)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.9...v4.0.10)\n\n#####
          Added\n\n-   Add `col-<number>` and `row-<number>` utilities for `grid-column`
          and `grid-row` ([#&#8203;15183](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15183))\n\n#####
          Fixed\n\n-   Ensure `not-*` does not remove `:is(\u2026)` from variants
          ([#&#8203;16825](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16825))\n-
          \  Ensure `@keyframes` are correctly emitted when using a prefix ([#&#8203;16850](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16850))\n-
          \  Don't swallow `@utility` declarations when `@apply` is used in nested
          rules ([#&#8203;16940](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16940))\n-
          \  Ensure `outline-hidden` behaves like `outline-none` outside of forced
          colors mode ([#&#8203;16943](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16943))\n-
          \  Allow `!important` on CSS variables again ([#&#8203;16873](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16873))\n-
          \  Vite: Do not crash when encountering an `.svg` file with `#` or `?` in
          the filename ([#&#8203;16957](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16957))\n-
          \  Ensure utilities are properly detected within square brackets ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Ensure utilities are properly detected using Angular's conditional class
          binding syntax ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Ensure utilities starting with numbers are properly extracted from Slim
          templates ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Discard arbitrary property candidates that have guaranteed-invalid property
          names ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n#####
          Changed\n\n-   Removed `max-w-auto` and `max-h-auto` utilities as they generate
          invalid CSS ([#&#8203;16917](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16917))\n-
          \  Replaced the existing candidate extractor with a brand new extractor
          to improve maintainability, correctness, and performance ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n###
          [`v4.0.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#409---2025-02-25)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.8...v4.0.9)\n\n#####
          Fixed\n\n-   Make JS APIs available to plugins and configs in the Standalone
          CLI ([#&#8203;15934](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15934))\n-
          \  Vite: Don't crash when importing a virtual module from JavaScript that
          ends in `.css` ([#&#8203;16780](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16780))\n-
          \  Fix an issue where `@reference \"\u2026\"` would sometimes omit keyframe
          animations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n-
          \  Ensure `z-*!` utilities are properly marked as `!important` ([#&#8203;16795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16795))\n-
          \  Read UTF-8 CSS files that start with a byte-order mark (BOM) ([#&#8203;16796](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16796))\n-
          \  Ensure nested functions in selectors used with JavaScript plugins are
          not truncated ([#&#8203;16802](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16802))\n\n#####
          Changed\n\n-   Emit variable fallbacks when using `@reference \"\u2026\"`
          instead of duplicate CSS variable declarations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n\n###
          [`v4.0.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#408---2025-02-21)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8)\n\n#####
          Added\n\n- Allow `@import` with `theme(\u2026)` options for stylesheets
          that contain more than just `@theme` rules ([#&#8203;16514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16514))\n\n#####
          Fixed\n\n- Don't add `!important` to CSS variable declarations when using
          the important modifier ([#&#8203;16668](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16668))\n-
          Vite: Ignore files and directories specified in your `.gitignore` file when
          using automatic source detection([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Don't rely on the module graph for detecting candidates to ensure
          setups with multiple Vite builds work as expected ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Ensure Astro production builds always contain classes used in client-only
          components ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Always scan raw file contents for utility classes before any other
          transforms have been applied to ensure utility classes are scanned without
          any additional escaping ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Ensure utilities with more declarations are always sorted before utilities
          with fewer declarations when utilities only define CSS variables ([#&#8203;16715](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16715))\n-
          Only include `translate-z-px` utilities once in compiled CSS ([#&#8203;16718](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16718))\n\n#####
          Changed\n\n- Don't include theme variables that aren't used in compiled
          CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211),
          [#&#8203;16676](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16676))\n\n###
          [`v4.0.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#407---2025-02-18)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7)\n\n#####
          Fixed\n\n- Export `tailwindcss/lib/util/flattenColorPalette.js` for backward
          compatibility ([#&#8203;16411](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16411))\n-
          Fix sorting of numeric utility suggestions when they have different magnitudes
          ([#&#8203;16414](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16414))\n-
          Show suggestions for fractions in IntelliSense ([#&#8203;16353](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16353))\n-
          Don\u2019t replace `_` in suggested theme keys ([#&#8203;16433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16433))\n-
          Ensure `--default-outline-width` can be used to change the `outline-width`
          value of the `outline` utility ([#&#8203;16469](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16469))\n-
          Ensure drop shadow utilities don't inherit unexpectedly ([#&#8203;16471](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16471))\n-
          Export config and plugin types from `tailwindcss/plugin` for backward compatibility
          ([#&#8203;16505](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16505))\n-
          Ensure JavaScript plugins that emit nested rules referencing the utility
          name work as expected ([#&#8203;16539](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16539))\n-
          Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows
          builds ([#&#8203;16602](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16602))\n-
          Ensure that Next.js splat routes are scanned for classes ([#&#8203;16457](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16457))\n-
          Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#&#8203;16623](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16623))\n-
          Upgrade: Report errors when updating dependencies ([#&#8203;16504](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16504))\n-
          Upgrade: Ensure a `darkMode` JS config setting with block syntax converts
          to use `@slot` ([#&#8203;16507](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16507))\n-
          Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss`
          are installed when upgrading ([#&#8203;16620](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16620))\n\n###
          [`v4.0.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#406---2025-02-10)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6)\n\n#####
          Fixed\n\n- Revert change to no longer include theme variables that aren't
          used in compiled CSS ([#&#8203;16403](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16403))\n-
          Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image
          placeholder=\"blur\" />` ([#&#8203;16405](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16405))\n\n###
          [`v4.0.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#405---2025-02-08)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5)\n\n#####
          Added\n\n- Add `@theme static` option for always including theme variables
          in compiled CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n#####
          Fixed\n\n- Remove rogue `console.log` from `@tailwindcss/vite` ([#&#8203;16307](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16307))\n\n#####
          Changed\n\n- Don't include theme variables that aren't used in compiled
          CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n###
          [`v4.0.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#404---2025-02-06)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4)\n\n#####
          Fixed\n\n-   Fix a crash when setting JS theme values to `null` ([#&#8203;16210](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16210))\n-
          \  Ensure escaped underscores in CSS variables in arbitrary values are properly
          unescaped ([#&#8203;16206](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16206))\n-
          \  Ensure that the `containers` JS theme key is added to the `--container-*`
          namespace ([#&#8203;16169](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16169))\n-
          \  Ensure theme `@keyframes` are generated even if an `--animation-*` variable
          spans multiple lines ([#&#8203;16237](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16237))\n-
          \  Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#&#8203;16238](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16238))\n-
          \  Fix `order-first` and `order-last` for Firefox ([#&#8203;16266](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16266))\n-
          \  Fix support for older instruction sets on Linux x64 builds of the standalone
          CLI ([#&#8203;16244](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16244))\n-
          \  Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files
          ([#&#8203;16274](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16274))\n-
          \  Ensure Node addons are packaged correctly with FreeBSD builds ([#&#8203;16277](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16277))\n-
          \  Fix an issue where `@variant` inside a referenced stylesheet could cause
          a stack overflow ([#&#8203;16300](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16300))\n\n###
          [`v4.0.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#403---2025-02-01)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3)\n\n#####
          Fixed\n\n- Fix incorrect removal of `@import url();` ([#&#8203;16144](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16144))\n\n###
          [`v4.0.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#402---2025-01-31)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2)\n\n#####
          Fixed\n\n- Only generate positive `grid-cols-*` and `grid-rows-*` utilities
          ([#&#8203;16020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16020))\n-
          Ensure escaped theme variables are handled correctly ([#&#8203;16064](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16064))\n-
          Ensure we process Tailwind CSS features when only using `@reference` or
          `@variant` ([#&#8203;16057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16057))\n-
          Refactor gradient implementation to work around [prettier/prettier#17058](https://redirect.github.com/prettier/prettier/issues/17058)
          ([#&#8203;16072](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16072))\n-
          Vite: Ensure hot-reloading works with SolidStart setups ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
          Vite: Fix a crash when starting the development server in SolidStart setups
          ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
          Vite: Don't rebase URLs that appear to be aliases ([#&#8203;16078](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16078))\n-
          Vite: Transform `<style>` blocks in HTML files ([#&#8203;16069](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16069))\n-
          Prevent camel-casing CSS custom properties added by JavaScript plugins ([#&#8203;16103](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16103))\n-
          Do not emit `@keyframes` in `@theme reference` ([#&#8203;16120](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16120))\n-
          Discard invalid declarations when parsing CSS ([#&#8203;16093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16093))\n-
          Do not emit empty CSS rules and at-rules ([#&#8203;16121](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16121))\n-
          Handle `@variant` when at the top-level of a stylesheet ([#&#8203;16129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16129))\n\n###
          [`v4.0.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1)\n\n#####
          Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
          ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
          [`v4.0.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#400---2025-01-21)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.17...v4.0.0)\n\n#####
          Added\n\n- [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine)
          \u2014 where full builds are up to 5x faster, and incremental builds are
          over 100x faster \u2014 and measured in microseconds.\n- [Designed for the
          modern web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web)
          \u2014 built on cutting-edge CSS features like cascade layers, registered
          custom properties with `@property`, and `color-mix()`.\n- [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation)
          \u2014 fewer dependencies, zero configuration, and just a single line of
          code in your CSS file.\n- [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin)
          \u2014 tight integration for maximum performance and minimum configuration.\n-
          [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection)
          \u2014 all of your template files are discovered automatically, with no
          configuration required.\n- [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support)
          \u2014 no additional tooling necessary to bundle multiple CSS files.\n-
          [CSS-first configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration)
          \u2014 a reimagined developer experience where you customize and extend
          the framework directly in CSS instead of a JavaScript configuration file.\n-
          [CSS theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables)
          \u2014 all of your design tokens exposed as native CSS variables so you
          can access them anywhere.\n- [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants)
          \u2014 stop guessing what values exist in your spacing scale, or extending
          your configuration for things like basic data attributes.\n- [Modernized
          P3 color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette)
          \u2014 a redesigned, more vivid color palette that takes full advantage
          of modern display technology.\n- [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries)
          \u2014 first-class APIs for styling elements based on their container size,
          no plugins required.\n- [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities)
          \u2014 transform elements in 3D space directly in your HTML.\n- [Expanded
          gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis)
          \u2014 radial and conic gradients, interpolation modes, and more.\n- [@&#8203;starting-style
          support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support)
          \u2014 a new variant you can use to create enter and exit transitions, without
          the need for JavaScript.\n- [not-\\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant)
          \u2014 style an element only when it doesn't match another variant, custom
          selector, or media or feature query.\n- [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants)
          \u2014 including support for `color-scheme`, `field-sizing`, complex shadows,
          `inert`, and more.\n\nStart using Tailwind CSS v4.0 today by [installing
          it in a new project](https://tailwindcss.com/docs/installation/), or playing
          with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/).\n\nFor
          existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide)
          and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool)
          to get you on the latest version as quickly and painlessly as possible.\n\nFor
          a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4).\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/python-osism/pull/1631
        commit_id: 7d41171fada464ec42a2e74098113a422ae624e4
        patchset: 7d41171fada464ec42a2e74098113a422ae624e4
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      buildset: ef234ebbb18c4af7859a60b77d0eca8f
      buildset_refs:
      - branch: main
        change: '1631'
        change_message: "chore(deps): update dependency tailwindcss to v4\n\nThis
          PR contains the following updates:\n\n| Package | Change | Age | Confidence
          |\n|---|---|---|---|\n| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
          | [`^3.4.17` -> `^4.0.0`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.17/4.1.11)
          | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.17/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tailwindlabs/tailwindcss
          (tailwindcss)</summary>\n\n### [`v4.1.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11)\n\n#####
          Fixed\n\n- Add heuristic to skip candidate migrations inside `emit(\u2026)`
          ([#&#8203;18330](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18330))\n-
          Extract candidates with variants in Clojure/ClojureScript keywords ([#&#8203;18338](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18338))\n-
          Document `--watch=always` in the CLI's usage ([#&#8203;18337](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18337))\n-
          Add support for Vite 7 to `@tailwindcss/vite` ([#&#8203;18384](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18384))\n\n###
          [`v4.1.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10)\n\n#####
          Fixed\n\n-   Fix incorrectly generated CSS when using percentages in arbitrary
          values with calc, e.g.: `w-[calc(100%-var(--offset))]` ([#&#8203;18289](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18289))\n\n###
          [`v4.1.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9)\n\n#####
          Fixed\n\n-   Correctly parse custom properties with strings containing semicolons
          ([#&#8203;18251](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18251))\n-
          \  Upgrade: Migrate arbitrary modifiers without percentage signs to bare
          values (e.g. `/[0.16]` \u2192 `/16`) ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
          \  Upgrade: Migrate CSS variable shorthands where fallback value contains
          function call ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
          \  Upgrade: Migrate negative arbitrary values to negative bare values (e.g.
          `mb-[-32rem]` \u2192 `-mb-128`) ([#&#8203;18212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18212))\n-
          \  Upgrade: Do not migrate `blur` in `wire:model.blur` ([#&#8203;18216](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18216))\n-
          \  Don't add spaces around CSS dashed idents when formatting math expressions
          ([#&#8203;18220](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18220))\n\n###
          [`v4.1.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8)\n\n#####
          Added\n\n-   Improve error messages when `@apply` fails ([#&#8203;18059](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18059))\n\n#####
          Fixed\n\n-   Upgrade: Do not migrate declarations that look like candidates
          in `<style>` blocks ([#&#8203;18057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18057),
          [18068](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18068))\n-
          \  Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos
          ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
          \  Upgrade: Don't error when updating dependencies in pnpm monorepos ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
          \  Upgrade: Migrate deprecated `order-none` to `order-0` ([#&#8203;18126](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18126))\n-
          \  Support Leptos `class:` attributes when extracting classes ([#&#8203;18093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18093))\n-
          \  Fix \"Cannot read properties of undefined\" crash on malformed arbitrary
          value ([#&#8203;18133](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18133))\n-
          \  Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around
          ([#&#8203;18154](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18154))\n-
          \  Fix Haml pre-processing crash when there is no `\\n` at the end of the
          file ([#&#8203;18155](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18155))\n-
          \  Ignore `.pnpm-store` folders by default (can be overridden by `@source
          \u2026` rules) ([#&#8203;18163](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18163))\n-
          \  Fix PostCSS crash when calling `toJSON()` ([#&#8203;18083](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18083))\n\n###
          [`v4.1.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7)\n\n#####
          Added\n\n-   Upgrade: Migrate bare values to named values ([#&#8203;18000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18000))\n-
          \  Upgrade: Added cache to improve template migration performance ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n#####
          Fixed\n\n-   Allow `_` before numbers during candidate extraction ([#&#8203;17961](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17961))\n-
          \  Prevent duplicate suggestions when using `@theme` and `@utility` together
          ([#&#8203;17675](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17675))\n-
          \  Ensure that media queries within `::before` and `::after` pseudo selectors
          create valid CSS rules in production builds ([#&#8203;17979](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17979))\n-
          \  Ensure that the standalone CLI does not leave temporary files behind
          ([#&#8203;17981](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17981))\n-
          \  Ensure `-rotate-*` utilities properly negate arbitrary values ([#&#8203;18014](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18014))\n-
          \  Ignore custom variants using `:merge(\u2026)` selectors in legacy JS
          plugins ([#&#8203;18020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18020))\n-
          \  Ensure classes containing `.` are properly extracted from Clojure files
          ([#&#8203;18038](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18038))\n-
          \  Upgrade: Fix error when using `@import \u2026 source(\u2026)` ([#&#8203;17963](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17963))\n-
          \  Upgrade: Change casing of utilities with named values to kebab-case to
          match updated theme variables ([#&#8203;18017](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18017))\n-
          \  Upgrade: Don't migrate strings that match utility names in Vue attribute
          bindings other than `class` ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n###
          [`v4.1.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6)\n\n#####
          Added\n\n-   Upgrade: Automatically convert arbitrary values to named values
          when possible (e.g. `h-[1lh]` to `h-lh`) ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831),
          [#&#8203;17854](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17854))\n-
          \  Upgrade: Update dependencies in parallel for improved performance ([#&#8203;17898](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17898))\n-
          \  Add detailed logging about `@source` directives, discovered files and
          scanned files when using `DEBUG=*` ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906),
          [#&#8203;17952](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17952))\n-
          \  Add support for generating source maps in development ([#&#8203;17775](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17775))\n\n#####
          Fixed\n\n-   Ensure negative arbitrary `scale` values generate negative
          values ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831))\n-
          \  Fix HAML extraction with embedded Ruby ([#&#8203;17846](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17846))\n-
          \  Don't scan files for utilities when using `@reference` ([#&#8203;17836](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17836))\n-
          \  Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand
          `bg-red-500/(--my_opacity)` ([#&#8203;17889](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17889))\n-
          \  Don't scan `.log` files for classes by default ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906))\n-
          \  Ensure that custom utilities applying other custom utilities don't swallow
          nested `@apply` rules ([#&#8203;17925](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17925))\n-
          \  Download platform specific package if `optionalDependencies` are skipped
          ([#&#8203;17929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17929))\n\n###
          [`v4.1.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#415---2025-04-30)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.4...v4.1.5)\n\n#####
          Added\n\n-   Support using `@tailwindcss/upgrade` to upgrade between versions
          of v4.\\* ([#&#8203;17717](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17717))\n-
          \  Add `h-lh` / `min-h-lh` / `max-h-lh` utilities ([#&#8203;17790](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17790))\n-
          \  Transition `display`, `visibility`, `content-visibility`, `overlay`,
          and `pointer-events` when using `transition` to simplify `@starting-style`
          usage ([#&#8203;17812](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17812))\n\n#####
          Fixed\n\n-   Don't scan `.geojson` or `.db` files for classes by default
          ([#&#8203;17700](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17700),
          [#&#8203;17711](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17711))\n-
          \  Hide default shadow suggestions when missing default shadow theme keys
          ([#&#8203;17743](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17743))\n-
          \  Replace `_` with `.` in theme suggestions for `@utility` if surrounded
          by digits ([#&#8203;17733](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17733))\n-
          \  Skip `color-mix(\u2026)` when opacity is `100%` ([#&#8203;17815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17815))\n-
          \  PostCSS: Ensure that errors in imported stylesheets are recoverable ([#&#8203;17754](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17754))\n-
          \  Upgrade: Bump all Tailwind CSS related dependencies during upgrade ([#&#8203;17763](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17763))\n-
          \  Upgrade: Don't add `-` to variants starting with `@` ([#&#8203;17814](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17814))\n-
          \  Upgrade: Don't format stylesheets that didn't change when upgrading ([#&#8203;17824](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17824))\n\n###
          [`v4.1.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#414---2025-04-14)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.3...v4.1.4)\n\n#####
          Added\n\n-   Add experimental `@tailwindcss/oxide-wasm32-wasi` target for
          running Tailwind in browser environments like StackBlitz ([#&#8203;17558](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17558))\n\n#####
          Fixed\n\n-   Ensure `color-mix(\u2026)` polyfills do not cause used CSS
          variables to be removed ([#&#8203;17555](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17555))\n-
          \  Ensure `color-mix(\u2026)` polyfills create fallbacks for theme variables
          that reference other theme variables ([#&#8203;17562](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17562))\n-
          \  Fix brace expansion in declining ranges like `{10..0..5}` and `{0..10..-5}`
          ([#&#8203;17591](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17591))\n-
          \  Work around a Chrome rendering bug when using the `skew-*` utilities
          ([#&#8203;17627](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17627))\n-
          \  Ensure container query variant names can contain hyphens ([#&#8203;17628](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17628))\n-
          \  Ensure `shadow-inherit`, `inset-shadow-inherit`, `drop-shadow-inherit`,
          and `text-shadow-inherit` inherit the shadow color ([#&#8203;17647](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17647))\n-
          \  Ensure compatibility with array tuples used in `fontSize` JS theme keys
          ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n-
          \  Ensure folders with binary file extensions in their names are scanned
          for utilities ([#&#8203;17595](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17595))\n-
          \  Upgrade: Convert `fontSize` array tuple syntax to CSS theme variables
          ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n\n###
          [`v4.1.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#413---2025-04-04)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.2...v4.1.3)\n\n#####
          Fixed\n\n- Show warning when using unsupported bare value data type in `--value(\u2026)`
          ([#&#8203;17464](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17464))\n-
          PostCSS: Ensure changes to the input CSS file don't generate stale output
          when using Turbopack ([#&#8203;17554](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17554))\n-
          Ensure classes are detected in Ruby's `%w` syntax in Slim templates ([#&#8203;17557](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17557))\n\n###
          [`v4.1.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#412---2025-04-03)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.1...v4.1.2)\n\n#####
          Fixed\n\n-   Don't rely on the presence of `@layer base` to polyfill `@property`
          ([#&#8203;17506](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17506))\n-
          \  Support setting multiple inset shadows as arbitrary values ([#&#8203;17523](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17523))\n-
          \  Fix `drop-shadow-*` utilities that are defined with multiple shadows
          ([#&#8203;17515](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17515))\n-
          \  PostCSS: Fix race condition when two changes are queued concurrently
          ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
          \  PostCSS: Ensure files containing `@tailwind utilities` are processed
          ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
          \  Ensure the `color-mix(\u2026)` polyfill creates fallbacks even when using
          colors that cannot be statically analyzed ([#&#8203;17513](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17513))\n-
          \  Fix slow incremental builds with `@tailwindcss/vite` and `@tailwindcss/postscss`
          (especially on Windows) ([#&#8203;17511](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17511))\n-
          \  Vite: Fix missing CSS file in Qwik setups ([#&#8203;17533](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17533))\n\n###
          [`v4.1.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#411---2025-04-02)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.0...v4.1.1)\n\n#####
          Fixed\n\n-   Disable padding in `@source inline(\u2026)` brace expansion
          ([#&#8203;17491](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17491))\n-
          \  Inject polyfills after `@import` and body-less `@layer` ([#&#8203;17493](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17493))\n-
          \  Ensure `@tailwindcss/cli` does not contain an import for `jiti` ([#&#8203;17502](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17502))\n\n###
          [`v4.1.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#410---2025-04-01)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.17...v4.1.0)\n\n#####
          Added\n\n-   Add `details-content` variant ([#&#8203;15319](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15319))\n-
          \  Add `inverted-colors` variant ([#&#8203;11693](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11693))\n-
          \  Add `noscript` variant ([#&#8203;11929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11929),
          [#&#8203;17431](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17431))\n-
          \  Add `items-baseline-last` and `self-baseline-last` utilities ([#&#8203;13888](https://redirect.github.com/tailwindlabs/tailwindcss/pull/13888),
          [#&#8203;17476](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17476))\n-
          \  Add `pointer-none`, `pointer-coarse`, and `pointer-fine` variants ([#&#8203;16946](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16946))\n-
          \  Add `any-pointer-none`, `any-pointer-coarse`, and `any-pointer-fine`
          variants ([#&#8203;16941](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16941))\n-
          \  Add safe alignment utilities ([#&#8203;14607](https://redirect.github.com/tailwindlabs/tailwindcss/pull/14607))\n-
          \  Add `user-valid` and `user-invalid` variants ([#&#8203;12370](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12370))\n-
          \  Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#&#8203;12128](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12128))\n-
          \  Add `@source inline(\u2026)` and `@source not inline(\u2026)` ([#&#8203;17147](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17147))\n-
          \  Add `@source not \"\u2026\"` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Add `text-shadow-*` utilities ([#&#8203;17389](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17389))\n-
          \  Add `mask-*` utilities ([#&#8203;17134](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17134))\n-
          \  Add `bg-{position,size}-*` utilities for arbitrary values ([#&#8203;17432](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17432))\n-
          \  Add `shadow-*/<alpha>`, `inset-shadow-*/<alpha>`, `drop-shadow-*/<alpha>`,
          and `text-shadow-*/<alpha>` utilities to control shadow opacity ([#&#8203;17398](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17398),
          [#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
          \  Add `drop-shadow-<color>` utilities ([#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
          \  Improve compatibility with older versions of Safari and Firefox ([#&#8203;17435](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17435))\n\n#####
          Fixed\n\n-   Follow symlinks when resolving `@source` directives ([#&#8203;17391](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17391))\n-
          \  Don't scan ignored files for classes when changing an ignored file triggers
          a rebuild using `@tailwindcss/cli` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Support negated `content` rules in legacy JavaScript configuration ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Interpret syntax like `@(\"@&#8203;\")md:\u2026` as `@md:\u2026` in Razor
          files ([#&#8203;17427](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17427))\n-
          \  Disallow top-level braces, top-level semicolons, and unbalanced parentheses
          and brackets in arbitrary values ([#&#8203;17361](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17361))\n-
          \  Ensure the `--theme(\u2026)` function still resolves to the CSS variables
          when using legacy JS plugins ([#&#8203;17458](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17458))\n-
          \  Detect used theme variables in CSS module files ([#&#8203;17433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17433),
          [#&#8203;17467](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17467))\n\n#####
          Changed\n\n-   Ignore `node_modules` by default (can be overridden by `@source
          \u2026` rules) ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  `@source` rules that include file extensions or point inside `node_modules/`
          folders no longer consider your `.gitignore` rules ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Deprecate `bg-{left,right}-{top,bottom}` in favor of `bg-{top,bottom}-{left,right}`
          utilities ([#&#8203;17378](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17378))\n-
          \  Deprecate `object-{left,right}-{top,bottom}` in favor of `object-{top,bottom}-{left,right}`
          utilities ([#&#8203;17437](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17437))\n\n###
          [`v4.0.17`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17)\n\n#####
          Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
          ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
          [`v4.0.16`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4016---2025-03-25)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.15...v4.0.16)\n\n#####
          Added\n\n-   Add support for literal values in `--value('\u2026')` and `--modifier('\u2026')`
          ([#&#8203;17304](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17304))\n\n#####
          Fixed\n\n-   Fix class extraction followed by `(` in Pug ([#&#8203;17320](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17320))\n-
          \  Ensure `@keyframes` for theme animations are emitted if they are referenced
          following a comma ([#&#8203;17352](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17352))\n-
          \  Vite: Ensure that updates to an imported CSS file are properly propagated
          after updating source files ([#&#8203;17347](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17347))\n-
          \  Pre process `Slim` templates embedded in Ruby files ([#&#8203;17336](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17336))\n-
          \  Error when input and output files resolve to the same file when using
          the CLI ([#&#8203;17311](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17311))\n-
          \  Add missing suggestions when `--spacing(--value(integer, number))` is
          used ([#&#8203;17308](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17308))\n-
          \  Add `::-webkit-details-marker` pseudo to `marker` variant ([#&#8203;17362](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17362))\n\n###
          [`v4.0.15`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4015---2025-03-20)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.14...v4.0.15)\n\n#####
          Fixed\n\n- Fix incorrect angle in `-bg-conic-*` utilities ([#&#8203;17174](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17174))\n-
          Fix `border-[12px_4px]` being interpreted as a `border-color` instead of
          a `border-width` ([#&#8203;17248](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17248))\n-
          Work around a crash in Safari 16.4 and 16.5 when using the default Preflight
          styles ([#&#8203;17306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17306))\n-
          Pre-process `<template lang=\"\u2026\">` in Vue files ([#&#8203;17252](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17252))\n-
          Ensure that all CSS variables used by Preflight are prefixed ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n-
          Prevent segfault when loaded in a worker thread on Linux ([#&#8203;17276](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17276))\n-
          Ensure multiple `--value(\u2026)` or `--modifier(\u2026)` calls don't delete
          subsequent declarations ([#&#8203;17273](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17273))\n-
          Fix class extraction followed by `(` in Slim ([#&#8203;17278](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17278))\n-
          Export `PluginUtils` from `tailwindcss/plugin` for compatibility with v3
          ([#&#8203;17299](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17299))\n-
          Remove redundant `line-height: initial` from Preflight ([#&#8203;15212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15212))\n-
          Increase Standalone hardware compatibility on macOS x64 builds ([#&#8203;17267](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17267))\n-
          Ensure that the CSS file rebuilds if a new CSS variable is used from templates
          ([#&#8203;17301](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17301))\n\n#####
          Changed\n\n- The `--theme(\u2026)` function now returns CSS variables from
          your theme variables unless used inside positions where CSS variables are
          invalid (e.g. inside `@media` queries) ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n\n###
          [`v4.0.14`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.13...v4.0.14)\n\n#####
          Fixed\n\n- Do not extract candidates with JS string interpolation `${` ([#&#8203;17142](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17142))\n-
          Fix extraction of variants containing `.` character ([#&#8203;17153](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17153))\n-
          Fix extracting candidates in Clojure/ClojureScript ([#&#8203;17087](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17087))\n\n###
          [`v4.0.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4013---2025-03-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.12...v4.0.13)\n\n#####
          Fixed\n\n- Fix Haml pre-processing ([#&#8203;17051](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17051))\n-
          Ensure `.node` and `.wasm` files are not scanned for utilities ([#&#8203;17123](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17123))\n-
          Improve performance when scanning JSON files ([#&#8203;17125](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17125))\n-
          Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors
          ([#&#8203;17094](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17094),
          [#&#8203;17085](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17085),
          [#&#8203;17113](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17113))\n-
          Don't create invalid CSS when encountering a link wrapped in square brackets
          ([#&#8203;17129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17129))\n\n###
          [`v4.0.12`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4012---2025-03-07)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.11...v4.0.12)\n\n#####
          Fixed\n\n- Vite: Fix `url(\u2026)` rebasing in transitively imported CSS
          files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
          PostCSS: Rebase `url(\u2026)`s in imported CSS files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
          Ensure utilities are sorted based on their actual property order ([#&#8203;16995](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16995))\n-
          Ensure strings in Pug and Slim templates are handled correctly ([#&#8203;17000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17000))\n-
          Ensure classes between `}` and `{` are properly extracted ([#&#8203;17001](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17001))\n-
          Fix `razor`/`cshtml` pre-processing ([#&#8203;17027](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17027))\n-
          Ensure extracting candidates from JS embedded in a PHP string works as expected
          ([#&#8203;17031](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17031))\n\n###
          [`v4.0.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4011---2025-03-06)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.10...v4.0.11)\n\n#####
          Fixed\n\n- Ensure classes containing `--` are extracted correctly ([#&#8203;16972](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16972))\n-
          Ensure classes containing numbers followed by dash or underscore are extracted
          correctly ([#&#8203;16980](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16980))\n-
          Ensure arbitrary container queries are extracted correctly ([#&#8203;16984](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16984))\n-
          Ensure classes ending in `[` are extracted in Slim templating language ([#&#8203;16985](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16985))\n-
          Ensure arbitrary variables with data types are extracted correctly ([#&#8203;16986](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16986))\n\n###
          [`v4.0.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4010---2025-03-05)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.9...v4.0.10)\n\n#####
          Added\n\n-   Add `col-<number>` and `row-<number>` utilities for `grid-column`
          and `grid-row` ([#&#8203;15183](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15183))\n\n#####
          Fixed\n\n-   Ensure `not-*` does not remove `:is(\u2026)` from variants
          ([#&#8203;16825](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16825))\n-
          \  Ensure `@keyframes` are correctly emitted when using a prefix ([#&#8203;16850](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16850))\n-
          \  Don't swallow `@utility` declarations when `@apply` is used in nested
          rules ([#&#8203;16940](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16940))\n-
          \  Ensure `outline-hidden` behaves like `outline-none` outside of forced
          colors mode ([#&#8203;16943](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16943))\n-
          \  Allow `!important` on CSS variables again ([#&#8203;16873](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16873))\n-
          \  Vite: Do not crash when encountering an `.svg` file with `#` or `?` in
          the filename ([#&#8203;16957](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16957))\n-
          \  Ensure utilities are properly detected within square brackets ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Ensure utilities are properly detected using Angular's conditional class
          binding syntax ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Ensure utilities starting with numbers are properly extracted from Slim
          templates ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Discard arbitrary property candidates that have guaranteed-invalid property
          names ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n#####
          Changed\n\n-   Removed `max-w-auto` and `max-h-auto` utilities as they generate
          invalid CSS ([#&#8203;16917](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16917))\n-
          \  Replaced the existing candidate extractor with a brand new extractor
          to improve maintainability, correctness, and performance ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n###
          [`v4.0.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#409---2025-02-25)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.8...v4.0.9)\n\n#####
          Fixed\n\n-   Make JS APIs available to plugins and configs in the Standalone
          CLI ([#&#8203;15934](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15934))\n-
          \  Vite: Don't crash when importing a virtual module from JavaScript that
          ends in `.css` ([#&#8203;16780](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16780))\n-
          \  Fix an issue where `@reference \"\u2026\"` would sometimes omit keyframe
          animations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n-
          \  Ensure `z-*!` utilities are properly marked as `!important` ([#&#8203;16795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16795))\n-
          \  Read UTF-8 CSS files that start with a byte-order mark (BOM) ([#&#8203;16796](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16796))\n-
          \  Ensure nested functions in selectors used with JavaScript plugins are
          not truncated ([#&#8203;16802](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16802))\n\n#####
          Changed\n\n-   Emit variable fallbacks when using `@reference \"\u2026\"`
          instead of duplicate CSS variable declarations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n\n###
          [`v4.0.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#408---2025-02-21)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8)\n\n#####
          Added\n\n- Allow `@import` with `theme(\u2026)` options for stylesheets
          that contain more than just `@theme` rules ([#&#8203;16514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16514))\n\n#####
          Fixed\n\n- Don't add `!important` to CSS variable declarations when using
          the important modifier ([#&#8203;16668](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16668))\n-
          Vite: Ignore files and directories specified in your `.gitignore` file when
          using automatic source detection([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Don't rely on the module graph for detecting candidates to ensure
          setups with multiple Vite builds work as expected ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Ensure Astro production builds always contain classes used in client-only
          components ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Always scan raw file contents for utility classes before any other
          transforms have been applied to ensure utility classes are scanned without
          any additional escaping ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Ensure utilities with more declarations are always sorted before utilities
          with fewer declarations when utilities only define CSS variables ([#&#8203;16715](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16715))\n-
          Only include `translate-z-px` utilities once in compiled CSS ([#&#8203;16718](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16718))\n\n#####
          Changed\n\n- Don't include theme variables that aren't used in compiled
          CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211),
          [#&#8203;16676](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16676))\n\n###
          [`v4.0.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#407---2025-02-18)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7)\n\n#####
          Fixed\n\n- Export `tailwindcss/lib/util/flattenColorPalette.js` for backward
          compatibility ([#&#8203;16411](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16411))\n-
          Fix sorting of numeric utility suggestions when they have different magnitudes
          ([#&#8203;16414](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16414))\n-
          Show suggestions for fractions in IntelliSense ([#&#8203;16353](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16353))\n-
          Don\u2019t replace `_` in suggested theme keys ([#&#8203;16433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16433))\n-
          Ensure `--default-outline-width` can be used to change the `outline-width`
          value of the `outline` utility ([#&#8203;16469](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16469))\n-
          Ensure drop shadow utilities don't inherit unexpectedly ([#&#8203;16471](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16471))\n-
          Export config and plugin types from `tailwindcss/plugin` for backward compatibility
          ([#&#8203;16505](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16505))\n-
          Ensure JavaScript plugins that emit nested rules referencing the utility
          name work as expected ([#&#8203;16539](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16539))\n-
          Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows
          builds ([#&#8203;16602](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16602))\n-
          Ensure that Next.js splat routes are scanned for classes ([#&#8203;16457](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16457))\n-
          Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#&#8203;16623](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16623))\n-
          Upgrade: Report errors when updating dependencies ([#&#8203;16504](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16504))\n-
          Upgrade: Ensure a `darkMode` JS config setting with block syntax converts
          to use `@slot` ([#&#8203;16507](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16507))\n-
          Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss`
          are installed when upgrading ([#&#8203;16620](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16620))\n\n###
          [`v4.0.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#406---2025-02-10)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6)\n\n#####
          Fixed\n\n- Revert change to no longer include theme variables that aren't
          used in compiled CSS ([#&#8203;16403](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16403))\n-
          Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image
          placeholder=\"blur\" />` ([#&#8203;16405](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16405))\n\n###
          [`v4.0.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#405---2025-02-08)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5)\n\n#####
          Added\n\n- Add `@theme static` option for always including theme variables
          in compiled CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n#####
          Fixed\n\n- Remove rogue `console.log` from `@tailwindcss/vite` ([#&#8203;16307](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16307))\n\n#####
          Changed\n\n- Don't include theme variables that aren't used in compiled
          CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n###
          [`v4.0.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#404---2025-02-06)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4)\n\n#####
          Fixed\n\n-   Fix a crash when setting JS theme values to `null` ([#&#8203;16210](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16210))\n-
          \  Ensure escaped underscores in CSS variables in arbitrary values are properly
          unescaped ([#&#8203;16206](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16206))\n-
          \  Ensure that the `containers` JS theme key is added to the `--container-*`
          namespace ([#&#8203;16169](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16169))\n-
          \  Ensure theme `@keyframes` are generated even if an `--animation-*` variable
          spans multiple lines ([#&#8203;16237](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16237))\n-
          \  Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#&#8203;16238](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16238))\n-
          \  Fix `order-first` and `order-last` for Firefox ([#&#8203;16266](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16266))\n-
          \  Fix support for older instruction sets on Linux x64 builds of the standalone
          CLI ([#&#8203;16244](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16244))\n-
          \  Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files
          ([#&#8203;16274](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16274))\n-
          \  Ensure Node addons are packaged correctly with FreeBSD builds ([#&#8203;16277](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16277))\n-
          \  Fix an issue where `@variant` inside a referenced stylesheet could cause
          a stack overflow ([#&#8203;16300](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16300))\n\n###
          [`v4.0.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#403---2025-02-01)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3)\n\n#####
          Fixed\n\n- Fix incorrect removal of `@import url();` ([#&#8203;16144](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16144))\n\n###
          [`v4.0.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#402---2025-01-31)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2)\n\n#####
          Fixed\n\n- Only generate positive `grid-cols-*` and `grid-rows-*` utilities
          ([#&#8203;16020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16020))\n-
          Ensure escaped theme variables are handled correctly ([#&#8203;16064](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16064))\n-
          Ensure we process Tailwind CSS features when only using `@reference` or
          `@variant` ([#&#8203;16057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16057))\n-
          Refactor gradient implementation to work around [prettier/prettier#17058](https://redirect.github.com/prettier/prettier/issues/17058)
          ([#&#8203;16072](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16072))\n-
          Vite: Ensure hot-reloading works with SolidStart setups ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
          Vite: Fix a crash when starting the development server in SolidStart setups
          ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
          Vite: Don't rebase URLs that appear to be aliases ([#&#8203;16078](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16078))\n-
          Vite: Transform `<style>` blocks in HTML files ([#&#8203;16069](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16069))\n-
          Prevent camel-casing CSS custom properties added by JavaScript plugins ([#&#8203;16103](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16103))\n-
          Do not emit `@keyframes` in `@theme reference` ([#&#8203;16120](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16120))\n-
          Discard invalid declarations when parsing CSS ([#&#8203;16093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16093))\n-
          Do not emit empty CSS rules and at-rules ([#&#8203;16121](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16121))\n-
          Handle `@variant` when at the top-level of a stylesheet ([#&#8203;16129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16129))\n\n###
          [`v4.0.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1)\n\n#####
          Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
          ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
          [`v4.0.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#400---2025-01-21)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.17...v4.0.0)\n\n#####
          Added\n\n- [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine)
          \u2014 where full builds are up to 5x faster, and incremental builds are
          over 100x faster \u2014 and measured in microseconds.\n- [Designed for the
          modern web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web)
          \u2014 built on cutting-edge CSS features like cascade layers, registered
          custom properties with `@property`, and `color-mix()`.\n- [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation)
          \u2014 fewer dependencies, zero configuration, and just a single line of
          code in your CSS file.\n- [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin)
          \u2014 tight integration for maximum performance and minimum configuration.\n-
          [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection)
          \u2014 all of your template files are discovered automatically, with no
          configuration required.\n- [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support)
          \u2014 no additional tooling necessary to bundle multiple CSS files.\n-
          [CSS-first configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration)
          \u2014 a reimagined developer experience where you customize and extend
          the framework directly in CSS instead of a JavaScript configuration file.\n-
          [CSS theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables)
          \u2014 all of your design tokens exposed as native CSS variables so you
          can access them anywhere.\n- [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants)
          \u2014 stop guessing what values exist in your spacing scale, or extending
          your configuration for things like basic data attributes.\n- [Modernized
          P3 color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette)
          \u2014 a redesigned, more vivid color palette that takes full advantage
          of modern display technology.\n- [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries)
          \u2014 first-class APIs for styling elements based on their container size,
          no plugins required.\n- [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities)
          \u2014 transform elements in 3D space directly in your HTML.\n- [Expanded
          gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis)
          \u2014 radial and conic gradients, interpolation modes, and more.\n- [@&#8203;starting-style
          support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support)
          \u2014 a new variant you can use to create enter and exit transitions, without
          the need for JavaScript.\n- [not-\\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant)
          \u2014 style an element only when it doesn't match another variant, custom
          selector, or media or feature query.\n- [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants)
          \u2014 including support for `color-scheme`, `field-sizing`, complex shadows,
          `inert`, and more.\n\nStart using Tailwind CSS v4.0 today by [installing
          it in a new project](https://tailwindcss.com/docs/installation/), or playing
          with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/).\n\nFor
          existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide)
          and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool)
          to get you on the latest version as quickly and painlessly as possible.\n\nFor
          a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4).\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/python-osism/pull/1631
        commit_id: 7d41171fada464ec42a2e74098113a422ae624e4
        patchset: 7d41171fada464ec42a2e74098113a422ae624e4
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
        src_dir: src/github.com/osism/python-osism
        topic: null
      change: '1631'
      change_message: "chore(deps): update dependency tailwindcss to v4\n\nThis PR
        contains the following updates:\n\n| Package | Change | Age | Confidence |\n|---|---|---|---|\n|
        [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
        | [`^3.4.17` -> `^4.0.0`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.17/4.1.11)
        | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
        | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.17/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
        |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tailwindlabs/tailwindcss
        (tailwindcss)</summary>\n\n### [`v4.1.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11)\n\n#####
        Fixed\n\n- Add heuristic to skip candidate migrations inside `emit(\u2026)`
        ([#&#8203;18330](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18330))\n-
        Extract candidates with variants in Clojure/ClojureScript keywords ([#&#8203;18338](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18338))\n-
        Document `--watch=always` in the CLI's usage ([#&#8203;18337](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18337))\n-
        Add support for Vite 7 to `@tailwindcss/vite` ([#&#8203;18384](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18384))\n\n###
        [`v4.1.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10)\n\n#####
        Fixed\n\n-   Fix incorrectly generated CSS when using percentages in arbitrary
        values with calc, e.g.: `w-[calc(100%-var(--offset))]` ([#&#8203;18289](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18289))\n\n###
        [`v4.1.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9)\n\n#####
        Fixed\n\n-   Correctly parse custom properties with strings containing semicolons
        ([#&#8203;18251](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18251))\n-
        \  Upgrade: Migrate arbitrary modifiers without percentage signs to bare values
        (e.g. `/[0.16]` \u2192 `/16`) ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
        \  Upgrade: Migrate CSS variable shorthands where fallback value contains
        function call ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
        \  Upgrade: Migrate negative arbitrary values to negative bare values (e.g.
        `mb-[-32rem]` \u2192 `-mb-128`) ([#&#8203;18212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18212))\n-
        \  Upgrade: Do not migrate `blur` in `wire:model.blur` ([#&#8203;18216](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18216))\n-
        \  Don't add spaces around CSS dashed idents when formatting math expressions
        ([#&#8203;18220](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18220))\n\n###
        [`v4.1.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8)\n\n#####
        Added\n\n-   Improve error messages when `@apply` fails ([#&#8203;18059](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18059))\n\n#####
        Fixed\n\n-   Upgrade: Do not migrate declarations that look like candidates
        in `<style>` blocks ([#&#8203;18057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18057),
        [18068](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18068))\n-
        \  Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
        \  Upgrade: Don't error when updating dependencies in pnpm monorepos ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
        \  Upgrade: Migrate deprecated `order-none` to `order-0` ([#&#8203;18126](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18126))\n-
        \  Support Leptos `class:` attributes when extracting classes ([#&#8203;18093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18093))\n-
        \  Fix \"Cannot read properties of undefined\" crash on malformed arbitrary
        value ([#&#8203;18133](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18133))\n-
        \  Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around
        ([#&#8203;18154](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18154))\n-
        \  Fix Haml pre-processing crash when there is no `\\n` at the end of the
        file ([#&#8203;18155](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18155))\n-
        \  Ignore `.pnpm-store` folders by default (can be overridden by `@source
        \u2026` rules) ([#&#8203;18163](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18163))\n-
        \  Fix PostCSS crash when calling `toJSON()` ([#&#8203;18083](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18083))\n\n###
        [`v4.1.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7)\n\n#####
        Added\n\n-   Upgrade: Migrate bare values to named values ([#&#8203;18000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18000))\n-
        \  Upgrade: Added cache to improve template migration performance ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n#####
        Fixed\n\n-   Allow `_` before numbers during candidate extraction ([#&#8203;17961](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17961))\n-
        \  Prevent duplicate suggestions when using `@theme` and `@utility` together
        ([#&#8203;17675](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17675))\n-
        \  Ensure that media queries within `::before` and `::after` pseudo selectors
        create valid CSS rules in production builds ([#&#8203;17979](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17979))\n-
        \  Ensure that the standalone CLI does not leave temporary files behind ([#&#8203;17981](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17981))\n-
        \  Ensure `-rotate-*` utilities properly negate arbitrary values ([#&#8203;18014](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18014))\n-
        \  Ignore custom variants using `:merge(\u2026)` selectors in legacy JS plugins
        ([#&#8203;18020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18020))\n-
        \  Ensure classes containing `.` are properly extracted from Clojure files
        ([#&#8203;18038](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18038))\n-
        \  Upgrade: Fix error when using `@import \u2026 source(\u2026)` ([#&#8203;17963](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17963))\n-
        \  Upgrade: Change casing of utilities with named values to kebab-case to
        match updated theme variables ([#&#8203;18017](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18017))\n-
        \  Upgrade: Don't migrate strings that match utility names in Vue attribute
        bindings other than `class` ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n###
        [`v4.1.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6)\n\n#####
        Added\n\n-   Upgrade: Automatically convert arbitrary values to named values
        when possible (e.g. `h-[1lh]` to `h-lh`) ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831),
        [#&#8203;17854](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17854))\n-
        \  Upgrade: Update dependencies in parallel for improved performance ([#&#8203;17898](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17898))\n-
        \  Add detailed logging about `@source` directives, discovered files and scanned
        files when using `DEBUG=*` ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906),
        [#&#8203;17952](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17952))\n-
        \  Add support for generating source maps in development ([#&#8203;17775](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17775))\n\n#####
        Fixed\n\n-   Ensure negative arbitrary `scale` values generate negative values
        ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831))\n-
        \  Fix HAML extraction with embedded Ruby ([#&#8203;17846](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17846))\n-
        \  Don't scan files for utilities when using `@reference` ([#&#8203;17836](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17836))\n-
        \  Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand
        `bg-red-500/(--my_opacity)` ([#&#8203;17889](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17889))\n-
        \  Don't scan `.log` files for classes by default ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906))\n-
        \  Ensure that custom utilities applying other custom utilities don't swallow
        nested `@apply` rules ([#&#8203;17925](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17925))\n-
        \  Download platform specific package if `optionalDependencies` are skipped
        ([#&#8203;17929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17929))\n\n###
        [`v4.1.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#415---2025-04-30)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.4...v4.1.5)\n\n#####
        Added\n\n-   Support using `@tailwindcss/upgrade` to upgrade between versions
        of v4.\\* ([#&#8203;17717](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17717))\n-
        \  Add `h-lh` / `min-h-lh` / `max-h-lh` utilities ([#&#8203;17790](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17790))\n-
        \  Transition `display`, `visibility`, `content-visibility`, `overlay`, and
        `pointer-events` when using `transition` to simplify `@starting-style` usage
        ([#&#8203;17812](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17812))\n\n#####
        Fixed\n\n-   Don't scan `.geojson` or `.db` files for classes by default ([#&#8203;17700](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17700),
        [#&#8203;17711](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17711))\n-
        \  Hide default shadow suggestions when missing default shadow theme keys
        ([#&#8203;17743](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17743))\n-
        \  Replace `_` with `.` in theme suggestions for `@utility` if surrounded
        by digits ([#&#8203;17733](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17733))\n-
        \  Skip `color-mix(\u2026)` when opacity is `100%` ([#&#8203;17815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17815))\n-
        \  PostCSS: Ensure that errors in imported stylesheets are recoverable ([#&#8203;17754](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17754))\n-
        \  Upgrade: Bump all Tailwind CSS related dependencies during upgrade ([#&#8203;17763](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17763))\n-
        \  Upgrade: Don't add `-` to variants starting with `@` ([#&#8203;17814](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17814))\n-
        \  Upgrade: Don't format stylesheets that didn't change when upgrading ([#&#8203;17824](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17824))\n\n###
        [`v4.1.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#414---2025-04-14)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.3...v4.1.4)\n\n#####
        Added\n\n-   Add experimental `@tailwindcss/oxide-wasm32-wasi` target for
        running Tailwind in browser environments like StackBlitz ([#&#8203;17558](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17558))\n\n#####
        Fixed\n\n-   Ensure `color-mix(\u2026)` polyfills do not cause used CSS variables
        to be removed ([#&#8203;17555](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17555))\n-
        \  Ensure `color-mix(\u2026)` polyfills create fallbacks for theme variables
        that reference other theme variables ([#&#8203;17562](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17562))\n-
        \  Fix brace expansion in declining ranges like `{10..0..5}` and `{0..10..-5}`
        ([#&#8203;17591](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17591))\n-
        \  Work around a Chrome rendering bug when using the `skew-*` utilities ([#&#8203;17627](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17627))\n-
        \  Ensure container query variant names can contain hyphens ([#&#8203;17628](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17628))\n-
        \  Ensure `shadow-inherit`, `inset-shadow-inherit`, `drop-shadow-inherit`,
        and `text-shadow-inherit` inherit the shadow color ([#&#8203;17647](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17647))\n-
        \  Ensure compatibility with array tuples used in `fontSize` JS theme keys
        ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n-
        \  Ensure folders with binary file extensions in their names are scanned for
        utilities ([#&#8203;17595](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17595))\n-
        \  Upgrade: Convert `fontSize` array tuple syntax to CSS theme variables ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n\n###
        [`v4.1.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#413---2025-04-04)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.2...v4.1.3)\n\n#####
        Fixed\n\n- Show warning when using unsupported bare value data type in `--value(\u2026)`
        ([#&#8203;17464](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17464))\n-
        PostCSS: Ensure changes to the input CSS file don't generate stale output
        when using Turbopack ([#&#8203;17554](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17554))\n-
        Ensure classes are detected in Ruby's `%w` syntax in Slim templates ([#&#8203;17557](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17557))\n\n###
        [`v4.1.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#412---2025-04-03)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.1...v4.1.2)\n\n#####
        Fixed\n\n-   Don't rely on the presence of `@layer base` to polyfill `@property`
        ([#&#8203;17506](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17506))\n-
        \  Support setting multiple inset shadows as arbitrary values ([#&#8203;17523](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17523))\n-
        \  Fix `drop-shadow-*` utilities that are defined with multiple shadows ([#&#8203;17515](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17515))\n-
        \  PostCSS: Fix race condition when two changes are queued concurrently ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
        \  PostCSS: Ensure files containing `@tailwind utilities` are processed ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
        \  Ensure the `color-mix(\u2026)` polyfill creates fallbacks even when using
        colors that cannot be statically analyzed ([#&#8203;17513](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17513))\n-
        \  Fix slow incremental builds with `@tailwindcss/vite` and `@tailwindcss/postscss`
        (especially on Windows) ([#&#8203;17511](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17511))\n-
        \  Vite: Fix missing CSS file in Qwik setups ([#&#8203;17533](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17533))\n\n###
        [`v4.1.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#411---2025-04-02)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.0...v4.1.1)\n\n#####
        Fixed\n\n-   Disable padding in `@source inline(\u2026)` brace expansion ([#&#8203;17491](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17491))\n-
        \  Inject polyfills after `@import` and body-less `@layer` ([#&#8203;17493](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17493))\n-
        \  Ensure `@tailwindcss/cli` does not contain an import for `jiti` ([#&#8203;17502](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17502))\n\n###
        [`v4.1.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#410---2025-04-01)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.17...v4.1.0)\n\n#####
        Added\n\n-   Add `details-content` variant ([#&#8203;15319](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15319))\n-
        \  Add `inverted-colors` variant ([#&#8203;11693](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11693))\n-
        \  Add `noscript` variant ([#&#8203;11929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11929),
        [#&#8203;17431](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17431))\n-
        \  Add `items-baseline-last` and `self-baseline-last` utilities ([#&#8203;13888](https://redirect.github.com/tailwindlabs/tailwindcss/pull/13888),
        [#&#8203;17476](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17476))\n-
        \  Add `pointer-none`, `pointer-coarse`, and `pointer-fine` variants ([#&#8203;16946](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16946))\n-
        \  Add `any-pointer-none`, `any-pointer-coarse`, and `any-pointer-fine` variants
        ([#&#8203;16941](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16941))\n-
        \  Add safe alignment utilities ([#&#8203;14607](https://redirect.github.com/tailwindlabs/tailwindcss/pull/14607))\n-
        \  Add `user-valid` and `user-invalid` variants ([#&#8203;12370](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12370))\n-
        \  Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#&#8203;12128](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12128))\n-
        \  Add `@source inline(\u2026)` and `@source not inline(\u2026)` ([#&#8203;17147](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17147))\n-
        \  Add `@source not \"\u2026\"` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
        \  Add `text-shadow-*` utilities ([#&#8203;17389](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17389))\n-
        \  Add `mask-*` utilities ([#&#8203;17134](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17134))\n-
        \  Add `bg-{position,size}-*` utilities for arbitrary values ([#&#8203;17432](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17432))\n-
        \  Add `shadow-*/<alpha>`, `inset-shadow-*/<alpha>`, `drop-shadow-*/<alpha>`,
        and `text-shadow-*/<alpha>` utilities to control shadow opacity ([#&#8203;17398](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17398),
        [#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
        \  Add `drop-shadow-<color>` utilities ([#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
        \  Improve compatibility with older versions of Safari and Firefox ([#&#8203;17435](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17435))\n\n#####
        Fixed\n\n-   Follow symlinks when resolving `@source` directives ([#&#8203;17391](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17391))\n-
        \  Don't scan ignored files for classes when changing an ignored file triggers
        a rebuild using `@tailwindcss/cli` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
        \  Support negated `content` rules in legacy JavaScript configuration ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
        \  Interpret syntax like `@(\"@&#8203;\")md:\u2026` as `@md:\u2026` in Razor
        files ([#&#8203;17427](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17427))\n-
        \  Disallow top-level braces, top-level semicolons, and unbalanced parentheses
        and brackets in arbitrary values ([#&#8203;17361](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17361))\n-
        \  Ensure the `--theme(\u2026)` function still resolves to the CSS variables
        when using legacy JS plugins ([#&#8203;17458](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17458))\n-
        \  Detect used theme variables in CSS module files ([#&#8203;17433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17433),
        [#&#8203;17467](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17467))\n\n#####
        Changed\n\n-   Ignore `node_modules` by default (can be overridden by `@source
        \u2026` rules) ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
        \  `@source` rules that include file extensions or point inside `node_modules/`
        folders no longer consider your `.gitignore` rules ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
        \  Deprecate `bg-{left,right}-{top,bottom}` in favor of `bg-{top,bottom}-{left,right}`
        utilities ([#&#8203;17378](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17378))\n-
        \  Deprecate `object-{left,right}-{top,bottom}` in favor of `object-{top,bottom}-{left,right}`
        utilities ([#&#8203;17437](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17437))\n\n###
        [`v4.0.17`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17)\n\n#####
        Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
        ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
        [`v4.0.16`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4016---2025-03-25)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.15...v4.0.16)\n\n#####
        Added\n\n-   Add support for literal values in `--value('\u2026')` and `--modifier('\u2026')`
        ([#&#8203;17304](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17304))\n\n#####
        Fixed\n\n-   Fix class extraction followed by `(` in Pug ([#&#8203;17320](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17320))\n-
        \  Ensure `@keyframes` for theme animations are emitted if they are referenced
        following a comma ([#&#8203;17352](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17352))\n-
        \  Vite: Ensure that updates to an imported CSS file are properly propagated
        after updating source files ([#&#8203;17347](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17347))\n-
        \  Pre process `Slim` templates embedded in Ruby files ([#&#8203;17336](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17336))\n-
        \  Error when input and output files resolve to the same file when using the
        CLI ([#&#8203;17311](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17311))\n-
        \  Add missing suggestions when `--spacing(--value(integer, number))` is used
        ([#&#8203;17308](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17308))\n-
        \  Add `::-webkit-details-marker` pseudo to `marker` variant ([#&#8203;17362](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17362))\n\n###
        [`v4.0.15`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4015---2025-03-20)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.14...v4.0.15)\n\n#####
        Fixed\n\n- Fix incorrect angle in `-bg-conic-*` utilities ([#&#8203;17174](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17174))\n-
        Fix `border-[12px_4px]` being interpreted as a `border-color` instead of a
        `border-width` ([#&#8203;17248](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17248))\n-
        Work around a crash in Safari 16.4 and 16.5 when using the default Preflight
        styles ([#&#8203;17306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17306))\n-
        Pre-process `<template lang=\"\u2026\">` in Vue files ([#&#8203;17252](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17252))\n-
        Ensure that all CSS variables used by Preflight are prefixed ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n-
        Prevent segfault when loaded in a worker thread on Linux ([#&#8203;17276](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17276))\n-
        Ensure multiple `--value(\u2026)` or `--modifier(\u2026)` calls don't delete
        subsequent declarations ([#&#8203;17273](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17273))\n-
        Fix class extraction followed by `(` in Slim ([#&#8203;17278](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17278))\n-
        Export `PluginUtils` from `tailwindcss/plugin` for compatibility with v3 ([#&#8203;17299](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17299))\n-
        Remove redundant `line-height: initial` from Preflight ([#&#8203;15212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15212))\n-
        Increase Standalone hardware compatibility on macOS x64 builds ([#&#8203;17267](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17267))\n-
        Ensure that the CSS file rebuilds if a new CSS variable is used from templates
        ([#&#8203;17301](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17301))\n\n#####
        Changed\n\n- The `--theme(\u2026)` function now returns CSS variables from
        your theme variables unless used inside positions where CSS variables are
        invalid (e.g. inside `@media` queries) ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n\n###
        [`v4.0.14`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.13...v4.0.14)\n\n#####
        Fixed\n\n- Do not extract candidates with JS string interpolation `${` ([#&#8203;17142](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17142))\n-
        Fix extraction of variants containing `.` character ([#&#8203;17153](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17153))\n-
        Fix extracting candidates in Clojure/ClojureScript ([#&#8203;17087](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17087))\n\n###
        [`v4.0.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4013---2025-03-11)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.12...v4.0.13)\n\n#####
        Fixed\n\n- Fix Haml pre-processing ([#&#8203;17051](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17051))\n-
        Ensure `.node` and `.wasm` files are not scanned for utilities ([#&#8203;17123](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17123))\n-
        Improve performance when scanning JSON files ([#&#8203;17125](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17125))\n-
        Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors
        ([#&#8203;17094](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17094),
        [#&#8203;17085](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17085),
        [#&#8203;17113](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17113))\n-
        Don't create invalid CSS when encountering a link wrapped in square brackets
        ([#&#8203;17129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17129))\n\n###
        [`v4.0.12`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4012---2025-03-07)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.11...v4.0.12)\n\n#####
        Fixed\n\n- Vite: Fix `url(\u2026)` rebasing in transitively imported CSS files
        ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
        PostCSS: Rebase `url(\u2026)`s in imported CSS files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
        Ensure utilities are sorted based on their actual property order ([#&#8203;16995](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16995))\n-
        Ensure strings in Pug and Slim templates are handled correctly ([#&#8203;17000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17000))\n-
        Ensure classes between `}` and `{` are properly extracted ([#&#8203;17001](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17001))\n-
        Fix `razor`/`cshtml` pre-processing ([#&#8203;17027](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17027))\n-
        Ensure extracting candidates from JS embedded in a PHP string works as expected
        ([#&#8203;17031](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17031))\n\n###
        [`v4.0.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4011---2025-03-06)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.10...v4.0.11)\n\n#####
        Fixed\n\n- Ensure classes containing `--` are extracted correctly ([#&#8203;16972](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16972))\n-
        Ensure classes containing numbers followed by dash or underscore are extracted
        correctly ([#&#8203;16980](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16980))\n-
        Ensure arbitrary container queries are extracted correctly ([#&#8203;16984](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16984))\n-
        Ensure classes ending in `[` are extracted in Slim templating language ([#&#8203;16985](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16985))\n-
        Ensure arbitrary variables with data types are extracted correctly ([#&#8203;16986](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16986))\n\n###
        [`v4.0.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4010---2025-03-05)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.9...v4.0.10)\n\n#####
        Added\n\n-   Add `col-<number>` and `row-<number>` utilities for `grid-column`
        and `grid-row` ([#&#8203;15183](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15183))\n\n#####
        Fixed\n\n-   Ensure `not-*` does not remove `:is(\u2026)` from variants ([#&#8203;16825](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16825))\n-
        \  Ensure `@keyframes` are correctly emitted when using a prefix ([#&#8203;16850](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16850))\n-
        \  Don't swallow `@utility` declarations when `@apply` is used in nested rules
        ([#&#8203;16940](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16940))\n-
        \  Ensure `outline-hidden` behaves like `outline-none` outside of forced colors
        mode ([#&#8203;16943](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16943))\n-
        \  Allow `!important` on CSS variables again ([#&#8203;16873](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16873))\n-
        \  Vite: Do not crash when encountering an `.svg` file with `#` or `?` in
        the filename ([#&#8203;16957](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16957))\n-
        \  Ensure utilities are properly detected within square brackets ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
        \  Ensure utilities are properly detected using Angular's conditional class
        binding syntax ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
        \  Ensure utilities starting with numbers are properly extracted from Slim
        templates ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
        \  Discard arbitrary property candidates that have guaranteed-invalid property
        names ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n#####
        Changed\n\n-   Removed `max-w-auto` and `max-h-auto` utilities as they generate
        invalid CSS ([#&#8203;16917](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16917))\n-
        \  Replaced the existing candidate extractor with a brand new extractor to
        improve maintainability, correctness, and performance ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n###
        [`v4.0.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#409---2025-02-25)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.8...v4.0.9)\n\n#####
        Fixed\n\n-   Make JS APIs available to plugins and configs in the Standalone
        CLI ([#&#8203;15934](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15934))\n-
        \  Vite: Don't crash when importing a virtual module from JavaScript that
        ends in `.css` ([#&#8203;16780](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16780))\n-
        \  Fix an issue where `@reference \"\u2026\"` would sometimes omit keyframe
        animations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n-
        \  Ensure `z-*!` utilities are properly marked as `!important` ([#&#8203;16795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16795))\n-
        \  Read UTF-8 CSS files that start with a byte-order mark (BOM) ([#&#8203;16796](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16796))\n-
        \  Ensure nested functions in selectors used with JavaScript plugins are not
        truncated ([#&#8203;16802](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16802))\n\n#####
        Changed\n\n-   Emit variable fallbacks when using `@reference \"\u2026\"`
        instead of duplicate CSS variable declarations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n\n###
        [`v4.0.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#408---2025-02-21)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8)\n\n#####
        Added\n\n- Allow `@import` with `theme(\u2026)` options for stylesheets that
        contain more than just `@theme` rules ([#&#8203;16514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16514))\n\n#####
        Fixed\n\n- Don't add `!important` to CSS variable declarations when using
        the important modifier ([#&#8203;16668](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16668))\n-
        Vite: Ignore files and directories specified in your `.gitignore` file when
        using automatic source detection([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
        Vite: Don't rely on the module graph for detecting candidates to ensure setups
        with multiple Vite builds work as expected ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
        Vite: Ensure Astro production builds always contain classes used in client-only
        components ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
        Vite: Always scan raw file contents for utility classes before any other transforms
        have been applied to ensure utility classes are scanned without any additional
        escaping ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
        Ensure utilities with more declarations are always sorted before utilities
        with fewer declarations when utilities only define CSS variables ([#&#8203;16715](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16715))\n-
        Only include `translate-z-px` utilities once in compiled CSS ([#&#8203;16718](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16718))\n\n#####
        Changed\n\n- Don't include theme variables that aren't used in compiled CSS
        ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211),
        [#&#8203;16676](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16676))\n\n###
        [`v4.0.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#407---2025-02-18)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7)\n\n#####
        Fixed\n\n- Export `tailwindcss/lib/util/flattenColorPalette.js` for backward
        compatibility ([#&#8203;16411](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16411))\n-
        Fix sorting of numeric utility suggestions when they have different magnitudes
        ([#&#8203;16414](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16414))\n-
        Show suggestions for fractions in IntelliSense ([#&#8203;16353](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16353))\n-
        Don\u2019t replace `_` in suggested theme keys ([#&#8203;16433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16433))\n-
        Ensure `--default-outline-width` can be used to change the `outline-width`
        value of the `outline` utility ([#&#8203;16469](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16469))\n-
        Ensure drop shadow utilities don't inherit unexpectedly ([#&#8203;16471](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16471))\n-
        Export config and plugin types from `tailwindcss/plugin` for backward compatibility
        ([#&#8203;16505](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16505))\n-
        Ensure JavaScript plugins that emit nested rules referencing the utility name
        work as expected ([#&#8203;16539](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16539))\n-
        Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows
        builds ([#&#8203;16602](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16602))\n-
        Ensure that Next.js splat routes are scanned for classes ([#&#8203;16457](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16457))\n-
        Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#&#8203;16623](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16623))\n-
        Upgrade: Report errors when updating dependencies ([#&#8203;16504](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16504))\n-
        Upgrade: Ensure a `darkMode` JS config setting with block syntax converts
        to use `@slot` ([#&#8203;16507](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16507))\n-
        Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss`
        are installed when upgrading ([#&#8203;16620](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16620))\n\n###
        [`v4.0.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#406---2025-02-10)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6)\n\n#####
        Fixed\n\n- Revert change to no longer include theme variables that aren't
        used in compiled CSS ([#&#8203;16403](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16403))\n-
        Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image
        placeholder=\"blur\" />` ([#&#8203;16405](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16405))\n\n###
        [`v4.0.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#405---2025-02-08)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5)\n\n#####
        Added\n\n- Add `@theme static` option for always including theme variables
        in compiled CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n#####
        Fixed\n\n- Remove rogue `console.log` from `@tailwindcss/vite` ([#&#8203;16307](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16307))\n\n#####
        Changed\n\n- Don't include theme variables that aren't used in compiled CSS
        ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n###
        [`v4.0.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#404---2025-02-06)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4)\n\n#####
        Fixed\n\n-   Fix a crash when setting JS theme values to `null` ([#&#8203;16210](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16210))\n-
        \  Ensure escaped underscores in CSS variables in arbitrary values are properly
        unescaped ([#&#8203;16206](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16206))\n-
        \  Ensure that the `containers` JS theme key is added to the `--container-*`
        namespace ([#&#8203;16169](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16169))\n-
        \  Ensure theme `@keyframes` are generated even if an `--animation-*` variable
        spans multiple lines ([#&#8203;16237](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16237))\n-
        \  Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#&#8203;16238](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16238))\n-
        \  Fix `order-first` and `order-last` for Firefox ([#&#8203;16266](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16266))\n-
        \  Fix support for older instruction sets on Linux x64 builds of the standalone
        CLI ([#&#8203;16244](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16244))\n-
        \  Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files
        ([#&#8203;16274](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16274))\n-
        \  Ensure Node addons are packaged correctly with FreeBSD builds ([#&#8203;16277](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16277))\n-
        \  Fix an issue where `@variant` inside a referenced stylesheet could cause
        a stack overflow ([#&#8203;16300](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16300))\n\n###
        [`v4.0.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#403---2025-02-01)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3)\n\n#####
        Fixed\n\n- Fix incorrect removal of `@import url();` ([#&#8203;16144](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16144))\n\n###
        [`v4.0.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#402---2025-01-31)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2)\n\n#####
        Fixed\n\n- Only generate positive `grid-cols-*` and `grid-rows-*` utilities
        ([#&#8203;16020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16020))\n-
        Ensure escaped theme variables are handled correctly ([#&#8203;16064](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16064))\n-
        Ensure we process Tailwind CSS features when only using `@reference` or `@variant`
        ([#&#8203;16057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16057))\n-
        Refactor gradient implementation to work around [prettier/prettier#17058](https://redirect.github.com/prettier/prettier/issues/17058)
        ([#&#8203;16072](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16072))\n-
        Vite: Ensure hot-reloading works with SolidStart setups ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
        Vite: Fix a crash when starting the development server in SolidStart setups
        ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
        Vite: Don't rebase URLs that appear to be aliases ([#&#8203;16078](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16078))\n-
        Vite: Transform `<style>` blocks in HTML files ([#&#8203;16069](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16069))\n-
        Prevent camel-casing CSS custom properties added by JavaScript plugins ([#&#8203;16103](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16103))\n-
        Do not emit `@keyframes` in `@theme reference` ([#&#8203;16120](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16120))\n-
        Discard invalid declarations when parsing CSS ([#&#8203;16093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16093))\n-
        Do not emit empty CSS rules and at-rules ([#&#8203;16121](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16121))\n-
        Handle `@variant` when at the top-level of a stylesheet ([#&#8203;16129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16129))\n\n###
        [`v4.0.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1)\n\n#####
        Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
        ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
        [`v4.0.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#400---2025-01-21)\n\n[Compare
        Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.17...v4.0.0)\n\n#####
        Added\n\n- [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine)
        \u2014 where full builds are up to 5x faster, and incremental builds are over
        100x faster \u2014 and measured in microseconds.\n- [Designed for the modern
        web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web)
        \u2014 built on cutting-edge CSS features like cascade layers, registered
        custom properties with `@property`, and `color-mix()`.\n- [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation)
        \u2014 fewer dependencies, zero configuration, and just a single line of code
        in your CSS file.\n- [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin)
        \u2014 tight integration for maximum performance and minimum configuration.\n-
        [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection)
        \u2014 all of your template files are discovered automatically, with no configuration
        required.\n- [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support)
        \u2014 no additional tooling necessary to bundle multiple CSS files.\n- [CSS-first
        configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration)
        \u2014 a reimagined developer experience where you customize and extend the
        framework directly in CSS instead of a JavaScript configuration file.\n- [CSS
        theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables)
        \u2014 all of your design tokens exposed as native CSS variables so you can
        access them anywhere.\n- [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants)
        \u2014 stop guessing what values exist in your spacing scale, or extending
        your configuration for things like basic data attributes.\n- [Modernized P3
        color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette)
        \u2014 a redesigned, more vivid color palette that takes full advantage of
        modern display technology.\n- [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries)
        \u2014 first-class APIs for styling elements based on their container size,
        no plugins required.\n- [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities)
        \u2014 transform elements in 3D space directly in your HTML.\n- [Expanded
        gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis)
        \u2014 radial and conic gradients, interpolation modes, and more.\n- [@&#8203;starting-style
        support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support)
        \u2014 a new variant you can use to create enter and exit transitions, without
        the need for JavaScript.\n- [not-\\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant)
        \u2014 style an element only when it doesn't match another variant, custom
        selector, or media or feature query.\n- [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants)
        \u2014 including support for `color-scheme`, `field-sizing`, complex shadows,
        `inert`, and more.\n\nStart using Tailwind CSS v4.0 today by [installing it
        in a new project](https://tailwindcss.com/docs/installation/), or playing
        with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/).\n\nFor
        existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide)
        and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool)
        to get you on the latest version as quickly and painlessly as possible.\n\nFor
        a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4).\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time (no
        schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
        **Automerge**: Disabled by config. Please merge this manually once you are
        satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
        tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR and
        you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check
        -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was
        generated by [Mend Renovate](https://mend.io/renovate/). View the [repository
        job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
      change_url: https://github.com/osism/python-osism/pull/1631
      child_jobs: []
      commit_id: 7d41171fada464ec42a2e74098113a422ae624e4
      event_id: ba999960-754f-11f0-98aa-cd728992f997
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/0d06857e0023401c8c109ac2721607f6/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/0d06857e0023401c8c109ac2721607f6/work/logs
        result_data_file: /var/lib/zuul/builds/0d06857e0023401c8c109ac2721607f6/work/results.json
        src_root: /var/lib/zuul/builds/0d06857e0023401c8c109ac2721607f6/work/src
        work_root: /var/lib/zuul/builds/0d06857e0023401c8c109ac2721607f6/work
      include_vars: []
      items:
      - branch: main
        change: '1631'
        change_message: "chore(deps): update dependency tailwindcss to v4\n\nThis
          PR contains the following updates:\n\n| Package | Change | Age | Confidence
          |\n|---|---|---|---|\n| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
          | [`^3.4.17` -> `^4.0.0`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.17/4.1.11)
          | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.17/4.1.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>tailwindlabs/tailwindcss
          (tailwindcss)</summary>\n\n### [`v4.1.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4111---2025-06-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.10...v4.1.11)\n\n#####
          Fixed\n\n- Add heuristic to skip candidate migrations inside `emit(\u2026)`
          ([#&#8203;18330](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18330))\n-
          Extract candidates with variants in Clojure/ClojureScript keywords ([#&#8203;18338](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18338))\n-
          Document `--watch=always` in the CLI's usage ([#&#8203;18337](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18337))\n-
          Add support for Vite 7 to `@tailwindcss/vite` ([#&#8203;18384](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18384))\n\n###
          [`v4.1.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4110---2025-06-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.9...v4.1.10)\n\n#####
          Fixed\n\n-   Fix incorrectly generated CSS when using percentages in arbitrary
          values with calc, e.g.: `w-[calc(100%-var(--offset))]` ([#&#8203;18289](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18289))\n\n###
          [`v4.1.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#419---2025-06-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.8...v4.1.9)\n\n#####
          Fixed\n\n-   Correctly parse custom properties with strings containing semicolons
          ([#&#8203;18251](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18251))\n-
          \  Upgrade: Migrate arbitrary modifiers without percentage signs to bare
          values (e.g. `/[0.16]` \u2192 `/16`) ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
          \  Upgrade: Migrate CSS variable shorthands where fallback value contains
          function call ([#&#8203;18184](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18184))\n-
          \  Upgrade: Migrate negative arbitrary values to negative bare values (e.g.
          `mb-[-32rem]` \u2192 `-mb-128`) ([#&#8203;18212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18212))\n-
          \  Upgrade: Do not migrate `blur` in `wire:model.blur` ([#&#8203;18216](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18216))\n-
          \  Don't add spaces around CSS dashed idents when formatting math expressions
          ([#&#8203;18220](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18220))\n\n###
          [`v4.1.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#418---2025-05-27)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.7...v4.1.8)\n\n#####
          Added\n\n-   Improve error messages when `@apply` fails ([#&#8203;18059](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18059))\n\n#####
          Fixed\n\n-   Upgrade: Do not migrate declarations that look like candidates
          in `<style>` blocks ([#&#8203;18057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18057),
          [18068](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18068))\n-
          \  Upgrade: Don't error when looking for `tailwindcss` in pnpm monorepos
          ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
          \  Upgrade: Don't error when updating dependencies in pnpm monorepos ([#&#8203;18065](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18065))\n-
          \  Upgrade: Migrate deprecated `order-none` to `order-0` ([#&#8203;18126](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18126))\n-
          \  Support Leptos `class:` attributes when extracting classes ([#&#8203;18093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18093))\n-
          \  Fix \"Cannot read properties of undefined\" crash on malformed arbitrary
          value ([#&#8203;18133](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18133))\n-
          \  Upgrade: Migrate `-mt-[0px]` to `mt-[0px]` instead of the other way around
          ([#&#8203;18154](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18154))\n-
          \  Fix Haml pre-processing crash when there is no `\\n` at the end of the
          file ([#&#8203;18155](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18155))\n-
          \  Ignore `.pnpm-store` folders by default (can be overridden by `@source
          \u2026` rules) ([#&#8203;18163](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18163))\n-
          \  Fix PostCSS crash when calling `toJSON()` ([#&#8203;18083](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18083))\n\n###
          [`v4.1.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#417---2025-05-15)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.6...v4.1.7)\n\n#####
          Added\n\n-   Upgrade: Migrate bare values to named values ([#&#8203;18000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18000))\n-
          \  Upgrade: Added cache to improve template migration performance ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n#####
          Fixed\n\n-   Allow `_` before numbers during candidate extraction ([#&#8203;17961](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17961))\n-
          \  Prevent duplicate suggestions when using `@theme` and `@utility` together
          ([#&#8203;17675](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17675))\n-
          \  Ensure that media queries within `::before` and `::after` pseudo selectors
          create valid CSS rules in production builds ([#&#8203;17979](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17979))\n-
          \  Ensure that the standalone CLI does not leave temporary files behind
          ([#&#8203;17981](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17981))\n-
          \  Ensure `-rotate-*` utilities properly negate arbitrary values ([#&#8203;18014](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18014))\n-
          \  Ignore custom variants using `:merge(\u2026)` selectors in legacy JS
          plugins ([#&#8203;18020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18020))\n-
          \  Ensure classes containing `.` are properly extracted from Clojure files
          ([#&#8203;18038](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18038))\n-
          \  Upgrade: Fix error when using `@import \u2026 source(\u2026)` ([#&#8203;17963](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17963))\n-
          \  Upgrade: Change casing of utilities with named values to kebab-case to
          match updated theme variables ([#&#8203;18017](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18017))\n-
          \  Upgrade: Don't migrate strings that match utility names in Vue attribute
          bindings other than `class` ([#&#8203;18025](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18025))\n\n###
          [`v4.1.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#416---2025-05-09)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.5...v4.1.6)\n\n#####
          Added\n\n-   Upgrade: Automatically convert arbitrary values to named values
          when possible (e.g. `h-[1lh]` to `h-lh`) ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831),
          [#&#8203;17854](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17854))\n-
          \  Upgrade: Update dependencies in parallel for improved performance ([#&#8203;17898](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17898))\n-
          \  Add detailed logging about `@source` directives, discovered files and
          scanned files when using `DEBUG=*` ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906),
          [#&#8203;17952](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17952))\n-
          \  Add support for generating source maps in development ([#&#8203;17775](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17775))\n\n#####
          Fixed\n\n-   Ensure negative arbitrary `scale` values generate negative
          values ([#&#8203;17831](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17831))\n-
          \  Fix HAML extraction with embedded Ruby ([#&#8203;17846](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17846))\n-
          \  Don't scan files for utilities when using `@reference` ([#&#8203;17836](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17836))\n-
          \  Fix incorrectly replacing `_` with ` ` in arbitrary modifier shorthand
          `bg-red-500/(--my_opacity)` ([#&#8203;17889](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17889))\n-
          \  Don't scan `.log` files for classes by default ([#&#8203;17906](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17906))\n-
          \  Ensure that custom utilities applying other custom utilities don't swallow
          nested `@apply` rules ([#&#8203;17925](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17925))\n-
          \  Download platform specific package if `optionalDependencies` are skipped
          ([#&#8203;17929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17929))\n\n###
          [`v4.1.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#415---2025-04-30)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.4...v4.1.5)\n\n#####
          Added\n\n-   Support using `@tailwindcss/upgrade` to upgrade between versions
          of v4.\\* ([#&#8203;17717](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17717))\n-
          \  Add `h-lh` / `min-h-lh` / `max-h-lh` utilities ([#&#8203;17790](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17790))\n-
          \  Transition `display`, `visibility`, `content-visibility`, `overlay`,
          and `pointer-events` when using `transition` to simplify `@starting-style`
          usage ([#&#8203;17812](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17812))\n\n#####
          Fixed\n\n-   Don't scan `.geojson` or `.db` files for classes by default
          ([#&#8203;17700](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17700),
          [#&#8203;17711](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17711))\n-
          \  Hide default shadow suggestions when missing default shadow theme keys
          ([#&#8203;17743](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17743))\n-
          \  Replace `_` with `.` in theme suggestions for `@utility` if surrounded
          by digits ([#&#8203;17733](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17733))\n-
          \  Skip `color-mix(\u2026)` when opacity is `100%` ([#&#8203;17815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17815))\n-
          \  PostCSS: Ensure that errors in imported stylesheets are recoverable ([#&#8203;17754](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17754))\n-
          \  Upgrade: Bump all Tailwind CSS related dependencies during upgrade ([#&#8203;17763](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17763))\n-
          \  Upgrade: Don't add `-` to variants starting with `@` ([#&#8203;17814](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17814))\n-
          \  Upgrade: Don't format stylesheets that didn't change when upgrading ([#&#8203;17824](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17824))\n\n###
          [`v4.1.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#414---2025-04-14)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.3...v4.1.4)\n\n#####
          Added\n\n-   Add experimental `@tailwindcss/oxide-wasm32-wasi` target for
          running Tailwind in browser environments like StackBlitz ([#&#8203;17558](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17558))\n\n#####
          Fixed\n\n-   Ensure `color-mix(\u2026)` polyfills do not cause used CSS
          variables to be removed ([#&#8203;17555](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17555))\n-
          \  Ensure `color-mix(\u2026)` polyfills create fallbacks for theme variables
          that reference other theme variables ([#&#8203;17562](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17562))\n-
          \  Fix brace expansion in declining ranges like `{10..0..5}` and `{0..10..-5}`
          ([#&#8203;17591](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17591))\n-
          \  Work around a Chrome rendering bug when using the `skew-*` utilities
          ([#&#8203;17627](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17627))\n-
          \  Ensure container query variant names can contain hyphens ([#&#8203;17628](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17628))\n-
          \  Ensure `shadow-inherit`, `inset-shadow-inherit`, `drop-shadow-inherit`,
          and `text-shadow-inherit` inherit the shadow color ([#&#8203;17647](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17647))\n-
          \  Ensure compatibility with array tuples used in `fontSize` JS theme keys
          ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n-
          \  Ensure folders with binary file extensions in their names are scanned
          for utilities ([#&#8203;17595](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17595))\n-
          \  Upgrade: Convert `fontSize` array tuple syntax to CSS theme variables
          ([#&#8203;17630](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17630))\n\n###
          [`v4.1.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#413---2025-04-04)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.2...v4.1.3)\n\n#####
          Fixed\n\n- Show warning when using unsupported bare value data type in `--value(\u2026)`
          ([#&#8203;17464](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17464))\n-
          PostCSS: Ensure changes to the input CSS file don't generate stale output
          when using Turbopack ([#&#8203;17554](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17554))\n-
          Ensure classes are detected in Ruby's `%w` syntax in Slim templates ([#&#8203;17557](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17557))\n\n###
          [`v4.1.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#412---2025-04-03)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.1...v4.1.2)\n\n#####
          Fixed\n\n-   Don't rely on the presence of `@layer base` to polyfill `@property`
          ([#&#8203;17506](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17506))\n-
          \  Support setting multiple inset shadows as arbitrary values ([#&#8203;17523](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17523))\n-
          \  Fix `drop-shadow-*` utilities that are defined with multiple shadows
          ([#&#8203;17515](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17515))\n-
          \  PostCSS: Fix race condition when two changes are queued concurrently
          ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
          \  PostCSS: Ensure files containing `@tailwind utilities` are processed
          ([#&#8203;17514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17514))\n-
          \  Ensure the `color-mix(\u2026)` polyfill creates fallbacks even when using
          colors that cannot be statically analyzed ([#&#8203;17513](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17513))\n-
          \  Fix slow incremental builds with `@tailwindcss/vite` and `@tailwindcss/postscss`
          (especially on Windows) ([#&#8203;17511](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17511))\n-
          \  Vite: Fix missing CSS file in Qwik setups ([#&#8203;17533](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17533))\n\n###
          [`v4.1.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#411---2025-04-02)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.0...v4.1.1)\n\n#####
          Fixed\n\n-   Disable padding in `@source inline(\u2026)` brace expansion
          ([#&#8203;17491](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17491))\n-
          \  Inject polyfills after `@import` and body-less `@layer` ([#&#8203;17493](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17493))\n-
          \  Ensure `@tailwindcss/cli` does not contain an import for `jiti` ([#&#8203;17502](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17502))\n\n###
          [`v4.1.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#410---2025-04-01)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.17...v4.1.0)\n\n#####
          Added\n\n-   Add `details-content` variant ([#&#8203;15319](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15319))\n-
          \  Add `inverted-colors` variant ([#&#8203;11693](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11693))\n-
          \  Add `noscript` variant ([#&#8203;11929](https://redirect.github.com/tailwindlabs/tailwindcss/pull/11929),
          [#&#8203;17431](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17431))\n-
          \  Add `items-baseline-last` and `self-baseline-last` utilities ([#&#8203;13888](https://redirect.github.com/tailwindlabs/tailwindcss/pull/13888),
          [#&#8203;17476](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17476))\n-
          \  Add `pointer-none`, `pointer-coarse`, and `pointer-fine` variants ([#&#8203;16946](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16946))\n-
          \  Add `any-pointer-none`, `any-pointer-coarse`, and `any-pointer-fine`
          variants ([#&#8203;16941](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16941))\n-
          \  Add safe alignment utilities ([#&#8203;14607](https://redirect.github.com/tailwindlabs/tailwindcss/pull/14607))\n-
          \  Add `user-valid` and `user-invalid` variants ([#&#8203;12370](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12370))\n-
          \  Add `wrap-anywhere`, `wrap-break-word`, and `wrap-normal` utilities ([#&#8203;12128](https://redirect.github.com/tailwindlabs/tailwindcss/pull/12128))\n-
          \  Add `@source inline(\u2026)` and `@source not inline(\u2026)` ([#&#8203;17147](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17147))\n-
          \  Add `@source not \"\u2026\"` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Add `text-shadow-*` utilities ([#&#8203;17389](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17389))\n-
          \  Add `mask-*` utilities ([#&#8203;17134](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17134))\n-
          \  Add `bg-{position,size}-*` utilities for arbitrary values ([#&#8203;17432](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17432))\n-
          \  Add `shadow-*/<alpha>`, `inset-shadow-*/<alpha>`, `drop-shadow-*/<alpha>`,
          and `text-shadow-*/<alpha>` utilities to control shadow opacity ([#&#8203;17398](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17398),
          [#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
          \  Add `drop-shadow-<color>` utilities ([#&#8203;17434](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17434))\n-
          \  Improve compatibility with older versions of Safari and Firefox ([#&#8203;17435](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17435))\n\n#####
          Fixed\n\n-   Follow symlinks when resolving `@source` directives ([#&#8203;17391](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17391))\n-
          \  Don't scan ignored files for classes when changing an ignored file triggers
          a rebuild using `@tailwindcss/cli` ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Support negated `content` rules in legacy JavaScript configuration ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Interpret syntax like `@(\"@&#8203;\")md:\u2026` as `@md:\u2026` in Razor
          files ([#&#8203;17427](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17427))\n-
          \  Disallow top-level braces, top-level semicolons, and unbalanced parentheses
          and brackets in arbitrary values ([#&#8203;17361](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17361))\n-
          \  Ensure the `--theme(\u2026)` function still resolves to the CSS variables
          when using legacy JS plugins ([#&#8203;17458](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17458))\n-
          \  Detect used theme variables in CSS module files ([#&#8203;17433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17433),
          [#&#8203;17467](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17467))\n\n#####
          Changed\n\n-   Ignore `node_modules` by default (can be overridden by `@source
          \u2026` rules) ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  `@source` rules that include file extensions or point inside `node_modules/`
          folders no longer consider your `.gitignore` rules ([#&#8203;17255](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17255))\n-
          \  Deprecate `bg-{left,right}-{top,bottom}` in favor of `bg-{top,bottom}-{left,right}`
          utilities ([#&#8203;17378](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17378))\n-
          \  Deprecate `object-{left,right}-{top,bottom}` in favor of `object-{top,bottom}-{left,right}`
          utilities ([#&#8203;17437](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17437))\n\n###
          [`v4.0.17`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17)\n\n#####
          Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
          ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
          [`v4.0.16`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4016---2025-03-25)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.15...v4.0.16)\n\n#####
          Added\n\n-   Add support for literal values in `--value('\u2026')` and `--modifier('\u2026')`
          ([#&#8203;17304](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17304))\n\n#####
          Fixed\n\n-   Fix class extraction followed by `(` in Pug ([#&#8203;17320](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17320))\n-
          \  Ensure `@keyframes` for theme animations are emitted if they are referenced
          following a comma ([#&#8203;17352](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17352))\n-
          \  Vite: Ensure that updates to an imported CSS file are properly propagated
          after updating source files ([#&#8203;17347](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17347))\n-
          \  Pre process `Slim` templates embedded in Ruby files ([#&#8203;17336](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17336))\n-
          \  Error when input and output files resolve to the same file when using
          the CLI ([#&#8203;17311](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17311))\n-
          \  Add missing suggestions when `--spacing(--value(integer, number))` is
          used ([#&#8203;17308](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17308))\n-
          \  Add `::-webkit-details-marker` pseudo to `marker` variant ([#&#8203;17362](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17362))\n\n###
          [`v4.0.15`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4015---2025-03-20)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.14...v4.0.15)\n\n#####
          Fixed\n\n- Fix incorrect angle in `-bg-conic-*` utilities ([#&#8203;17174](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17174))\n-
          Fix `border-[12px_4px]` being interpreted as a `border-color` instead of
          a `border-width` ([#&#8203;17248](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17248))\n-
          Work around a crash in Safari 16.4 and 16.5 when using the default Preflight
          styles ([#&#8203;17306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17306))\n-
          Pre-process `<template lang=\"\u2026\">` in Vue files ([#&#8203;17252](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17252))\n-
          Ensure that all CSS variables used by Preflight are prefixed ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n-
          Prevent segfault when loaded in a worker thread on Linux ([#&#8203;17276](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17276))\n-
          Ensure multiple `--value(\u2026)` or `--modifier(\u2026)` calls don't delete
          subsequent declarations ([#&#8203;17273](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17273))\n-
          Fix class extraction followed by `(` in Slim ([#&#8203;17278](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17278))\n-
          Export `PluginUtils` from `tailwindcss/plugin` for compatibility with v3
          ([#&#8203;17299](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17299))\n-
          Remove redundant `line-height: initial` from Preflight ([#&#8203;15212](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15212))\n-
          Increase Standalone hardware compatibility on macOS x64 builds ([#&#8203;17267](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17267))\n-
          Ensure that the CSS file rebuilds if a new CSS variable is used from templates
          ([#&#8203;17301](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17301))\n\n#####
          Changed\n\n- The `--theme(\u2026)` function now returns CSS variables from
          your theme variables unless used inside positions where CSS variables are
          invalid (e.g. inside `@media` queries) ([#&#8203;17036](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17036))\n\n###
          [`v4.0.14`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.13...v4.0.14)\n\n#####
          Fixed\n\n- Do not extract candidates with JS string interpolation `${` ([#&#8203;17142](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17142))\n-
          Fix extraction of variants containing `.` character ([#&#8203;17153](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17153))\n-
          Fix extracting candidates in Clojure/ClojureScript ([#&#8203;17087](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17087))\n\n###
          [`v4.0.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4013---2025-03-11)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.12...v4.0.13)\n\n#####
          Fixed\n\n- Fix Haml pre-processing ([#&#8203;17051](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17051))\n-
          Ensure `.node` and `.wasm` files are not scanned for utilities ([#&#8203;17123](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17123))\n-
          Improve performance when scanning JSON files ([#&#8203;17125](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17125))\n-
          Fix extracting candidates containing dots in Haml, Pug, and Slim pre processors
          ([#&#8203;17094](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17094),
          [#&#8203;17085](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17085),
          [#&#8203;17113](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17113))\n-
          Don't create invalid CSS when encountering a link wrapped in square brackets
          ([#&#8203;17129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17129))\n\n###
          [`v4.0.12`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4012---2025-03-07)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.11...v4.0.12)\n\n#####
          Fixed\n\n- Vite: Fix `url(\u2026)` rebasing in transitively imported CSS
          files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
          PostCSS: Rebase `url(\u2026)`s in imported CSS files ([#&#8203;16965](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16965))\n-
          Ensure utilities are sorted based on their actual property order ([#&#8203;16995](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16995))\n-
          Ensure strings in Pug and Slim templates are handled correctly ([#&#8203;17000](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17000))\n-
          Ensure classes between `}` and `{` are properly extracted ([#&#8203;17001](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17001))\n-
          Fix `razor`/`cshtml` pre-processing ([#&#8203;17027](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17027))\n-
          Ensure extracting candidates from JS embedded in a PHP string works as expected
          ([#&#8203;17031](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17031))\n\n###
          [`v4.0.11`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4011---2025-03-06)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.10...v4.0.11)\n\n#####
          Fixed\n\n- Ensure classes containing `--` are extracted correctly ([#&#8203;16972](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16972))\n-
          Ensure classes containing numbers followed by dash or underscore are extracted
          correctly ([#&#8203;16980](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16980))\n-
          Ensure arbitrary container queries are extracted correctly ([#&#8203;16984](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16984))\n-
          Ensure classes ending in `[` are extracted in Slim templating language ([#&#8203;16985](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16985))\n-
          Ensure arbitrary variables with data types are extracted correctly ([#&#8203;16986](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16986))\n\n###
          [`v4.0.10`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4010---2025-03-05)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.9...v4.0.10)\n\n#####
          Added\n\n-   Add `col-<number>` and `row-<number>` utilities for `grid-column`
          and `grid-row` ([#&#8203;15183](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15183))\n\n#####
          Fixed\n\n-   Ensure `not-*` does not remove `:is(\u2026)` from variants
          ([#&#8203;16825](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16825))\n-
          \  Ensure `@keyframes` are correctly emitted when using a prefix ([#&#8203;16850](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16850))\n-
          \  Don't swallow `@utility` declarations when `@apply` is used in nested
          rules ([#&#8203;16940](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16940))\n-
          \  Ensure `outline-hidden` behaves like `outline-none` outside of forced
          colors mode ([#&#8203;16943](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16943))\n-
          \  Allow `!important` on CSS variables again ([#&#8203;16873](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16873))\n-
          \  Vite: Do not crash when encountering an `.svg` file with `#` or `?` in
          the filename ([#&#8203;16957](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16957))\n-
          \  Ensure utilities are properly detected within square brackets ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Ensure utilities are properly detected using Angular's conditional class
          binding syntax ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Ensure utilities starting with numbers are properly extracted from Slim
          templates ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n-
          \  Discard arbitrary property candidates that have guaranteed-invalid property
          names ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n#####
          Changed\n\n-   Removed `max-w-auto` and `max-h-auto` utilities as they generate
          invalid CSS ([#&#8203;16917](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16917))\n-
          \  Replaced the existing candidate extractor with a brand new extractor
          to improve maintainability, correctness, and performance ([#&#8203;16306](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16306))\n\n###
          [`v4.0.9`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#409---2025-02-25)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.8...v4.0.9)\n\n#####
          Fixed\n\n-   Make JS APIs available to plugins and configs in the Standalone
          CLI ([#&#8203;15934](https://redirect.github.com/tailwindlabs/tailwindcss/pull/15934))\n-
          \  Vite: Don't crash when importing a virtual module from JavaScript that
          ends in `.css` ([#&#8203;16780](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16780))\n-
          \  Fix an issue where `@reference \"\u2026\"` would sometimes omit keyframe
          animations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n-
          \  Ensure `z-*!` utilities are properly marked as `!important` ([#&#8203;16795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16795))\n-
          \  Read UTF-8 CSS files that start with a byte-order mark (BOM) ([#&#8203;16796](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16796))\n-
          \  Ensure nested functions in selectors used with JavaScript plugins are
          not truncated ([#&#8203;16802](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16802))\n\n#####
          Changed\n\n-   Emit variable fallbacks when using `@reference \"\u2026\"`
          instead of duplicate CSS variable declarations ([#&#8203;16774](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16774))\n\n###
          [`v4.0.8`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#408---2025-02-21)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8)\n\n#####
          Added\n\n- Allow `@import` with `theme(\u2026)` options for stylesheets
          that contain more than just `@theme` rules ([#&#8203;16514](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16514))\n\n#####
          Fixed\n\n- Don't add `!important` to CSS variable declarations when using
          the important modifier ([#&#8203;16668](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16668))\n-
          Vite: Ignore files and directories specified in your `.gitignore` file when
          using automatic source detection([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Don't rely on the module graph for detecting candidates to ensure
          setups with multiple Vite builds work as expected ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Ensure Astro production builds always contain classes used in client-only
          components ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Vite: Always scan raw file contents for utility classes before any other
          transforms have been applied to ensure utility classes are scanned without
          any additional escaping ([#&#8203;16631](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16631))\n-
          Ensure utilities with more declarations are always sorted before utilities
          with fewer declarations when utilities only define CSS variables ([#&#8203;16715](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16715))\n-
          Only include `translate-z-px` utilities once in compiled CSS ([#&#8203;16718](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16718))\n\n#####
          Changed\n\n- Don't include theme variables that aren't used in compiled
          CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211),
          [#&#8203;16676](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16676))\n\n###
          [`v4.0.7`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#407---2025-02-18)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7)\n\n#####
          Fixed\n\n- Export `tailwindcss/lib/util/flattenColorPalette.js` for backward
          compatibility ([#&#8203;16411](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16411))\n-
          Fix sorting of numeric utility suggestions when they have different magnitudes
          ([#&#8203;16414](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16414))\n-
          Show suggestions for fractions in IntelliSense ([#&#8203;16353](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16353))\n-
          Don\u2019t replace `_` in suggested theme keys ([#&#8203;16433](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16433))\n-
          Ensure `--default-outline-width` can be used to change the `outline-width`
          value of the `outline` utility ([#&#8203;16469](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16469))\n-
          Ensure drop shadow utilities don't inherit unexpectedly ([#&#8203;16471](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16471))\n-
          Export config and plugin types from `tailwindcss/plugin` for backward compatibility
          ([#&#8203;16505](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16505))\n-
          Ensure JavaScript plugins that emit nested rules referencing the utility
          name work as expected ([#&#8203;16539](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16539))\n-
          Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows
          builds ([#&#8203;16602](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16602))\n-
          Ensure that Next.js splat routes are scanned for classes ([#&#8203;16457](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16457))\n-
          Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#&#8203;16623](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16623))\n-
          Upgrade: Report errors when updating dependencies ([#&#8203;16504](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16504))\n-
          Upgrade: Ensure a `darkMode` JS config setting with block syntax converts
          to use `@slot` ([#&#8203;16507](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16507))\n-
          Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss`
          are installed when upgrading ([#&#8203;16620](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16620))\n\n###
          [`v4.0.6`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#406---2025-02-10)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6)\n\n#####
          Fixed\n\n- Revert change to no longer include theme variables that aren't
          used in compiled CSS ([#&#8203;16403](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16403))\n-
          Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image
          placeholder=\"blur\" />` ([#&#8203;16405](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16405))\n\n###
          [`v4.0.5`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#405---2025-02-08)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5)\n\n#####
          Added\n\n- Add `@theme static` option for always including theme variables
          in compiled CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n#####
          Fixed\n\n- Remove rogue `console.log` from `@tailwindcss/vite` ([#&#8203;16307](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16307))\n\n#####
          Changed\n\n- Don't include theme variables that aren't used in compiled
          CSS ([#&#8203;16211](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16211))\n\n###
          [`v4.0.4`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#404---2025-02-06)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4)\n\n#####
          Fixed\n\n-   Fix a crash when setting JS theme values to `null` ([#&#8203;16210](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16210))\n-
          \  Ensure escaped underscores in CSS variables in arbitrary values are properly
          unescaped ([#&#8203;16206](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16206))\n-
          \  Ensure that the `containers` JS theme key is added to the `--container-*`
          namespace ([#&#8203;16169](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16169))\n-
          \  Ensure theme `@keyframes` are generated even if an `--animation-*` variable
          spans multiple lines ([#&#8203;16237](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16237))\n-
          \  Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#&#8203;16238](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16238))\n-
          \  Fix `order-first` and `order-last` for Firefox ([#&#8203;16266](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16266))\n-
          \  Fix support for older instruction sets on Linux x64 builds of the standalone
          CLI ([#&#8203;16244](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16244))\n-
          \  Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files
          ([#&#8203;16274](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16274))\n-
          \  Ensure Node addons are packaged correctly with FreeBSD builds ([#&#8203;16277](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16277))\n-
          \  Fix an issue where `@variant` inside a referenced stylesheet could cause
          a stack overflow ([#&#8203;16300](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16300))\n\n###
          [`v4.0.3`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#403---2025-02-01)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3)\n\n#####
          Fixed\n\n- Fix incorrect removal of `@import url();` ([#&#8203;16144](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16144))\n\n###
          [`v4.0.2`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#402---2025-01-31)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2)\n\n#####
          Fixed\n\n- Only generate positive `grid-cols-*` and `grid-rows-*` utilities
          ([#&#8203;16020](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16020))\n-
          Ensure escaped theme variables are handled correctly ([#&#8203;16064](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16064))\n-
          Ensure we process Tailwind CSS features when only using `@reference` or
          `@variant` ([#&#8203;16057](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16057))\n-
          Refactor gradient implementation to work around [prettier/prettier#17058](https://redirect.github.com/prettier/prettier/issues/17058)
          ([#&#8203;16072](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16072))\n-
          Vite: Ensure hot-reloading works with SolidStart setups ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
          Vite: Fix a crash when starting the development server in SolidStart setups
          ([#&#8203;16052](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16052))\n-
          Vite: Don't rebase URLs that appear to be aliases ([#&#8203;16078](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16078))\n-
          Vite: Transform `<style>` blocks in HTML files ([#&#8203;16069](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16069))\n-
          Prevent camel-casing CSS custom properties added by JavaScript plugins ([#&#8203;16103](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16103))\n-
          Do not emit `@keyframes` in `@theme reference` ([#&#8203;16120](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16120))\n-
          Discard invalid declarations when parsing CSS ([#&#8203;16093](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16093))\n-
          Do not emit empty CSS rules and at-rules ([#&#8203;16121](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16121))\n-
          Handle `@variant` when at the top-level of a stylesheet ([#&#8203;16129](https://redirect.github.com/tailwindlabs/tailwindcss/pull/16129))\n\n###
          [`v4.0.1`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4017---2025-03-26)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1)\n\n#####
          Fixed\n\n-   Fix an issue causing the CLI to hang when processing Ruby files
          ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))\n\n###
          [`v4.0.0`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#400---2025-01-21)\n\n[Compare
          Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v3.4.17...v4.0.0)\n\n#####
          Added\n\n- [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine)
          \u2014 where full builds are up to 5x faster, and incremental builds are
          over 100x faster \u2014 and measured in microseconds.\n- [Designed for the
          modern web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web)
          \u2014 built on cutting-edge CSS features like cascade layers, registered
          custom properties with `@property`, and `color-mix()`.\n- [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation)
          \u2014 fewer dependencies, zero configuration, and just a single line of
          code in your CSS file.\n- [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin)
          \u2014 tight integration for maximum performance and minimum configuration.\n-
          [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection)
          \u2014 all of your template files are discovered automatically, with no
          configuration required.\n- [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support)
          \u2014 no additional tooling necessary to bundle multiple CSS files.\n-
          [CSS-first configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration)
          \u2014 a reimagined developer experience where you customize and extend
          the framework directly in CSS instead of a JavaScript configuration file.\n-
          [CSS theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables)
          \u2014 all of your design tokens exposed as native CSS variables so you
          can access them anywhere.\n- [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants)
          \u2014 stop guessing what values exist in your spacing scale, or extending
          your configuration for things like basic data attributes.\n- [Modernized
          P3 color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette)
          \u2014 a redesigned, more vivid color palette that takes full advantage
          of modern display technology.\n- [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries)
          \u2014 first-class APIs for styling elements based on their container size,
          no plugins required.\n- [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities)
          \u2014 transform elements in 3D space directly in your HTML.\n- [Expanded
          gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis)
          \u2014 radial and conic gradients, interpolation modes, and more.\n- [@&#8203;starting-style
          support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support)
          \u2014 a new variant you can use to create enter and exit transitions, without
          the need for JavaScript.\n- [not-\\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant)
          \u2014 style an element only when it doesn't match another variant, custom
          selector, or media or feature query.\n- [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants)
          \u2014 including support for `color-scheme`, `field-sizing`, complex shadows,
          `inert`, and more.\n\nStart using Tailwind CSS v4.0 today by [installing
          it in a new project](https://tailwindcss.com/docs/installation/), or playing
          with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/).\n\nFor
          existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide)
          and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool)
          to get you on the latest version as quickly and painlessly as possible.\n\nFor
          a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4).\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/python-osism).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/python-osism/pull/1631
        commit_id: 7d41171fada464ec42a2e74098113a422ae624e4
        patchset: 7d41171fada464ec42a2e74098113a422ae624e4
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          name: osism/python-osism
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
        topic: null
      job: python-osism-test-setup
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IHRhaWx3aW5kY3NzIHRvIHY0CgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IENoYW5nZSB8IEFnZSB8IENvbmZpZGVuY2UgfAp8LS0tfC0tLXwtLS18LS0tfAp8IFt0YWlsd2luZGNzc10oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20pIChbc291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3RyZWUvSEVBRC9wYWNrYWdlcy90YWlsd2luZGNzcykpIHwgW2BeMy40LjE3YCAtPiBgXjQuMC4wYF0oaHR0cHM6Ly9yZW5vdmF0ZWJvdC5jb20vZGlmZnMvbnBtL3RhaWx3aW5kY3NzLzMuNC4xNy80LjEuMTEpIHwgWyFbYWdlXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2FwaS9tYy9iYWRnZXMvYWdlL25wbS90YWlsd2luZGNzcy80LjEuMTE/c2xpbT10cnVlKV0oaHR0cHM6Ly9kb2NzLnJlbm92YXRlYm90LmNvbS9tZXJnZS1jb25maWRlbmNlLykgfCBbIVtjb25maWRlbmNlXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2FwaS9tYy9iYWRnZXMvY29uZmlkZW5jZS9ucG0vdGFpbHdpbmRjc3MvMy40LjE3LzQuMS4xMT9zbGltPXRydWUpXShodHRwczovL2RvY3MucmVub3ZhdGVib3QuY29tL21lcmdlLWNvbmZpZGVuY2UvKSB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+dGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzICh0YWlsd2luZGNzcyk8L3N1bW1hcnk+CgojIyMgW2B2NC4xLjExYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQxMTEtLS0yMDI1LTA2LTI2KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMS4xMC4uLnY0LjEuMTEpCgojIyMjIyBGaXhlZAoKLSBBZGQgaGV1cmlzdGljIHRvIHNraXAgY2FuZGlkYXRlIG1pZ3JhdGlvbnMgaW5zaWRlIGBlbWl0KOKApilgIChbIyYjODIwMzsxODMzMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MzMwKSkKLSBFeHRyYWN0IGNhbmRpZGF0ZXMgd2l0aCB2YXJpYW50cyBpbiBDbG9qdXJlL0Nsb2p1cmVTY3JpcHQga2V5d29yZHMgKFsjJiM4MjAzOzE4MzM4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgzMzgpKQotIERvY3VtZW50IGAtLXdhdGNoPWFsd2F5c2AgaW4gdGhlIENMSSdzIHVzYWdlIChbIyYjODIwMzsxODMzN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MzM3KSkKLSBBZGQgc3VwcG9ydCBmb3IgVml0ZSA3IHRvIGBAdGFpbHdpbmRjc3Mvdml0ZWAgKFsjJiM4MjAzOzE4Mzg0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgzODQpKQoKIyMjIFtgdjQuMS4xMGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MTEwLS0tMjAyNS0wNi0xMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjEuOS4uLnY0LjEuMTApCgojIyMjIyBGaXhlZAoKLSAgIEZpeCBpbmNvcnJlY3RseSBnZW5lcmF0ZWQgQ1NTIHdoZW4gdXNpbmcgcGVyY2VudGFnZXMgaW4gYXJiaXRyYXJ5IHZhbHVlcyB3aXRoIGNhbGMsIGUuZy46IGB3LVtjYWxjKDEwMCUtdmFyKC0tb2Zmc2V0KSldYCAoWyMmIzgyMDM7MTgyODldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODI4OSkpCgojIyMgW2B2NC4xLjlgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDE5LS0tMjAyNS0wNi0xMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjEuOC4uLnY0LjEuOSkKCiMjIyMjIEZpeGVkCgotICAgQ29ycmVjdGx5IHBhcnNlIGN1c3RvbSBwcm9wZXJ0aWVzIHdpdGggc3RyaW5ncyBjb250YWluaW5nIHNlbWljb2xvbnMgKFsjJiM4MjAzOzE4MjUxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgyNTEpKQotICAgVXBncmFkZTogTWlncmF0ZSBhcmJpdHJhcnkgbW9kaWZpZXJzIHdpdGhvdXQgcGVyY2VudGFnZSBzaWducyB0byBiYXJlIHZhbHVlcyAoZS5nLiBgL1swLjE2XWAg4oaSIGAvMTZgKSAoWyMmIzgyMDM7MTgxODRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODE4NCkpCi0gICBVcGdyYWRlOiBNaWdyYXRlIENTUyB2YXJpYWJsZSBzaG9ydGhhbmRzIHdoZXJlIGZhbGxiYWNrIHZhbHVlIGNvbnRhaW5zIGZ1bmN0aW9uIGNhbGwgKFsjJiM4MjAzOzE4MTg0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgxODQpKQotICAgVXBncmFkZTogTWlncmF0ZSBuZWdhdGl2ZSBhcmJpdHJhcnkgdmFsdWVzIHRvIG5lZ2F0aXZlIGJhcmUgdmFsdWVzIChlLmcuIGBtYi1bLTMycmVtXWAg4oaSIGAtbWItMTI4YCkgKFsjJiM4MjAzOzE4MjEyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgyMTIpKQotICAgVXBncmFkZTogRG8gbm90IG1pZ3JhdGUgYGJsdXJgIGluIGB3aXJlOm1vZGVsLmJsdXJgIChbIyYjODIwMzsxODIxNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MjE2KSkKLSAgIERvbid0IGFkZCBzcGFjZXMgYXJvdW5kIENTUyBkYXNoZWQgaWRlbnRzIHdoZW4gZm9ybWF0dGluZyBtYXRoIGV4cHJlc3Npb25zIChbIyYjODIwMzsxODIyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MjIwKSkKCiMjIyBbYHY0LjEuOGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MTgtLS0yMDI1LTA1LTI3KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMS43Li4udjQuMS44KQoKIyMjIyMgQWRkZWQKCi0gICBJbXByb3ZlIGVycm9yIG1lc3NhZ2VzIHdoZW4gYEBhcHBseWAgZmFpbHMgKFsjJiM4MjAzOzE4MDU5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgwNTkpKQoKIyMjIyMgRml4ZWQKCi0gICBVcGdyYWRlOiBEbyBub3QgbWlncmF0ZSBkZWNsYXJhdGlvbnMgdGhhdCBsb29rIGxpa2UgY2FuZGlkYXRlcyBpbiBgPHN0eWxlPmAgYmxvY2tzIChbIyYjODIwMzsxODA1N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MDU3KSwgWzE4MDY4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgwNjgpKQotICAgVXBncmFkZTogRG9uJ3QgZXJyb3Igd2hlbiBsb29raW5nIGZvciBgdGFpbHdpbmRjc3NgIGluIHBucG0gbW9ub3JlcG9zIChbIyYjODIwMzsxODA2NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MDY1KSkKLSAgIFVwZ3JhZGU6IERvbid0IGVycm9yIHdoZW4gdXBkYXRpbmcgZGVwZW5kZW5jaWVzIGluIHBucG0gbW9ub3JlcG9zIChbIyYjODIwMzsxODA2NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MDY1KSkKLSAgIFVwZ3JhZGU6IE1pZ3JhdGUgZGVwcmVjYXRlZCBgb3JkZXItbm9uZWAgdG8gYG9yZGVyLTBgIChbIyYjODIwMzsxODEyNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MTI2KSkKLSAgIFN1cHBvcnQgTGVwdG9zIGBjbGFzczpgIGF0dHJpYnV0ZXMgd2hlbiBleHRyYWN0aW5nIGNsYXNzZXMgKFsjJiM4MjAzOzE4MDkzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgwOTMpKQotICAgRml4ICJDYW5ub3QgcmVhZCBwcm9wZXJ0aWVzIG9mIHVuZGVmaW5lZCIgY3Jhc2ggb24gbWFsZm9ybWVkIGFyYml0cmFyeSB2YWx1ZSAoWyMmIzgyMDM7MTgxMzNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODEzMykpCi0gICBVcGdyYWRlOiBNaWdyYXRlIGAtbXQtWzBweF1gIHRvIGBtdC1bMHB4XWAgaW5zdGVhZCBvZiB0aGUgb3RoZXIgd2F5IGFyb3VuZCAoWyMmIzgyMDM7MTgxNTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODE1NCkpCi0gICBGaXggSGFtbCBwcmUtcHJvY2Vzc2luZyBjcmFzaCB3aGVuIHRoZXJlIGlzIG5vIGBcbmAgYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSAoWyMmIzgyMDM7MTgxNTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODE1NSkpCi0gICBJZ25vcmUgYC5wbnBtLXN0b3JlYCBmb2xkZXJzIGJ5IGRlZmF1bHQgKGNhbiBiZSBvdmVycmlkZGVuIGJ5IGBAc291cmNlIOKApmAgcnVsZXMpIChbIyYjODIwMzsxODE2M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MTYzKSkKLSAgIEZpeCBQb3N0Q1NTIGNyYXNoIHdoZW4gY2FsbGluZyBgdG9KU09OKClgIChbIyYjODIwMzsxODA4M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE4MDgzKSkKCiMjIyBbYHY0LjEuN2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MTctLS0yMDI1LTA1LTE1KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMS42Li4udjQuMS43KQoKIyMjIyMgQWRkZWQKCi0gICBVcGdyYWRlOiBNaWdyYXRlIGJhcmUgdmFsdWVzIHRvIG5hbWVkIHZhbHVlcyAoWyMmIzgyMDM7MTgwMDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODAwMCkpCi0gICBVcGdyYWRlOiBBZGRlZCBjYWNoZSB0byBpbXByb3ZlIHRlbXBsYXRlIG1pZ3JhdGlvbiBwZXJmb3JtYW5jZSAoWyMmIzgyMDM7MTgwMjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODAyNSkpCgojIyMjIyBGaXhlZAoKLSAgIEFsbG93IGBfYCBiZWZvcmUgbnVtYmVycyBkdXJpbmcgY2FuZGlkYXRlIGV4dHJhY3Rpb24gKFsjJiM4MjAzOzE3OTYxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc5NjEpKQotICAgUHJldmVudCBkdXBsaWNhdGUgc3VnZ2VzdGlvbnMgd2hlbiB1c2luZyBgQHRoZW1lYCBhbmQgYEB1dGlsaXR5YCB0b2dldGhlciAoWyMmIzgyMDM7MTc2NzVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzY3NSkpCi0gICBFbnN1cmUgdGhhdCBtZWRpYSBxdWVyaWVzIHdpdGhpbiBgOjpiZWZvcmVgIGFuZCBgOjphZnRlcmAgcHNldWRvIHNlbGVjdG9ycyBjcmVhdGUgdmFsaWQgQ1NTIHJ1bGVzIGluIHByb2R1Y3Rpb24gYnVpbGRzIChbIyYjODIwMzsxNzk3OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3OTc5KSkKLSAgIEVuc3VyZSB0aGF0IHRoZSBzdGFuZGFsb25lIENMSSBkb2VzIG5vdCBsZWF2ZSB0ZW1wb3JhcnkgZmlsZXMgYmVoaW5kIChbIyYjODIwMzsxNzk4MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3OTgxKSkKLSAgIEVuc3VyZSBgLXJvdGF0ZS0qYCB1dGlsaXRpZXMgcHJvcGVybHkgbmVnYXRlIGFyYml0cmFyeSB2YWx1ZXMgKFsjJiM4MjAzOzE4MDE0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgwMTQpKQotICAgSWdub3JlIGN1c3RvbSB2YXJpYW50cyB1c2luZyBgOm1lcmdlKOKApilgIHNlbGVjdG9ycyBpbiBsZWdhY3kgSlMgcGx1Z2lucyAoWyMmIzgyMDM7MTgwMjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODAyMCkpCi0gICBFbnN1cmUgY2xhc3NlcyBjb250YWluaW5nIGAuYCBhcmUgcHJvcGVybHkgZXh0cmFjdGVkIGZyb20gQ2xvanVyZSBmaWxlcyAoWyMmIzgyMDM7MTgwMzhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODAzOCkpCi0gICBVcGdyYWRlOiBGaXggZXJyb3Igd2hlbiB1c2luZyBgQGltcG9ydCDigKYgc291cmNlKOKApilgIChbIyYjODIwMzsxNzk2M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3OTYzKSkKLSAgIFVwZ3JhZGU6IENoYW5nZSBjYXNpbmcgb2YgdXRpbGl0aWVzIHdpdGggbmFtZWQgdmFsdWVzIHRvIGtlYmFiLWNhc2UgdG8gbWF0Y2ggdXBkYXRlZCB0aGVtZSB2YXJpYWJsZXMgKFsjJiM4MjAzOzE4MDE3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTgwMTcpKQotICAgVXBncmFkZTogRG9uJ3QgbWlncmF0ZSBzdHJpbmdzIHRoYXQgbWF0Y2ggdXRpbGl0eSBuYW1lcyBpbiBWdWUgYXR0cmlidXRlIGJpbmRpbmdzIG90aGVyIHRoYW4gYGNsYXNzYCAoWyMmIzgyMDM7MTgwMjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xODAyNSkpCgojIyMgW2B2NC4xLjZgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDE2LS0tMjAyNS0wNS0wOSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjEuNS4uLnY0LjEuNikKCiMjIyMjIEFkZGVkCgotICAgVXBncmFkZTogQXV0b21hdGljYWxseSBjb252ZXJ0IGFyYml0cmFyeSB2YWx1ZXMgdG8gbmFtZWQgdmFsdWVzIHdoZW4gcG9zc2libGUgKGUuZy4gYGgtWzFsaF1gIHRvIGBoLWxoYCkgKFsjJiM4MjAzOzE3ODMxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc4MzEpLCBbIyYjODIwMzsxNzg1NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3ODU0KSkKLSAgIFVwZ3JhZGU6IFVwZGF0ZSBkZXBlbmRlbmNpZXMgaW4gcGFyYWxsZWwgZm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlIChbIyYjODIwMzsxNzg5OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3ODk4KSkKLSAgIEFkZCBkZXRhaWxlZCBsb2dnaW5nIGFib3V0IGBAc291cmNlYCBkaXJlY3RpdmVzLCBkaXNjb3ZlcmVkIGZpbGVzIGFuZCBzY2FubmVkIGZpbGVzIHdoZW4gdXNpbmcgYERFQlVHPSpgIChbIyYjODIwMzsxNzkwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3OTA2KSwgWyMmIzgyMDM7MTc5NTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzk1MikpCi0gICBBZGQgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBzb3VyY2UgbWFwcyBpbiBkZXZlbG9wbWVudCAoWyMmIzgyMDM7MTc3NzVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzc3NSkpCgojIyMjIyBGaXhlZAoKLSAgIEVuc3VyZSBuZWdhdGl2ZSBhcmJpdHJhcnkgYHNjYWxlYCB2YWx1ZXMgZ2VuZXJhdGUgbmVnYXRpdmUgdmFsdWVzIChbIyYjODIwMzsxNzgzMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3ODMxKSkKLSAgIEZpeCBIQU1MIGV4dHJhY3Rpb24gd2l0aCBlbWJlZGRlZCBSdWJ5IChbIyYjODIwMzsxNzg0Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3ODQ2KSkKLSAgIERvbid0IHNjYW4gZmlsZXMgZm9yIHV0aWxpdGllcyB3aGVuIHVzaW5nIGBAcmVmZXJlbmNlYCAoWyMmIzgyMDM7MTc4MzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzgzNikpCi0gICBGaXggaW5jb3JyZWN0bHkgcmVwbGFjaW5nIGBfYCB3aXRoIGAgYCBpbiBhcmJpdHJhcnkgbW9kaWZpZXIgc2hvcnRoYW5kIGBiZy1yZWQtNTAwLygtLW15X29wYWNpdHkpYCAoWyMmIzgyMDM7MTc4ODldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzg4OSkpCi0gICBEb24ndCBzY2FuIGAubG9nYCBmaWxlcyBmb3IgY2xhc3NlcyBieSBkZWZhdWx0IChbIyYjODIwMzsxNzkwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3OTA2KSkKLSAgIEVuc3VyZSB0aGF0IGN1c3RvbSB1dGlsaXRpZXMgYXBwbHlpbmcgb3RoZXIgY3VzdG9tIHV0aWxpdGllcyBkb24ndCBzd2FsbG93IG5lc3RlZCBgQGFwcGx5YCBydWxlcyAoWyMmIzgyMDM7MTc5MjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzkyNSkpCi0gICBEb3dubG9hZCBwbGF0Zm9ybSBzcGVjaWZpYyBwYWNrYWdlIGlmIGBvcHRpb25hbERlcGVuZGVuY2llc2AgYXJlIHNraXBwZWQgKFsjJiM4MjAzOzE3OTI5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc5MjkpKQoKIyMjIFtgdjQuMS41YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQxNS0tLTIwMjUtMDQtMzApCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvY29tcGFyZS92NC4xLjQuLi52NC4xLjUpCgojIyMjIyBBZGRlZAoKLSAgIFN1cHBvcnQgdXNpbmcgYEB0YWlsd2luZGNzcy91cGdyYWRlYCB0byB1cGdyYWRlIGJldHdlZW4gdmVyc2lvbnMgb2YgdjQuXCogKFsjJiM4MjAzOzE3NzE3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc3MTcpKQotICAgQWRkIGBoLWxoYCAvIGBtaW4taC1saGAgLyBgbWF4LWgtbGhgIHV0aWxpdGllcyAoWyMmIzgyMDM7MTc3OTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzc5MCkpCi0gICBUcmFuc2l0aW9uIGBkaXNwbGF5YCwgYHZpc2liaWxpdHlgLCBgY29udGVudC12aXNpYmlsaXR5YCwgYG92ZXJsYXlgLCBhbmQgYHBvaW50ZXItZXZlbnRzYCB3aGVuIHVzaW5nIGB0cmFuc2l0aW9uYCB0byBzaW1wbGlmeSBgQHN0YXJ0aW5nLXN0eWxlYCB1c2FnZSAoWyMmIzgyMDM7MTc4MTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzgxMikpCgojIyMjIyBGaXhlZAoKLSAgIERvbid0IHNjYW4gYC5nZW9qc29uYCBvciBgLmRiYCBmaWxlcyBmb3IgY2xhc3NlcyBieSBkZWZhdWx0IChbIyYjODIwMzsxNzcwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NzAwKSwgWyMmIzgyMDM7MTc3MTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzcxMSkpCi0gICBIaWRlIGRlZmF1bHQgc2hhZG93IHN1Z2dlc3Rpb25zIHdoZW4gbWlzc2luZyBkZWZhdWx0IHNoYWRvdyB0aGVtZSBrZXlzIChbIyYjODIwMzsxNzc0M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NzQzKSkKLSAgIFJlcGxhY2UgYF9gIHdpdGggYC5gIGluIHRoZW1lIHN1Z2dlc3Rpb25zIGZvciBgQHV0aWxpdHlgIGlmIHN1cnJvdW5kZWQgYnkgZGlnaXRzIChbIyYjODIwMzsxNzczM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NzMzKSkKLSAgIFNraXAgYGNvbG9yLW1peCjigKYpYCB3aGVuIG9wYWNpdHkgaXMgYDEwMCVgIChbIyYjODIwMzsxNzgxNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3ODE1KSkKLSAgIFBvc3RDU1M6IEVuc3VyZSB0aGF0IGVycm9ycyBpbiBpbXBvcnRlZCBzdHlsZXNoZWV0cyBhcmUgcmVjb3ZlcmFibGUgKFsjJiM4MjAzOzE3NzU0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc3NTQpKQotICAgVXBncmFkZTogQnVtcCBhbGwgVGFpbHdpbmQgQ1NTIHJlbGF0ZWQgZGVwZW5kZW5jaWVzIGR1cmluZyB1cGdyYWRlIChbIyYjODIwMzsxNzc2M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NzYzKSkKLSAgIFVwZ3JhZGU6IERvbid0IGFkZCBgLWAgdG8gdmFyaWFudHMgc3RhcnRpbmcgd2l0aCBgQGAgKFsjJiM4MjAzOzE3ODE0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc4MTQpKQotICAgVXBncmFkZTogRG9uJ3QgZm9ybWF0IHN0eWxlc2hlZXRzIHRoYXQgZGlkbid0IGNoYW5nZSB3aGVuIHVwZ3JhZGluZyAoWyMmIzgyMDM7MTc4MjRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzgyNCkpCgojIyMgW2B2NC4xLjRgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDE0LS0tMjAyNS0wNC0xNCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjEuMy4uLnY0LjEuNCkKCiMjIyMjIEFkZGVkCgotICAgQWRkIGV4cGVyaW1lbnRhbCBgQHRhaWx3aW5kY3NzL294aWRlLXdhc20zMi13YXNpYCB0YXJnZXQgZm9yIHJ1bm5pbmcgVGFpbHdpbmQgaW4gYnJvd3NlciBlbnZpcm9ubWVudHMgbGlrZSBTdGFja0JsaXR6IChbIyYjODIwMzsxNzU1OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NTU4KSkKCiMjIyMjIEZpeGVkCgotICAgRW5zdXJlIGBjb2xvci1taXgo4oCmKWAgcG9seWZpbGxzIGRvIG5vdCBjYXVzZSB1c2VkIENTUyB2YXJpYWJsZXMgdG8gYmUgcmVtb3ZlZCAoWyMmIzgyMDM7MTc1NTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzU1NSkpCi0gICBFbnN1cmUgYGNvbG9yLW1peCjigKYpYCBwb2x5ZmlsbHMgY3JlYXRlIGZhbGxiYWNrcyBmb3IgdGhlbWUgdmFyaWFibGVzIHRoYXQgcmVmZXJlbmNlIG90aGVyIHRoZW1lIHZhcmlhYmxlcyAoWyMmIzgyMDM7MTc1NjJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzU2MikpCi0gICBGaXggYnJhY2UgZXhwYW5zaW9uIGluIGRlY2xpbmluZyByYW5nZXMgbGlrZSBgezEwLi4wLi41fWAgYW5kIGB7MC4uMTAuLi01fWAgKFsjJiM4MjAzOzE3NTkxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc1OTEpKQotICAgV29yayBhcm91bmQgYSBDaHJvbWUgcmVuZGVyaW5nIGJ1ZyB3aGVuIHVzaW5nIHRoZSBgc2tldy0qYCB1dGlsaXRpZXMgKFsjJiM4MjAzOzE3NjI3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc2MjcpKQotICAgRW5zdXJlIGNvbnRhaW5lciBxdWVyeSB2YXJpYW50IG5hbWVzIGNhbiBjb250YWluIGh5cGhlbnMgKFsjJiM4MjAzOzE3NjI4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc2MjgpKQotICAgRW5zdXJlIGBzaGFkb3ctaW5oZXJpdGAsIGBpbnNldC1zaGFkb3ctaW5oZXJpdGAsIGBkcm9wLXNoYWRvdy1pbmhlcml0YCwgYW5kIGB0ZXh0LXNoYWRvdy1pbmhlcml0YCBpbmhlcml0IHRoZSBzaGFkb3cgY29sb3IgKFsjJiM4MjAzOzE3NjQ3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc2NDcpKQotICAgRW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBhcnJheSB0dXBsZXMgdXNlZCBpbiBgZm9udFNpemVgIEpTIHRoZW1lIGtleXMgKFsjJiM4MjAzOzE3NjMwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc2MzApKQotICAgRW5zdXJlIGZvbGRlcnMgd2l0aCBiaW5hcnkgZmlsZSBleHRlbnNpb25zIGluIHRoZWlyIG5hbWVzIGFyZSBzY2FubmVkIGZvciB1dGlsaXRpZXMgKFsjJiM4MjAzOzE3NTk1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc1OTUpKQotICAgVXBncmFkZTogQ29udmVydCBgZm9udFNpemVgIGFycmF5IHR1cGxlIHN5bnRheCB0byBDU1MgdGhlbWUgdmFyaWFibGVzIChbIyYjODIwMzsxNzYzMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NjMwKSkKCiMjIyBbYHY0LjEuM2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MTMtLS0yMDI1LTA0LTA0KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMS4yLi4udjQuMS4zKQoKIyMjIyMgRml4ZWQKCi0gU2hvdyB3YXJuaW5nIHdoZW4gdXNpbmcgdW5zdXBwb3J0ZWQgYmFyZSB2YWx1ZSBkYXRhIHR5cGUgaW4gYC0tdmFsdWUo4oCmKWAgKFsjJiM4MjAzOzE3NDY0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0NjQpKQotIFBvc3RDU1M6IEVuc3VyZSBjaGFuZ2VzIHRvIHRoZSBpbnB1dCBDU1MgZmlsZSBkb24ndCBnZW5lcmF0ZSBzdGFsZSBvdXRwdXQgd2hlbiB1c2luZyBUdXJib3BhY2sgKFsjJiM4MjAzOzE3NTU0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc1NTQpKQotIEVuc3VyZSBjbGFzc2VzIGFyZSBkZXRlY3RlZCBpbiBSdWJ5J3MgYCV3YCBzeW50YXggaW4gU2xpbSB0ZW1wbGF0ZXMgKFsjJiM4MjAzOzE3NTU3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc1NTcpKQoKIyMjIFtgdjQuMS4yYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQxMi0tLTIwMjUtMDQtMDMpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvY29tcGFyZS92NC4xLjEuLi52NC4xLjIpCgojIyMjIyBGaXhlZAoKLSAgIERvbid0IHJlbHkgb24gdGhlIHByZXNlbmNlIG9mIGBAbGF5ZXIgYmFzZWAgdG8gcG9seWZpbGwgYEBwcm9wZXJ0eWAgKFsjJiM4MjAzOzE3NTA2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc1MDYpKQotICAgU3VwcG9ydCBzZXR0aW5nIG11bHRpcGxlIGluc2V0IHNoYWRvd3MgYXMgYXJiaXRyYXJ5IHZhbHVlcyAoWyMmIzgyMDM7MTc1MjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzUyMykpCi0gICBGaXggYGRyb3Atc2hhZG93LSpgIHV0aWxpdGllcyB0aGF0IGFyZSBkZWZpbmVkIHdpdGggbXVsdGlwbGUgc2hhZG93cyAoWyMmIzgyMDM7MTc1MTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzUxNSkpCi0gICBQb3N0Q1NTOiBGaXggcmFjZSBjb25kaXRpb24gd2hlbiB0d28gY2hhbmdlcyBhcmUgcXVldWVkIGNvbmN1cnJlbnRseSAoWyMmIzgyMDM7MTc1MTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzUxNCkpCi0gICBQb3N0Q1NTOiBFbnN1cmUgZmlsZXMgY29udGFpbmluZyBgQHRhaWx3aW5kIHV0aWxpdGllc2AgYXJlIHByb2Nlc3NlZCAoWyMmIzgyMDM7MTc1MTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzUxNCkpCi0gICBFbnN1cmUgdGhlIGBjb2xvci1taXgo4oCmKWAgcG9seWZpbGwgY3JlYXRlcyBmYWxsYmFja3MgZXZlbiB3aGVuIHVzaW5nIGNvbG9ycyB0aGF0IGNhbm5vdCBiZSBzdGF0aWNhbGx5IGFuYWx5emVkIChbIyYjODIwMzsxNzUxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NTEzKSkKLSAgIEZpeCBzbG93IGluY3JlbWVudGFsIGJ1aWxkcyB3aXRoIGBAdGFpbHdpbmRjc3Mvdml0ZWAgYW5kIGBAdGFpbHdpbmRjc3MvcG9zdHNjc3NgIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MpIChbIyYjODIwMzsxNzUxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NTExKSkKLSAgIFZpdGU6IEZpeCBtaXNzaW5nIENTUyBmaWxlIGluIFF3aWsgc2V0dXBzIChbIyYjODIwMzsxNzUzM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NTMzKSkKCiMjIyBbYHY0LjEuMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MTEtLS0yMDI1LTA0LTAyKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMS4wLi4udjQuMS4xKQoKIyMjIyMgRml4ZWQKCi0gICBEaXNhYmxlIHBhZGRpbmcgaW4gYEBzb3VyY2UgaW5saW5lKOKApilgIGJyYWNlIGV4cGFuc2lvbiAoWyMmIzgyMDM7MTc0OTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzQ5MSkpCi0gICBJbmplY3QgcG9seWZpbGxzIGFmdGVyIGBAaW1wb3J0YCBhbmQgYm9keS1sZXNzIGBAbGF5ZXJgIChbIyYjODIwMzsxNzQ5M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NDkzKSkKLSAgIEVuc3VyZSBgQHRhaWx3aW5kY3NzL2NsaWAgZG9lcyBub3QgY29udGFpbiBhbiBpbXBvcnQgZm9yIGBqaXRpYCAoWyMmIzgyMDM7MTc1MDJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzUwMikpCgojIyMgW2B2NC4xLjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDEwLS0tMjAyNS0wNC0wMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuMTcuLi52NC4xLjApCgojIyMjIyBBZGRlZAoKLSAgIEFkZCBgZGV0YWlscy1jb250ZW50YCB2YXJpYW50IChbIyYjODIwMzsxNTMxOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE1MzE5KSkKLSAgIEFkZCBgaW52ZXJ0ZWQtY29sb3JzYCB2YXJpYW50IChbIyYjODIwMzsxMTY5M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzExNjkzKSkKLSAgIEFkZCBgbm9zY3JpcHRgIHZhcmlhbnQgKFsjJiM4MjAzOzExOTI5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTE5MjkpLCBbIyYjODIwMzsxNzQzMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NDMxKSkKLSAgIEFkZCBgaXRlbXMtYmFzZWxpbmUtbGFzdGAgYW5kIGBzZWxmLWJhc2VsaW5lLWxhc3RgIHV0aWxpdGllcyAoWyMmIzgyMDM7MTM4ODhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xMzg4OCksIFsjJiM4MjAzOzE3NDc2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0NzYpKQotICAgQWRkIGBwb2ludGVyLW5vbmVgLCBgcG9pbnRlci1jb2Fyc2VgLCBhbmQgYHBvaW50ZXItZmluZWAgdmFyaWFudHMgKFsjJiM4MjAzOzE2OTQ2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY5NDYpKQotICAgQWRkIGBhbnktcG9pbnRlci1ub25lYCwgYGFueS1wb2ludGVyLWNvYXJzZWAsIGFuZCBgYW55LXBvaW50ZXItZmluZWAgdmFyaWFudHMgKFsjJiM4MjAzOzE2OTQxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY5NDEpKQotICAgQWRkIHNhZmUgYWxpZ25tZW50IHV0aWxpdGllcyAoWyMmIzgyMDM7MTQ2MDddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNDYwNykpCi0gICBBZGQgYHVzZXItdmFsaWRgIGFuZCBgdXNlci1pbnZhbGlkYCB2YXJpYW50cyAoWyMmIzgyMDM7MTIzNzBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xMjM3MCkpCi0gICBBZGQgYHdyYXAtYW55d2hlcmVgLCBgd3JhcC1icmVhay13b3JkYCwgYW5kIGB3cmFwLW5vcm1hbGAgdXRpbGl0aWVzIChbIyYjODIwMzsxMjEyOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzEyMTI4KSkKLSAgIEFkZCBgQHNvdXJjZSBpbmxpbmUo4oCmKWAgYW5kIGBAc291cmNlIG5vdCBpbmxpbmUo4oCmKWAgKFsjJiM4MjAzOzE3MTQ3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcxNDcpKQotICAgQWRkIGBAc291cmNlIG5vdCAi4oCmImAgKFsjJiM4MjAzOzE3MjU1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNTUpKQotICAgQWRkIGB0ZXh0LXNoYWRvdy0qYCB1dGlsaXRpZXMgKFsjJiM4MjAzOzE3Mzg5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTczODkpKQotICAgQWRkIGBtYXNrLSpgIHV0aWxpdGllcyAoWyMmIzgyMDM7MTcxMzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzEzNCkpCi0gICBBZGQgYGJnLXtwb3NpdGlvbixzaXplfS0qYCB1dGlsaXRpZXMgZm9yIGFyYml0cmFyeSB2YWx1ZXMgKFsjJiM4MjAzOzE3NDMyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0MzIpKQotICAgQWRkIGBzaGFkb3ctKi88YWxwaGE+YCwgYGluc2V0LXNoYWRvdy0qLzxhbHBoYT5gLCBgZHJvcC1zaGFkb3ctKi88YWxwaGE+YCwgYW5kIGB0ZXh0LXNoYWRvdy0qLzxhbHBoYT5gIHV0aWxpdGllcyB0byBjb250cm9sIHNoYWRvdyBvcGFjaXR5IChbIyYjODIwMzsxNzM5OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3Mzk4KSwgWyMmIzgyMDM7MTc0MzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzQzNCkpCi0gICBBZGQgYGRyb3Atc2hhZG93LTxjb2xvcj5gIHV0aWxpdGllcyAoWyMmIzgyMDM7MTc0MzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzQzNCkpCi0gICBJbXByb3ZlIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBTYWZhcmkgYW5kIEZpcmVmb3ggKFsjJiM4MjAzOzE3NDM1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0MzUpKQoKIyMjIyMgRml4ZWQKCi0gICBGb2xsb3cgc3ltbGlua3Mgd2hlbiByZXNvbHZpbmcgYEBzb3VyY2VgIGRpcmVjdGl2ZXMgKFsjJiM4MjAzOzE3MzkxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTczOTEpKQotICAgRG9uJ3Qgc2NhbiBpZ25vcmVkIGZpbGVzIGZvciBjbGFzc2VzIHdoZW4gY2hhbmdpbmcgYW4gaWdub3JlZCBmaWxlIHRyaWdnZXJzIGEgcmVidWlsZCB1c2luZyBgQHRhaWx3aW5kY3NzL2NsaWAgKFsjJiM4MjAzOzE3MjU1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNTUpKQotICAgU3VwcG9ydCBuZWdhdGVkIGBjb250ZW50YCBydWxlcyBpbiBsZWdhY3kgSmF2YVNjcmlwdCBjb25maWd1cmF0aW9uIChbIyYjODIwMzsxNzI1NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MjU1KSkKLSAgIEludGVycHJldCBzeW50YXggbGlrZSBgQCgiQCYjODIwMzsiKW1kOuKApmAgYXMgYEBtZDrigKZgIGluIFJhem9yIGZpbGVzIChbIyYjODIwMzsxNzQyN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NDI3KSkKLSAgIERpc2FsbG93IHRvcC1sZXZlbCBicmFjZXMsIHRvcC1sZXZlbCBzZW1pY29sb25zLCBhbmQgdW5iYWxhbmNlZCBwYXJlbnRoZXNlcyBhbmQgYnJhY2tldHMgaW4gYXJiaXRyYXJ5IHZhbHVlcyAoWyMmIzgyMDM7MTczNjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzM2MSkpCi0gICBFbnN1cmUgdGhlIGAtLXRoZW1lKOKApilgIGZ1bmN0aW9uIHN0aWxsIHJlc29sdmVzIHRvIHRoZSBDU1MgdmFyaWFibGVzIHdoZW4gdXNpbmcgbGVnYWN5IEpTIHBsdWdpbnMgKFsjJiM4MjAzOzE3NDU4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0NTgpKQotICAgRGV0ZWN0IHVzZWQgdGhlbWUgdmFyaWFibGVzIGluIENTUyBtb2R1bGUgZmlsZXMgKFsjJiM4MjAzOzE3NDMzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0MzMpLCBbIyYjODIwMzsxNzQ2N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3NDY3KSkKCiMjIyMjIENoYW5nZWQKCi0gICBJZ25vcmUgYG5vZGVfbW9kdWxlc2AgYnkgZGVmYXVsdCAoY2FuIGJlIG92ZXJyaWRkZW4gYnkgYEBzb3VyY2Ug4oCmYCBydWxlcykgKFsjJiM4MjAzOzE3MjU1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNTUpKQotICAgYEBzb3VyY2VgIHJ1bGVzIHRoYXQgaW5jbHVkZSBmaWxlIGV4dGVuc2lvbnMgb3IgcG9pbnQgaW5zaWRlIGBub2RlX21vZHVsZXMvYCBmb2xkZXJzIG5vIGxvbmdlciBjb25zaWRlciB5b3VyIGAuZ2l0aWdub3JlYCBydWxlcyAoWyMmIzgyMDM7MTcyNTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzI1NSkpCi0gICBEZXByZWNhdGUgYGJnLXtsZWZ0LHJpZ2h0fS17dG9wLGJvdHRvbX1gIGluIGZhdm9yIG9mIGBiZy17dG9wLGJvdHRvbX0te2xlZnQscmlnaHR9YCB1dGlsaXRpZXMgKFsjJiM4MjAzOzE3Mzc4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTczNzgpKQotICAgRGVwcmVjYXRlIGBvYmplY3Qte2xlZnQscmlnaHR9LXt0b3AsYm90dG9tfWAgaW4gZmF2b3Igb2YgYG9iamVjdC17dG9wLGJvdHRvbX0te2xlZnQscmlnaHR9YCB1dGlsaXRpZXMgKFsjJiM4MjAzOzE3NDM3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTc0MzcpKQoKIyMjIFtgdjQuMC4xN2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDE3LS0tMjAyNS0wMy0yNikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuMTYuLi52NC4wLjE3KQoKIyMjIyMgRml4ZWQKCi0gICBGaXggYW4gaXNzdWUgY2F1c2luZyB0aGUgQ0xJIHRvIGhhbmcgd2hlbiBwcm9jZXNzaW5nIFJ1YnkgZmlsZXMgKFsjJiM4MjAzOzE3MzgzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTczODMpKQoKIyMjIFtgdjQuMC4xNmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDE2LS0tMjAyNS0wMy0yNSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuMTUuLi52NC4wLjE2KQoKIyMjIyMgQWRkZWQKCi0gICBBZGQgc3VwcG9ydCBmb3IgbGl0ZXJhbCB2YWx1ZXMgaW4gYC0tdmFsdWUoJ+KApicpYCBhbmQgYC0tbW9kaWZpZXIoJ+KApicpYCAoWyMmIzgyMDM7MTczMDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzMwNCkpCgojIyMjIyBGaXhlZAoKLSAgIEZpeCBjbGFzcyBleHRyYWN0aW9uIGZvbGxvd2VkIGJ5IGAoYCBpbiBQdWcgKFsjJiM4MjAzOzE3MzIwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTczMjApKQotICAgRW5zdXJlIGBAa2V5ZnJhbWVzYCBmb3IgdGhlbWUgYW5pbWF0aW9ucyBhcmUgZW1pdHRlZCBpZiB0aGV5IGFyZSByZWZlcmVuY2VkIGZvbGxvd2luZyBhIGNvbW1hIChbIyYjODIwMzsxNzM1Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MzUyKSkKLSAgIFZpdGU6IEVuc3VyZSB0aGF0IHVwZGF0ZXMgdG8gYW4gaW1wb3J0ZWQgQ1NTIGZpbGUgYXJlIHByb3Blcmx5IHByb3BhZ2F0ZWQgYWZ0ZXIgdXBkYXRpbmcgc291cmNlIGZpbGVzIChbIyYjODIwMzsxNzM0N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MzQ3KSkKLSAgIFByZSBwcm9jZXNzIGBTbGltYCB0ZW1wbGF0ZXMgZW1iZWRkZWQgaW4gUnVieSBmaWxlcyAoWyMmIzgyMDM7MTczMzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzMzNikpCi0gICBFcnJvciB3aGVuIGlucHV0IGFuZCBvdXRwdXQgZmlsZXMgcmVzb2x2ZSB0byB0aGUgc2FtZSBmaWxlIHdoZW4gdXNpbmcgdGhlIENMSSAoWyMmIzgyMDM7MTczMTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzMxMSkpCi0gICBBZGQgbWlzc2luZyBzdWdnZXN0aW9ucyB3aGVuIGAtLXNwYWNpbmcoLS12YWx1ZShpbnRlZ2VyLCBudW1iZXIpKWAgaXMgdXNlZCAoWyMmIzgyMDM7MTczMDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzMwOCkpCi0gICBBZGQgYDo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcmAgcHNldWRvIHRvIGBtYXJrZXJgIHZhcmlhbnQgKFsjJiM4MjAzOzE3MzYyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTczNjIpKQoKIyMjIFtgdjQuMC4xNWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDE1LS0tMjAyNS0wMy0yMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuMTQuLi52NC4wLjE1KQoKIyMjIyMgRml4ZWQKCi0gRml4IGluY29ycmVjdCBhbmdsZSBpbiBgLWJnLWNvbmljLSpgIHV0aWxpdGllcyAoWyMmIzgyMDM7MTcxNzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzE3NCkpCi0gRml4IGBib3JkZXItWzEycHhfNHB4XWAgYmVpbmcgaW50ZXJwcmV0ZWQgYXMgYSBgYm9yZGVyLWNvbG9yYCBpbnN0ZWFkIG9mIGEgYGJvcmRlci13aWR0aGAgKFsjJiM4MjAzOzE3MjQ4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNDgpKQotIFdvcmsgYXJvdW5kIGEgY3Jhc2ggaW4gU2FmYXJpIDE2LjQgYW5kIDE2LjUgd2hlbiB1c2luZyB0aGUgZGVmYXVsdCBQcmVmbGlnaHQgc3R5bGVzIChbIyYjODIwMzsxNzMwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MzA2KSkKLSBQcmUtcHJvY2VzcyBgPHRlbXBsYXRlIGxhbmc9IuKApiI+YCBpbiBWdWUgZmlsZXMgKFsjJiM4MjAzOzE3MjUyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNTIpKQotIEVuc3VyZSB0aGF0IGFsbCBDU1MgdmFyaWFibGVzIHVzZWQgYnkgUHJlZmxpZ2h0IGFyZSBwcmVmaXhlZCAoWyMmIzgyMDM7MTcwMzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzAzNikpCi0gUHJldmVudCBzZWdmYXVsdCB3aGVuIGxvYWRlZCBpbiBhIHdvcmtlciB0aHJlYWQgb24gTGludXggKFsjJiM4MjAzOzE3Mjc2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNzYpKQotIEVuc3VyZSBtdWx0aXBsZSBgLS12YWx1ZSjigKYpYCBvciBgLS1tb2RpZmllcijigKYpYCBjYWxscyBkb24ndCBkZWxldGUgc3Vic2VxdWVudCBkZWNsYXJhdGlvbnMgKFsjJiM4MjAzOzE3MjczXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNzMpKQotIEZpeCBjbGFzcyBleHRyYWN0aW9uIGZvbGxvd2VkIGJ5IGAoYCBpbiBTbGltIChbIyYjODIwMzsxNzI3OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3Mjc4KSkKLSBFeHBvcnQgYFBsdWdpblV0aWxzYCBmcm9tIGB0YWlsd2luZGNzcy9wbHVnaW5gIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdjMgKFsjJiM4MjAzOzE3Mjk5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyOTkpKQotIFJlbW92ZSByZWR1bmRhbnQgYGxpbmUtaGVpZ2h0OiBpbml0aWFsYCBmcm9tIFByZWZsaWdodCAoWyMmIzgyMDM7MTUyMTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNTIxMikpCi0gSW5jcmVhc2UgU3RhbmRhbG9uZSBoYXJkd2FyZSBjb21wYXRpYmlsaXR5IG9uIG1hY09TIHg2NCBidWlsZHMgKFsjJiM4MjAzOzE3MjY3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcyNjcpKQotIEVuc3VyZSB0aGF0IHRoZSBDU1MgZmlsZSByZWJ1aWxkcyBpZiBhIG5ldyBDU1MgdmFyaWFibGUgaXMgdXNlZCBmcm9tIHRlbXBsYXRlcyAoWyMmIzgyMDM7MTczMDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzMwMSkpCgojIyMjIyBDaGFuZ2VkCgotIFRoZSBgLS10aGVtZSjigKYpYCBmdW5jdGlvbiBub3cgcmV0dXJucyBDU1MgdmFyaWFibGVzIGZyb20geW91ciB0aGVtZSB2YXJpYWJsZXMgdW5sZXNzIHVzZWQgaW5zaWRlIHBvc2l0aW9ucyB3aGVyZSBDU1MgdmFyaWFibGVzIGFyZSBpbnZhbGlkIChlLmcuIGluc2lkZSBgQG1lZGlhYCBxdWVyaWVzKSAoWyMmIzgyMDM7MTcwMzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzAzNikpCgojIyMgW2B2NC4wLjE0YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQwMTQtLS0yMDI1LTAzLTEzKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMC4xMy4uLnY0LjAuMTQpCgojIyMjIyBGaXhlZAoKLSBEbyBub3QgZXh0cmFjdCBjYW5kaWRhdGVzIHdpdGggSlMgc3RyaW5nIGludGVycG9sYXRpb24gYCR7YCAoWyMmIzgyMDM7MTcxNDJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzE0MikpCi0gRml4IGV4dHJhY3Rpb24gb2YgdmFyaWFudHMgY29udGFpbmluZyBgLmAgY2hhcmFjdGVyIChbIyYjODIwMzsxNzE1M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MTUzKSkKLSBGaXggZXh0cmFjdGluZyBjYW5kaWRhdGVzIGluIENsb2p1cmUvQ2xvanVyZVNjcmlwdCAoWyMmIzgyMDM7MTcwODddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzA4NykpCgojIyMgW2B2NC4wLjEzYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQwMTMtLS0yMDI1LTAzLTExKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMC4xMi4uLnY0LjAuMTMpCgojIyMjIyBGaXhlZAoKLSBGaXggSGFtbCBwcmUtcHJvY2Vzc2luZyAoWyMmIzgyMDM7MTcwNTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzA1MSkpCi0gRW5zdXJlIGAubm9kZWAgYW5kIGAud2FzbWAgZmlsZXMgYXJlIG5vdCBzY2FubmVkIGZvciB1dGlsaXRpZXMgKFsjJiM4MjAzOzE3MTIzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcxMjMpKQotIEltcHJvdmUgcGVyZm9ybWFuY2Ugd2hlbiBzY2FubmluZyBKU09OIGZpbGVzIChbIyYjODIwMzsxNzEyNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MTI1KSkKLSBGaXggZXh0cmFjdGluZyBjYW5kaWRhdGVzIGNvbnRhaW5pbmcgZG90cyBpbiBIYW1sLCBQdWcsIGFuZCBTbGltIHByZSBwcm9jZXNzb3JzIChbIyYjODIwMzsxNzA5NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE3MDk0KSwgWyMmIzgyMDM7MTcwODVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzA4NSksIFsjJiM4MjAzOzE3MTEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcxMTMpKQotIERvbid0IGNyZWF0ZSBpbnZhbGlkIENTUyB3aGVuIGVuY291bnRlcmluZyBhIGxpbmsgd3JhcHBlZCBpbiBzcXVhcmUgYnJhY2tldHMgKFsjJiM4MjAzOzE3MTI5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcxMjkpKQoKIyMjIFtgdjQuMC4xMmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDEyLS0tMjAyNS0wMy0wNykKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuMTEuLi52NC4wLjEyKQoKIyMjIyMgRml4ZWQKCi0gVml0ZTogRml4IGB1cmwo4oCmKWAgcmViYXNpbmcgaW4gdHJhbnNpdGl2ZWx5IGltcG9ydGVkIENTUyBmaWxlcyAoWyMmIzgyMDM7MTY5NjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjk2NSkpCi0gUG9zdENTUzogUmViYXNlIGB1cmwo4oCmKWBzIGluIGltcG9ydGVkIENTUyBmaWxlcyAoWyMmIzgyMDM7MTY5NjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjk2NSkpCi0gRW5zdXJlIHV0aWxpdGllcyBhcmUgc29ydGVkIGJhc2VkIG9uIHRoZWlyIGFjdHVhbCBwcm9wZXJ0eSBvcmRlciAoWyMmIzgyMDM7MTY5OTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjk5NSkpCi0gRW5zdXJlIHN0cmluZ3MgaW4gUHVnIGFuZCBTbGltIHRlbXBsYXRlcyBhcmUgaGFuZGxlZCBjb3JyZWN0bHkgKFsjJiM4MjAzOzE3MDAwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcwMDApKQotIEVuc3VyZSBjbGFzc2VzIGJldHdlZW4gYH1gIGFuZCBge2AgYXJlIHByb3Blcmx5IGV4dHJhY3RlZCAoWyMmIzgyMDM7MTcwMDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzAwMSkpCi0gRml4IGByYXpvcmAvYGNzaHRtbGAgcHJlLXByb2Nlc3NpbmcgKFsjJiM4MjAzOzE3MDI3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcwMjcpKQotIEVuc3VyZSBleHRyYWN0aW5nIGNhbmRpZGF0ZXMgZnJvbSBKUyBlbWJlZGRlZCBpbiBhIFBIUCBzdHJpbmcgd29ya3MgYXMgZXhwZWN0ZWQgKFsjJiM4MjAzOzE3MDMxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTcwMzEpKQoKIyMjIFtgdjQuMC4xMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDExLS0tMjAyNS0wMy0wNikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuMTAuLi52NC4wLjExKQoKIyMjIyMgRml4ZWQKCi0gRW5zdXJlIGNsYXNzZXMgY29udGFpbmluZyBgLS1gIGFyZSBleHRyYWN0ZWQgY29ycmVjdGx5IChbIyYjODIwMzsxNjk3Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2OTcyKSkKLSBFbnN1cmUgY2xhc3NlcyBjb250YWluaW5nIG51bWJlcnMgZm9sbG93ZWQgYnkgZGFzaCBvciB1bmRlcnNjb3JlIGFyZSBleHRyYWN0ZWQgY29ycmVjdGx5IChbIyYjODIwMzsxNjk4MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2OTgwKSkKLSBFbnN1cmUgYXJiaXRyYXJ5IGNvbnRhaW5lciBxdWVyaWVzIGFyZSBleHRyYWN0ZWQgY29ycmVjdGx5IChbIyYjODIwMzsxNjk4NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2OTg0KSkKLSBFbnN1cmUgY2xhc3NlcyBlbmRpbmcgaW4gYFtgIGFyZSBleHRyYWN0ZWQgaW4gU2xpbSB0ZW1wbGF0aW5nIGxhbmd1YWdlIChbIyYjODIwMzsxNjk4NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2OTg1KSkKLSBFbnN1cmUgYXJiaXRyYXJ5IHZhcmlhYmxlcyB3aXRoIGRhdGEgdHlwZXMgYXJlIGV4dHJhY3RlZCBjb3JyZWN0bHkgKFsjJiM4MjAzOzE2OTg2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY5ODYpKQoKIyMjIFtgdjQuMC4xMGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDEwLS0tMjAyNS0wMy0wNSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuOS4uLnY0LjAuMTApCgojIyMjIyBBZGRlZAoKLSAgIEFkZCBgY29sLTxudW1iZXI+YCBhbmQgYHJvdy08bnVtYmVyPmAgdXRpbGl0aWVzIGZvciBgZ3JpZC1jb2x1bW5gIGFuZCBgZ3JpZC1yb3dgIChbIyYjODIwMzsxNTE4M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE1MTgzKSkKCiMjIyMjIEZpeGVkCgotICAgRW5zdXJlIGBub3QtKmAgZG9lcyBub3QgcmVtb3ZlIGA6aXMo4oCmKWAgZnJvbSB2YXJpYW50cyAoWyMmIzgyMDM7MTY4MjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjgyNSkpCi0gICBFbnN1cmUgYEBrZXlmcmFtZXNgIGFyZSBjb3JyZWN0bHkgZW1pdHRlZCB3aGVuIHVzaW5nIGEgcHJlZml4IChbIyYjODIwMzsxNjg1MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2ODUwKSkKLSAgIERvbid0IHN3YWxsb3cgYEB1dGlsaXR5YCBkZWNsYXJhdGlvbnMgd2hlbiBgQGFwcGx5YCBpcyB1c2VkIGluIG5lc3RlZCBydWxlcyAoWyMmIzgyMDM7MTY5NDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjk0MCkpCi0gICBFbnN1cmUgYG91dGxpbmUtaGlkZGVuYCBiZWhhdmVzIGxpa2UgYG91dGxpbmUtbm9uZWAgb3V0c2lkZSBvZiBmb3JjZWQgY29sb3JzIG1vZGUgKFsjJiM4MjAzOzE2OTQzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY5NDMpKQotICAgQWxsb3cgYCFpbXBvcnRhbnRgIG9uIENTUyB2YXJpYWJsZXMgYWdhaW4gKFsjJiM4MjAzOzE2ODczXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY4NzMpKQotICAgVml0ZTogRG8gbm90IGNyYXNoIHdoZW4gZW5jb3VudGVyaW5nIGFuIGAuc3ZnYCBmaWxlIHdpdGggYCNgIG9yIGA/YCBpbiB0aGUgZmlsZW5hbWUgKFsjJiM4MjAzOzE2OTU3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY5NTcpKQotICAgRW5zdXJlIHV0aWxpdGllcyBhcmUgcHJvcGVybHkgZGV0ZWN0ZWQgd2l0aGluIHNxdWFyZSBicmFja2V0cyAoWyMmIzgyMDM7MTYzMDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjMwNikpCi0gICBFbnN1cmUgdXRpbGl0aWVzIGFyZSBwcm9wZXJseSBkZXRlY3RlZCB1c2luZyBBbmd1bGFyJ3MgY29uZGl0aW9uYWwgY2xhc3MgYmluZGluZyBzeW50YXggKFsjJiM4MjAzOzE2MzA2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYzMDYpKQotICAgRW5zdXJlIHV0aWxpdGllcyBzdGFydGluZyB3aXRoIG51bWJlcnMgYXJlIHByb3Blcmx5IGV4dHJhY3RlZCBmcm9tIFNsaW0gdGVtcGxhdGVzIChbIyYjODIwMzsxNjMwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MzA2KSkKLSAgIERpc2NhcmQgYXJiaXRyYXJ5IHByb3BlcnR5IGNhbmRpZGF0ZXMgdGhhdCBoYXZlIGd1YXJhbnRlZWQtaW52YWxpZCBwcm9wZXJ0eSBuYW1lcyAoWyMmIzgyMDM7MTYzMDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjMwNikpCgojIyMjIyBDaGFuZ2VkCgotICAgUmVtb3ZlZCBgbWF4LXctYXV0b2AgYW5kIGBtYXgtaC1hdXRvYCB1dGlsaXRpZXMgYXMgdGhleSBnZW5lcmF0ZSBpbnZhbGlkIENTUyAoWyMmIzgyMDM7MTY5MTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjkxNykpCi0gICBSZXBsYWNlZCB0aGUgZXhpc3RpbmcgY2FuZGlkYXRlIGV4dHJhY3RvciB3aXRoIGEgYnJhbmQgbmV3IGV4dHJhY3RvciB0byBpbXByb3ZlIG1haW50YWluYWJpbGl0eSwgY29ycmVjdG5lc3MsIGFuZCBwZXJmb3JtYW5jZSAoWyMmIzgyMDM7MTYzMDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjMwNikpCgojIyMgW2B2NC4wLjlgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDA5LS0tMjAyNS0wMi0yNSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuOC4uLnY0LjAuOSkKCiMjIyMjIEZpeGVkCgotICAgTWFrZSBKUyBBUElzIGF2YWlsYWJsZSB0byBwbHVnaW5zIGFuZCBjb25maWdzIGluIHRoZSBTdGFuZGFsb25lIENMSSAoWyMmIzgyMDM7MTU5MzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNTkzNCkpCi0gICBWaXRlOiBEb24ndCBjcmFzaCB3aGVuIGltcG9ydGluZyBhIHZpcnR1YWwgbW9kdWxlIGZyb20gSmF2YVNjcmlwdCB0aGF0IGVuZHMgaW4gYC5jc3NgIChbIyYjODIwMzsxNjc4MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NzgwKSkKLSAgIEZpeCBhbiBpc3N1ZSB3aGVyZSBgQHJlZmVyZW5jZSAi4oCmImAgd291bGQgc29tZXRpbWVzIG9taXQga2V5ZnJhbWUgYW5pbWF0aW9ucyAoWyMmIzgyMDM7MTY3NzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjc3NCkpCi0gICBFbnN1cmUgYHotKiFgIHV0aWxpdGllcyBhcmUgcHJvcGVybHkgbWFya2VkIGFzIGAhaW1wb3J0YW50YCAoWyMmIzgyMDM7MTY3OTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjc5NSkpCi0gICBSZWFkIFVURi04IENTUyBmaWxlcyB0aGF0IHN0YXJ0IHdpdGggYSBieXRlLW9yZGVyIG1hcmsgKEJPTSkgKFsjJiM4MjAzOzE2Nzk2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY3OTYpKQotICAgRW5zdXJlIG5lc3RlZCBmdW5jdGlvbnMgaW4gc2VsZWN0b3JzIHVzZWQgd2l0aCBKYXZhU2NyaXB0IHBsdWdpbnMgYXJlIG5vdCB0cnVuY2F0ZWQgKFsjJiM4MjAzOzE2ODAyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY4MDIpKQoKIyMjIyMgQ2hhbmdlZAoKLSAgIEVtaXQgdmFyaWFibGUgZmFsbGJhY2tzIHdoZW4gdXNpbmcgYEByZWZlcmVuY2UgIuKApiJgIGluc3RlYWQgb2YgZHVwbGljYXRlIENTUyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgKFsjJiM4MjAzOzE2Nzc0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY3NzQpKQoKIyMjIFtgdjQuMC44YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQwOC0tLTIwMjUtMDItMjEpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvY29tcGFyZS92NC4wLjcuLi52NC4wLjgpCgojIyMjIyBBZGRlZAoKLSBBbGxvdyBgQGltcG9ydGAgd2l0aCBgdGhlbWUo4oCmKWAgb3B0aW9ucyBmb3Igc3R5bGVzaGVldHMgdGhhdCBjb250YWluIG1vcmUgdGhhbiBqdXN0IGBAdGhlbWVgIHJ1bGVzIChbIyYjODIwMzsxNjUxNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NTE0KSkKCiMjIyMjIEZpeGVkCgotIERvbid0IGFkZCBgIWltcG9ydGFudGAgdG8gQ1NTIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyB3aGVuIHVzaW5nIHRoZSBpbXBvcnRhbnQgbW9kaWZpZXIgKFsjJiM4MjAzOzE2NjY4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY2NjgpKQotIFZpdGU6IElnbm9yZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGluIHlvdXIgYC5naXRpZ25vcmVgIGZpbGUgd2hlbiB1c2luZyBhdXRvbWF0aWMgc291cmNlIGRldGVjdGlvbihbIyYjODIwMzsxNjYzMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NjMxKSkKLSBWaXRlOiBEb24ndCByZWx5IG9uIHRoZSBtb2R1bGUgZ3JhcGggZm9yIGRldGVjdGluZyBjYW5kaWRhdGVzIHRvIGVuc3VyZSBzZXR1cHMgd2l0aCBtdWx0aXBsZSBWaXRlIGJ1aWxkcyB3b3JrIGFzIGV4cGVjdGVkIChbIyYjODIwMzsxNjYzMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NjMxKSkKLSBWaXRlOiBFbnN1cmUgQXN0cm8gcHJvZHVjdGlvbiBidWlsZHMgYWx3YXlzIGNvbnRhaW4gY2xhc3NlcyB1c2VkIGluIGNsaWVudC1vbmx5IGNvbXBvbmVudHMgKFsjJiM4MjAzOzE2NjMxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY2MzEpKQotIFZpdGU6IEFsd2F5cyBzY2FuIHJhdyBmaWxlIGNvbnRlbnRzIGZvciB1dGlsaXR5IGNsYXNzZXMgYmVmb3JlIGFueSBvdGhlciB0cmFuc2Zvcm1zIGhhdmUgYmVlbiBhcHBsaWVkIHRvIGVuc3VyZSB1dGlsaXR5IGNsYXNzZXMgYXJlIHNjYW5uZWQgd2l0aG91dCBhbnkgYWRkaXRpb25hbCBlc2NhcGluZyAoWyMmIzgyMDM7MTY2MzFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjYzMSkpCi0gRW5zdXJlIHV0aWxpdGllcyB3aXRoIG1vcmUgZGVjbGFyYXRpb25zIGFyZSBhbHdheXMgc29ydGVkIGJlZm9yZSB1dGlsaXRpZXMgd2l0aCBmZXdlciBkZWNsYXJhdGlvbnMgd2hlbiB1dGlsaXRpZXMgb25seSBkZWZpbmUgQ1NTIHZhcmlhYmxlcyAoWyMmIzgyMDM7MTY3MTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjcxNSkpCi0gT25seSBpbmNsdWRlIGB0cmFuc2xhdGUtei1weGAgdXRpbGl0aWVzIG9uY2UgaW4gY29tcGlsZWQgQ1NTIChbIyYjODIwMzsxNjcxOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NzE4KSkKCiMjIyMjIENoYW5nZWQKCi0gRG9uJ3QgaW5jbHVkZSB0aGVtZSB2YXJpYWJsZXMgdGhhdCBhcmVuJ3QgdXNlZCBpbiBjb21waWxlZCBDU1MgKFsjJiM4MjAzOzE2MjExXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYyMTEpLCBbIyYjODIwMzsxNjY3Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2Njc2KSkKCiMjIyBbYHY0LjAuN2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDctLS0yMDI1LTAyLTE4KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMC42Li4udjQuMC43KQoKIyMjIyMgRml4ZWQKCi0gRXhwb3J0IGB0YWlsd2luZGNzcy9saWIvdXRpbC9mbGF0dGVuQ29sb3JQYWxldHRlLmpzYCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAoWyMmIzgyMDM7MTY0MTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjQxMSkpCi0gRml4IHNvcnRpbmcgb2YgbnVtZXJpYyB1dGlsaXR5IHN1Z2dlc3Rpb25zIHdoZW4gdGhleSBoYXZlIGRpZmZlcmVudCBtYWduaXR1ZGVzIChbIyYjODIwMzsxNjQxNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NDE0KSkKLSBTaG93IHN1Z2dlc3Rpb25zIGZvciBmcmFjdGlvbnMgaW4gSW50ZWxsaVNlbnNlIChbIyYjODIwMzsxNjM1M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MzUzKSkKLSBEb27igJl0IHJlcGxhY2UgYF9gIGluIHN1Z2dlc3RlZCB0aGVtZSBrZXlzIChbIyYjODIwMzsxNjQzM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NDMzKSkKLSBFbnN1cmUgYC0tZGVmYXVsdC1vdXRsaW5lLXdpZHRoYCBjYW4gYmUgdXNlZCB0byBjaGFuZ2UgdGhlIGBvdXRsaW5lLXdpZHRoYCB2YWx1ZSBvZiB0aGUgYG91dGxpbmVgIHV0aWxpdHkgKFsjJiM4MjAzOzE2NDY5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY0NjkpKQotIEVuc3VyZSBkcm9wIHNoYWRvdyB1dGlsaXRpZXMgZG9uJ3QgaW5oZXJpdCB1bmV4cGVjdGVkbHkgKFsjJiM4MjAzOzE2NDcxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY0NzEpKQotIEV4cG9ydCBjb25maWcgYW5kIHBsdWdpbiB0eXBlcyBmcm9tIGB0YWlsd2luZGNzcy9wbHVnaW5gIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IChbIyYjODIwMzsxNjUwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NTA1KSkKLSBFbnN1cmUgSmF2YVNjcmlwdCBwbHVnaW5zIHRoYXQgZW1pdCBuZXN0ZWQgcnVsZXMgcmVmZXJlbmNpbmcgdGhlIHV0aWxpdHkgbmFtZSB3b3JrIGFzIGV4cGVjdGVkIChbIyYjODIwMzsxNjUzOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NTM5KSkKLSBTdGF0aWNhbGx5IGxpbmsgVmlzdWFsIFN0dWRpbyByZWRpc3RyaWJ1dGFibGVzIGluIGBAdGFpbHdpbmRjc3Mvb3hpZGVgIFdpbmRvd3MgYnVpbGRzIChbIyYjODIwMzsxNjYwMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NjAyKSkKLSBFbnN1cmUgdGhhdCBOZXh0LmpzIHNwbGF0IHJvdXRlcyBhcmUgc2Nhbm5lZCBmb3IgY2xhc3NlcyAoWyMmIzgyMDM7MTY0NTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjQ1NykpCi0gUGluIGV4YWN0IHZlcnNpb24gb2YgYHRhaWx3aW5kY3NzYCBpbiBgQHRhaWx3aW5kY3NzLypgIHBhY2thZ2VzIChbIyYjODIwMzsxNjYyM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NjIzKSkKLSBVcGdyYWRlOiBSZXBvcnQgZXJyb3JzIHdoZW4gdXBkYXRpbmcgZGVwZW5kZW5jaWVzIChbIyYjODIwMzsxNjUwNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NTA0KSkKLSBVcGdyYWRlOiBFbnN1cmUgYSBgZGFya01vZGVgIEpTIGNvbmZpZyBzZXR0aW5nIHdpdGggYmxvY2sgc3ludGF4IGNvbnZlcnRzIHRvIHVzZSBgQHNsb3RgIChbIyYjODIwMzsxNjUwN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NTA3KSkKLSBVcGdyYWRlOiBFbnN1cmUgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGB0YWlsd2luZGNzc2AgYW5kIGBAdGFpbHdpbmRjc3MvcG9zdGNzc2AgYXJlIGluc3RhbGxlZCB3aGVuIHVwZ3JhZGluZyAoWyMmIzgyMDM7MTY2MjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjYyMCkpCgojIyMgW2B2NC4wLjZgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDA2LS0tMjAyNS0wMi0xMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3Y0LjAuNS4uLnY0LjAuNikKCiMjIyMjIEZpeGVkCgotIFJldmVydCBjaGFuZ2UgdG8gbm8gbG9uZ2VyIGluY2x1ZGUgdGhlbWUgdmFyaWFibGVzIHRoYXQgYXJlbid0IHVzZWQgaW4gY29tcGlsZWQgQ1NTIChbIyYjODIwMzsxNjQwM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2NDAzKSkKLSBVcGdyYWRlOiBEb24ndCBtaWdyYXRlIGBibHVyYCB0byBgYmx1ci1zbWAgd2hlbiB1c2VkIHdpdGggTmV4dC5qcyBgPEltYWdlIHBsYWNlaG9sZGVyPSJibHVyIiAvPmAgKFsjJiM4MjAzOzE2NDA1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTY0MDUpKQoKIyMjIFtgdjQuMC41YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQwNS0tLTIwMjUtMDItMDgpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvY29tcGFyZS92NC4wLjQuLi52NC4wLjUpCgojIyMjIyBBZGRlZAoKLSBBZGQgYEB0aGVtZSBzdGF0aWNgIG9wdGlvbiBmb3IgYWx3YXlzIGluY2x1ZGluZyB0aGVtZSB2YXJpYWJsZXMgaW4gY29tcGlsZWQgQ1NTIChbIyYjODIwMzsxNjIxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MjExKSkKCiMjIyMjIEZpeGVkCgotIFJlbW92ZSByb2d1ZSBgY29uc29sZS5sb2dgIGZyb20gYEB0YWlsd2luZGNzcy92aXRlYCAoWyMmIzgyMDM7MTYzMDddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjMwNykpCgojIyMjIyBDaGFuZ2VkCgotIERvbid0IGluY2x1ZGUgdGhlbWUgdmFyaWFibGVzIHRoYXQgYXJlbid0IHVzZWQgaW4gY29tcGlsZWQgQ1NTIChbIyYjODIwMzsxNjIxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MjExKSkKCiMjIyBbYHY0LjAuNGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDQtLS0yMDI1LTAyLTA2KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMC4zLi4udjQuMC40KQoKIyMjIyMgRml4ZWQKCi0gICBGaXggYSBjcmFzaCB3aGVuIHNldHRpbmcgSlMgdGhlbWUgdmFsdWVzIHRvIGBudWxsYCAoWyMmIzgyMDM7MTYyMTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjIxMCkpCi0gICBFbnN1cmUgZXNjYXBlZCB1bmRlcnNjb3JlcyBpbiBDU1MgdmFyaWFibGVzIGluIGFyYml0cmFyeSB2YWx1ZXMgYXJlIHByb3Blcmx5IHVuZXNjYXBlZCAoWyMmIzgyMDM7MTYyMDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjIwNikpCi0gICBFbnN1cmUgdGhhdCB0aGUgYGNvbnRhaW5lcnNgIEpTIHRoZW1lIGtleSBpcyBhZGRlZCB0byB0aGUgYC0tY29udGFpbmVyLSpgIG5hbWVzcGFjZSAoWyMmIzgyMDM7MTYxNjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjE2OSkpCi0gICBFbnN1cmUgdGhlbWUgYEBrZXlmcmFtZXNgIGFyZSBnZW5lcmF0ZWQgZXZlbiBpZiBhbiBgLS1hbmltYXRpb24tKmAgdmFyaWFibGUgc3BhbnMgbXVsdGlwbGUgbGluZXMgKFsjJiM4MjAzOzE2MjM3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYyMzcpKQotICAgVml0ZTogU2tpcCBwYXJzaW5nIHN0eWxlc2hlZXRzIHdpdGggdGhlIGA/Y29tbW9uanMtcHJveHlgIGZsYWcgKFsjJiM4MjAzOzE2MjM4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYyMzgpKQotICAgRml4IGBvcmRlci1maXJzdGAgYW5kIGBvcmRlci1sYXN0YCBmb3IgRmlyZWZveCAoWyMmIzgyMDM7MTYyNjZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjI2NikpCi0gICBGaXggc3VwcG9ydCBmb3Igb2xkZXIgaW5zdHJ1Y3Rpb24gc2V0cyBvbiBMaW51eCB4NjQgYnVpbGRzIG9mIHRoZSBzdGFuZGFsb25lIENMSSAoWyMmIzgyMDM7MTYyNDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjI0NCkpCi0gICBFbnN1cmUgYE5PREVfUEFUSGAgaXMgcmVzcGVjdGVkIHdoZW4gcmVzb2x2aW5nIEphdmFTY3JpcHQgYW5kIENTUyBmaWxlcyAoWyMmIzgyMDM7MTYyNzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjI3NCkpCi0gICBFbnN1cmUgTm9kZSBhZGRvbnMgYXJlIHBhY2thZ2VkIGNvcnJlY3RseSB3aXRoIEZyZWVCU0QgYnVpbGRzIChbIyYjODIwMzsxNjI3N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2Mjc3KSkKLSAgIEZpeCBhbiBpc3N1ZSB3aGVyZSBgQHZhcmlhbnRgIGluc2lkZSBhIHJlZmVyZW5jZWQgc3R5bGVzaGVldCBjb3VsZCBjYXVzZSBhIHN0YWNrIG92ZXJmbG93IChbIyYjODIwMzsxNjMwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MzAwKSkKCiMjIyBbYHY0LjAuM2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCM0MDMtLS0yMDI1LTAyLTAxKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2NvbXBhcmUvdjQuMC4yLi4udjQuMC4zKQoKIyMjIyMgRml4ZWQKCi0gRml4IGluY29ycmVjdCByZW1vdmFsIG9mIGBAaW1wb3J0IHVybCgpO2AgKFsjJiM4MjAzOzE2MTQ0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYxNDQpKQoKIyMjIFtgdjQuMC4yYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzQwMi0tLTIwMjUtMDEtMzEpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvY29tcGFyZS92NC4wLjEuLi52NC4wLjIpCgojIyMjIyBGaXhlZAoKLSBPbmx5IGdlbmVyYXRlIHBvc2l0aXZlIGBncmlkLWNvbHMtKmAgYW5kIGBncmlkLXJvd3MtKmAgdXRpbGl0aWVzIChbIyYjODIwMzsxNjAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MDIwKSkKLSBFbnN1cmUgZXNjYXBlZCB0aGVtZSB2YXJpYWJsZXMgYXJlIGhhbmRsZWQgY29ycmVjdGx5IChbIyYjODIwMzsxNjA2NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MDY0KSkKLSBFbnN1cmUgd2UgcHJvY2VzcyBUYWlsd2luZCBDU1MgZmVhdHVyZXMgd2hlbiBvbmx5IHVzaW5nIGBAcmVmZXJlbmNlYCBvciBgQHZhcmlhbnRgIChbIyYjODIwMzsxNjA1N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MDU3KSkKLSBSZWZhY3RvciBncmFkaWVudCBpbXBsZW1lbnRhdGlvbiB0byB3b3JrIGFyb3VuZCBbcHJldHRpZXIvcHJldHRpZXIjMTcwNThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9wcmV0dGllci9wcmV0dGllci9pc3N1ZXMvMTcwNTgpIChbIyYjODIwMzsxNjA3Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MDcyKSkKLSBWaXRlOiBFbnN1cmUgaG90LXJlbG9hZGluZyB3b3JrcyB3aXRoIFNvbGlkU3RhcnQgc2V0dXBzIChbIyYjODIwMzsxNjA1Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9wdWxsLzE2MDUyKSkKLSBWaXRlOiBGaXggYSBjcmFzaCB3aGVuIHN0YXJ0aW5nIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgaW4gU29saWRTdGFydCBzZXR1cHMgKFsjJiM4MjAzOzE2MDUyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYwNTIpKQotIFZpdGU6IERvbid0IHJlYmFzZSBVUkxzIHRoYXQgYXBwZWFyIHRvIGJlIGFsaWFzZXMgKFsjJiM4MjAzOzE2MDc4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYwNzgpKQotIFZpdGU6IFRyYW5zZm9ybSBgPHN0eWxlPmAgYmxvY2tzIGluIEhUTUwgZmlsZXMgKFsjJiM4MjAzOzE2MDY5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYwNjkpKQotIFByZXZlbnQgY2FtZWwtY2FzaW5nIENTUyBjdXN0b20gcHJvcGVydGllcyBhZGRlZCBieSBKYXZhU2NyaXB0IHBsdWdpbnMgKFsjJiM4MjAzOzE2MTAzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYxMDMpKQotIERvIG5vdCBlbWl0IGBAa2V5ZnJhbWVzYCBpbiBgQHRoZW1lIHJlZmVyZW5jZWAgKFsjJiM4MjAzOzE2MTIwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL3B1bGwvMTYxMjApKQotIERpc2NhcmQgaW52YWxpZCBkZWNsYXJhdGlvbnMgd2hlbiBwYXJzaW5nIENTUyAoWyMmIzgyMDM7MTYwOTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjA5MykpCi0gRG8gbm90IGVtaXQgZW1wdHkgQ1NTIHJ1bGVzIGFuZCBhdC1ydWxlcyAoWyMmIzgyMDM7MTYxMjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjEyMSkpCi0gSGFuZGxlIGBAdmFyaWFudGAgd2hlbiBhdCB0aGUgdG9wLWxldmVsIG9mIGEgc3R5bGVzaGVldCAoWyMmIzgyMDM7MTYxMjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNjEyOSkpCgojIyMgW2B2NC4wLjFgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDAxNy0tLTIwMjUtMDMtMjYpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvY29tcGFyZS92NC4wLjAuLi52NC4wLjEpCgojIyMjIyBGaXhlZAoKLSAgIEZpeCBhbiBpc3N1ZSBjYXVzaW5nIHRoZSBDTEkgdG8gaGFuZyB3aGVuIHByb2Nlc3NpbmcgUnVieSBmaWxlcyAoWyMmIzgyMDM7MTczODNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90YWlsd2luZGxhYnMvdGFpbHdpbmRjc3MvcHVsbC8xNzM4MykpCgojIyMgW2B2NC4wLjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjNDAwLS0tMjAyNS0wMS0yMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9jb21wYXJlL3YzLjQuMTcuLi52NC4wLjApCgojIyMjIyBBZGRlZAoKLSBbTmV3IGhpZ2gtcGVyZm9ybWFuY2UgZW5naW5lXShodHRwczovL3RhaWx3aW5kY3NzLmNvbS9ibG9nL3RhaWx3aW5kY3NzLXY0I25ldy1oaWdoLXBlcmZvcm1hbmNlLWVuZ2luZSkg4oCUIHdoZXJlIGZ1bGwgYnVpbGRzIGFyZSB1cCB0byA1eCBmYXN0ZXIsIGFuZCBpbmNyZW1lbnRhbCBidWlsZHMgYXJlIG92ZXIgMTAweCBmYXN0ZXIg4oCUIGFuZCBtZWFzdXJlZCBpbiBtaWNyb3NlY29uZHMuCi0gW0Rlc2lnbmVkIGZvciB0aGUgbW9kZXJuIHdlYl0oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNkZXNpZ25lZC1mb3ItdGhlLW1vZGVybi13ZWIpIOKAlCBidWlsdCBvbiBjdXR0aW5nLWVkZ2UgQ1NTIGZlYXR1cmVzIGxpa2UgY2FzY2FkZSBsYXllcnMsIHJlZ2lzdGVyZWQgY3VzdG9tIHByb3BlcnRpZXMgd2l0aCBgQHByb3BlcnR5YCwgYW5kIGBjb2xvci1taXgoKWAuCi0gW1NpbXBsaWZpZWQgaW5zdGFsbGF0aW9uXShodHRwczovL3RhaWx3aW5kY3NzLmNvbS9ibG9nL3RhaWx3aW5kY3NzLXY0I3NpbXBsaWZpZWQtaW5zdGFsbGF0aW9uKSDigJQgZmV3ZXIgZGVwZW5kZW5jaWVzLCB6ZXJvIGNvbmZpZ3VyYXRpb24sIGFuZCBqdXN0IGEgc2luZ2xlIGxpbmUgb2YgY29kZSBpbiB5b3VyIENTUyBmaWxlLgotIFtGaXJzdC1wYXJ0eSBWaXRlIHBsdWdpbl0oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNmaXJzdC1wYXJ0eS12aXRlLXBsdWdpbikg4oCUIHRpZ2h0IGludGVncmF0aW9uIGZvciBtYXhpbXVtIHBlcmZvcm1hbmNlIGFuZCBtaW5pbXVtIGNvbmZpZ3VyYXRpb24uCi0gW0F1dG9tYXRpYyBjb250ZW50IGRldGVjdGlvbl0oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNhdXRvbWF0aWMtY29udGVudC1kZXRlY3Rpb24pIOKAlCBhbGwgb2YgeW91ciB0ZW1wbGF0ZSBmaWxlcyBhcmUgZGlzY292ZXJlZCBhdXRvbWF0aWNhbGx5LCB3aXRoIG5vIGNvbmZpZ3VyYXRpb24gcmVxdWlyZWQuCi0gW0J1aWx0LWluIGltcG9ydCBzdXBwb3J0XShodHRwczovL3RhaWx3aW5kY3NzLmNvbS9ibG9nL3RhaWx3aW5kY3NzLXY0I2J1aWx0LWluLWltcG9ydC1zdXBwb3J0KSDigJQgbm8gYWRkaXRpb25hbCB0b29saW5nIG5lY2Vzc2FyeSB0byBidW5kbGUgbXVsdGlwbGUgQ1NTIGZpbGVzLgotIFtDU1MtZmlyc3QgY29uZmlndXJhdGlvbl0oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNjc3MtZmlyc3QtY29uZmlndXJhdGlvbikg4oCUIGEgcmVpbWFnaW5lZCBkZXZlbG9wZXIgZXhwZXJpZW5jZSB3aGVyZSB5b3UgY3VzdG9taXplIGFuZCBleHRlbmQgdGhlIGZyYW1ld29yayBkaXJlY3RseSBpbiBDU1MgaW5zdGVhZCBvZiBhIEphdmFTY3JpcHQgY29uZmlndXJhdGlvbiBmaWxlLgotIFtDU1MgdGhlbWUgdmFyaWFibGVzXShodHRwczovL3RhaWx3aW5kY3NzLmNvbS9ibG9nL3RhaWx3aW5kY3NzLXY0I2Nzcy10aGVtZS12YXJpYWJsZXMpIOKAlCBhbGwgb2YgeW91ciBkZXNpZ24gdG9rZW5zIGV4cG9zZWQgYXMgbmF0aXZlIENTUyB2YXJpYWJsZXMgc28geW91IGNhbiBhY2Nlc3MgdGhlbSBhbnl3aGVyZS4KLSBbRHluYW1pYyB1dGlsaXR5IHZhbHVlcyBhbmQgdmFyaWFudHNdKGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2Jsb2cvdGFpbHdpbmRjc3MtdjQjZHluYW1pYy11dGlsaXR5LXZhbHVlcy1hbmQtdmFyaWFudHMpIOKAlCBzdG9wIGd1ZXNzaW5nIHdoYXQgdmFsdWVzIGV4aXN0IGluIHlvdXIgc3BhY2luZyBzY2FsZSwgb3IgZXh0ZW5kaW5nIHlvdXIgY29uZmlndXJhdGlvbiBmb3IgdGhpbmdzIGxpa2UgYmFzaWMgZGF0YSBhdHRyaWJ1dGVzLgotIFtNb2Rlcm5pemVkIFAzIGNvbG9yIHBhbGV0dGVdKGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2Jsb2cvdGFpbHdpbmRjc3MtdjQjbW9kZXJuaXplZC1wMy1jb2xvci1wYWxldHRlKSDigJQgYSByZWRlc2lnbmVkLCBtb3JlIHZpdmlkIGNvbG9yIHBhbGV0dGUgdGhhdCB0YWtlcyBmdWxsIGFkdmFudGFnZSBvZiBtb2Rlcm4gZGlzcGxheSB0ZWNobm9sb2d5LgotIFtDb250YWluZXIgcXVlcmllc10oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNjb250YWluZXItcXVlcmllcykg4oCUIGZpcnN0LWNsYXNzIEFQSXMgZm9yIHN0eWxpbmcgZWxlbWVudHMgYmFzZWQgb24gdGhlaXIgY29udGFpbmVyIHNpemUsIG5vIHBsdWdpbnMgcmVxdWlyZWQuCi0gW05ldyAzRCB0cmFuc2Zvcm0gdXRpbGl0aWVzXShodHRwczovL3RhaWx3aW5kY3NzLmNvbS9ibG9nL3RhaWx3aW5kY3NzLXY0I25ldy0zZC10cmFuc2Zvcm0tdXRpbGl0aWVzKSDigJQgdHJhbnNmb3JtIGVsZW1lbnRzIGluIDNEIHNwYWNlIGRpcmVjdGx5IGluIHlvdXIgSFRNTC4KLSBbRXhwYW5kZWQgZ3JhZGllbnQgQVBJc10oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNleHBhbmRlZC1ncmFkaWVudC1hcGlzKSDigJQgcmFkaWFsIGFuZCBjb25pYyBncmFkaWVudHMsIGludGVycG9sYXRpb24gbW9kZXMsIGFuZCBtb3JlLgotIFtAJiM4MjAzO3N0YXJ0aW5nLXN0eWxlIHN1cHBvcnRdKGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2Jsb2cvdGFpbHdpbmRjc3MtdjQjc3RhcnRpbmctc3R5bGUtc3VwcG9ydCkg4oCUIGEgbmV3IHZhcmlhbnQgeW91IGNhbiB1c2UgdG8gY3JlYXRlIGVudGVyIGFuZCBleGl0IHRyYW5zaXRpb25zLCB3aXRob3V0IHRoZSBuZWVkIGZvciBKYXZhU2NyaXB0LgotIFtub3QtXCogdmFyaWFudF0oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNub3QtdmFyaWFudCkg4oCUIHN0eWxlIGFuIGVsZW1lbnQgb25seSB3aGVuIGl0IGRvZXNuJ3QgbWF0Y2ggYW5vdGhlciB2YXJpYW50LCBjdXN0b20gc2VsZWN0b3IsIG9yIG1lZGlhIG9yIGZlYXR1cmUgcXVlcnkuCi0gW0V2ZW4gbW9yZSBuZXcgdXRpbGl0aWVzIGFuZCB2YXJpYW50c10oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vYmxvZy90YWlsd2luZGNzcy12NCNldmVuLW1vcmUtbmV3LXV0aWxpdGllcy1hbmQtdmFyaWFudHMpIOKAlCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IgYGNvbG9yLXNjaGVtZWAsIGBmaWVsZC1zaXppbmdgLCBjb21wbGV4IHNoYWRvd3MsIGBpbmVydGAsIGFuZCBtb3JlLgoKU3RhcnQgdXNpbmcgVGFpbHdpbmQgQ1NTIHY0LjAgdG9kYXkgYnkgW2luc3RhbGxpbmcgaXQgaW4gYSBuZXcgcHJvamVjdF0oaHR0cHM6Ly90YWlsd2luZGNzcy5jb20vZG9jcy9pbnN0YWxsYXRpb24vKSwgb3IgcGxheWluZyB3aXRoIGl0IGRpcmVjdGx5IGluIHRoZSBicm93c2VyIG9uIFtUYWlsd2luZCBQbGF5XShodHRwczovL3BsYXkudGFpbHdpbmRjc3MuY29tLykuCgpGb3IgZXhpc3RpbmcgcHJvamVjdHMsIHdlJ3ZlIHB1Ymxpc2hlZCBhIGNvbXByZWhlbnNpdmUgW3VwZ3JhZGUgZ3VpZGVdKGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2RvY3MvdXBncmFkZS1ndWlkZSkgYW5kIGJ1aWx0IGFuIFthdXRvbWF0ZWQgdXBncmFkZSB0b29sXShodHRwczovL3RhaWx3aW5kY3NzLmNvbS9kb2NzL3VwZ3JhZGUtZ3VpZGUjdXNpbmctdGhlLXVwZ3JhZGUtdG9vbCkgdG8gZ2V0IHlvdSBvbiB0aGUgbGF0ZXN0IHZlcnNpb24gYXMgcXVpY2tseSBhbmQgcGFpbmxlc3NseSBhcyBwb3NzaWJsZS4KCkZvciBhIGRlZXAtZGl2ZSBpbnRvIGV2ZXJ5dGhpbmcgdGhhdCdzIG5ldywgW2NoZWNrIG91dCB0aGUgYW5ub3VuY2VtZW50IHBvc3RdKGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tL2Jsb2cvdGFpbHdpbmRjc3MtdjQpLgoKPC9kZXRhaWxzPgoKLS0tCgojIyMgQ29uZmlndXJhdGlvbgoK8J+ThSAqKlNjaGVkdWxlKio6IEJyYW5jaCBjcmVhdGlvbiAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKSwgQXV0b21lcmdlIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpLgoK8J+apiAqKkF1dG9tZXJnZSoqOiBEaXNhYmxlZCBieSBjb25maWcuIFBsZWFzZSBtZXJnZSB0aGlzIG1hbnVhbGx5IG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQuCgrimbsgKipSZWJhc2luZyoqOiBXaGVuZXZlciBQUiBiZWNvbWVzIGNvbmZsaWN0ZWQsIG9yIHlvdSB0aWNrIHRoZSByZWJhc2UvcmV0cnkgY2hlY2tib3guCgrwn5SVICoqSWdub3JlKio6IENsb3NlIHRoaXMgUFIgYW5kIHlvdSB3b24ndCBiZSByZW1pbmRlZCBhYm91dCB0aGlzIHVwZGF0ZSBhZ2Fpbi4KCi0tLQoKIC0gWyBdIDwhLS0gcmViYXNlLWNoZWNrIC0tPklmIHlvdSB3YW50IHRvIHJlYmFzZS9yZXRyeSB0aGlzIFBSLCBjaGVjayB0aGlzIGJveAoKLS0tCgpUaGlzIFBSIHdhcyBnZW5lcmF0ZWQgYnkgW01lbmQgUmVub3ZhdGVdKGh0dHBzOi8vbWVuZC5pby9yZW5vdmF0ZS8pLiBWaWV3IHRoZSBbcmVwb3NpdG9yeSBqb2IgbG9nXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2dpdGh1Yi9vc2lzbS9weXRob24tb3Npc20pLgo8IS0tcmVub3ZhdGUtZGVidWc6ZXlKamNtVmhkR1ZrU1c1V1pYSWlPaUkwTVM0MU1TNHhJaXdpZFhCa1lYUmxaRWx1Vm1WeUlqb2lOREV1TlRFdU1TSXNJblJoY21kbGRFSnlZVzVqYUNJNkltMWhhVzRpTENKc1lXSmxiSE1pT2xzaWNtVnViM1poZEdVaVhYMD0tLT4K
      patchset: 7d41171fada464ec42a2e74098113a422ae624e4
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/python-osism:
            canonical_name: github.com/osism/python-osism
            checkout: main
            commit: aac4ca9238e62efde6e795f57b59b92d28150632
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
        playbooks:
        - path: untrusted/project_0/github.com/osism/python-osism/playbooks/test-setup.yml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/python-osism
        name: osism/python-osism
        short_name: python-osism
        src_dir: src/github.com/osism/python-osism
      projects:
        github.com/osism/python-osism:
          canonical_hostname: github.com
          canonical_name: github.com/osism/python-osism
          checkout: main
          checkout_description: zuul branch
          commit: aac4ca9238e62efde6e795f57b59b92d28150632
          name: osism/python-osism
          required: false
          short_name: python-osism
          src_dir: src/github.com/osism/python-osism
      ref: refs/pull/1631/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
