From 13ea15439948fd282f66fe35d178303da26bda50 Mon Sep 17 00:00:00 2001 From: derberg Date: Fri, 14 May 2021 16:28:39 +0200 Subject: [PATCH 01/15] chore(blog): release notes for 2.1 release --- pages/blog/release-notes-2.1.0.md | 20 ++++++++++++++++++ .../img/posts/release-notes-2.1.0/cover.webp | Bin 0 -> 13370 bytes 2 files changed, 20 insertions(+) create mode 100644 pages/blog/release-notes-2.1.0.md create mode 100644 public/img/posts/release-notes-2.1.0/cover.webp diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md new file mode 100644 index 000000000000..90f7ecf71b93 --- /dev/null +++ b/pages/blog/release-notes-2.1.0.md @@ -0,0 +1,20 @@ +--- +title: AsyncAPI Spec 2.1.0 Release Notes +date: 2021-06-30T06:00:00+01:00 +type: Communication +tags: + - specification + - release +cover: /img/posts/release-notes-2.1.0/cover.webp +authors: + - name: Lukasz Gornicki + photo: /img/avatars/lpgornicki.webp + link: https://twitter.com/derberq + byline: AsyncAPI Maintainer and Community Guardian +excerpt: 'The eagle has landed! Check out all the changes in the AsyncAPI specification introduces in the new 2.1.0 release' +featured: true +--- + +tbd + +> Photo by Doug Swinson on Unsplash \ No newline at end of file diff --git a/public/img/posts/release-notes-2.1.0/cover.webp b/public/img/posts/release-notes-2.1.0/cover.webp new file mode 100644 index 0000000000000000000000000000000000000000..bda2506885d417e3bf0bda014c8f8ece4e0604a5 GIT binary patch literal 13370 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 QF8`eEkPm+%eEu*10FZk#SpWb4 literal 0 HcmV?d00001 From b001e7be3fe579a9b260edcd7c90d3c2443360b9 Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Tue, 1 Jun 2021 16:41:54 +0200 Subject: [PATCH 02/15] initial notes --- pages/blog/release-notes-2.1.0.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 90f7ecf71b93..f86637368233 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -11,10 +11,27 @@ authors: photo: /img/avatars/lpgornicki.webp link: https://twitter.com/derberq byline: AsyncAPI Maintainer and Community Guardian -excerpt: 'The eagle has landed! Check out all the changes in the AsyncAPI specification introduces in the new 2.1.0 release' +excerpt: 'The eagle has landed! Check out all the changes in the AsyncAPI specification introduces in the new v2.1.0 release' featured: true --- -tbd -> Photo by Doug Swinson on Unsplash \ No newline at end of file + +## Old new defaultContentType property in root object + +We used and supported `defaultContentType` property to specify default content type to use when encoding/decoding a message's payload. [Lucas Block](https://github.com/BlockLucas) spotted that we do not have it defined in the specification. For more details check out [this pull request](https://github.com/asyncapi/spec/pull/419). + + +## New protocol bindings + +Add `mercure` to protocol bindings. +Add ibmmq once merged + + +OpenAPI 3.0.0 Schema support is now recommended instead of mandatory. + +Add SASL security schemes. + + + +> Photo by Doug Swinson on Unsplash From a657d88ad61f1ac00a7c2598658bb57a563c8b2d Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Wed, 2 Jun 2021 12:00:39 +0200 Subject: [PATCH 03/15] Create release-notes-2.1.0.md --- pages/blog/release-notes-2.1.0.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index f86637368233..79dbeb3897d3 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -15,23 +15,28 @@ excerpt: 'The eagle has landed! Check out all the changes in the AsyncAPI specif featured: true --- +The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 the focus went into the direction of growing community and adoption and stabilizing basing tooling supporting specification. This year it was a year of "formalizm" 😃 aka getting into foundation, setting up governance model and contrubition guide to enable work on next spec release. We are good to go forward. The 2.1.0 release is out in the wild 🎉 - -## Old new defaultContentType property in root object - -We used and supported `defaultContentType` property to specify default content type to use when encoding/decoding a message's payload. [Lucas Block](https://github.com/BlockLucas) spotted that we do not have it defined in the specification. For more details check out [this pull request](https://github.com/asyncapi/spec/pull/419). - +(TODO: not yet approved and merged) ## Examples object extended with additional fields ## New protocol bindings -Add `mercure` to protocol bindings. +The specification is now extended to support the following custom protocols through the bindings feature: +- `Mercure`, thanks to [Kévin Dunglas](https://github.com/dunglas). At the moment no specific bindings are necessary for this protocol For more details check out [this pull request](https://github.com/asyncapi/spec/pull/278) and [binding definition](https://github.com/asyncapi/bindings/tree/master/mercure). +- (TODO: not yet approved and merged)`IBM MQ`, thanks to [Dale Lane](https://github.com/dalelane) and [Richard Coppen](https://github.com/rcoppen). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/537) and [binding definition](https://github.com/asyncapi/bindings/tree/master/ibmmq). Add ibmmq once merged +- (TODO: not yet approved and merged) `AnypointMQ` + +## Custom schema formats mandatory vs recommended +Support for Avro and OpenAPI schemas was changed from mandatory to recommended through contribution from [Fran Mendez](https://github.com/fmvilas). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/289) -OpenAPI 3.0.0 Schema support is now recommended instead of mandatory. +## New security schemes -Add SASL security schemes. +Thanks to [Dale Lane](https://github.com/dalelane) you can now describe secured Kafka clusters with SASL security schemes (`scramSha256`, `scramSha512`, `gssapi`). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/502). +## Old new defaultContentType property in root object +We used and supported `defaultContentType` property to specify default content type to use when encoding/decoding a message's payload. [Lucas Block](https://github.com/BlockLucas) spotted that we do not have it defined in the specification. For more details check out [this pull request](https://github.com/asyncapi/spec/pull/419). > Photo by Doug Swinson on Unsplash From b229383f692059c16e5a0512731154248524f678 Mon Sep 17 00:00:00 2001 From: derberg Date: Thu, 24 Jun 2021 14:34:48 +0200 Subject: [PATCH 04/15] added message examples --- pages/blog/release-notes-2.1.0.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 79dbeb3897d3..ae29b8335360 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -1,6 +1,6 @@ --- title: AsyncAPI Spec 2.1.0 Release Notes -date: 2021-06-30T06:00:00+01:00 +date: 2021-06-25T06:00:00+01:00 type: Communication tags: - specification @@ -17,15 +17,17 @@ featured: true The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 the focus went into the direction of growing community and adoption and stabilizing basing tooling supporting specification. This year it was a year of "formalizm" 😃 aka getting into foundation, setting up governance model and contrubition guide to enable work on next spec release. We are good to go forward. The 2.1.0 release is out in the wild 🎉 -(TODO: not yet approved and merged) ## Examples object extended with additional fields +## Message examples object extended with additional fields + +Thanks to support from [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties `name` and `summary` are optional but you should definitely use them. These properties help not only to properly describe the example in documentation. These properties make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)) so you can better identify what example should be used for mocking and what it does. + +For more details check out [this pull request](https://github.com/asyncapi/spec/pull/534). ## New protocol bindings The specification is now extended to support the following custom protocols through the bindings feature: - `Mercure`, thanks to [Kévin Dunglas](https://github.com/dunglas). At the moment no specific bindings are necessary for this protocol For more details check out [this pull request](https://github.com/asyncapi/spec/pull/278) and [binding definition](https://github.com/asyncapi/bindings/tree/master/mercure). -- (TODO: not yet approved and merged)`IBM MQ`, thanks to [Dale Lane](https://github.com/dalelane) and [Richard Coppen](https://github.com/rcoppen). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/537) and [binding definition](https://github.com/asyncapi/bindings/tree/master/ibmmq). -Add ibmmq once merged -- (TODO: not yet approved and merged) `AnypointMQ` +- `IBM MQ`, thanks to [Dale Lane](https://github.com/dalelane) and [Richard Coppen](https://github.com/rcoppen). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/537) and [binding definition](https://github.com/asyncapi/bindings/tree/master/ibmmq). ## Custom schema formats mandatory vs recommended @@ -39,4 +41,11 @@ Thanks to [Dale Lane](https://github.com/dalelane) you can now describe secured We used and supported `defaultContentType` property to specify default content type to use when encoding/decoding a message's payload. [Lucas Block](https://github.com/BlockLucas) spotted that we do not have it defined in the specification. For more details check out [this pull request](https://github.com/asyncapi/spec/pull/419). +## Tooling support + +The following tools are already updated to support 2.1.0 version of the specification: +- JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also `@asyncapi/specs` package has been updated on NPM to version 2.8.0 and it contains the 2.1.0 JSON Schema. +- [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest `@asyncapi/specs` package and can be used to parse and validate `2.1.0` documents. Upgrade to 1.6.0 version. +- [AsyncAPI Generator](https://github.com/asyncapi/generator/) uses latest `@asyncapi/parser` package so while generating output, it is able to validate `2.1.0` documents. Upgrade to 1.8.0 version + > Photo by Doug Swinson on Unsplash From ef5258274ab1240ca7c4ffa207208427abc8e4dc Mon Sep 17 00:00:00 2001 From: derberg Date: Thu, 24 Jun 2021 20:23:06 +0200 Subject: [PATCH 05/15] add thank you to aayush --- pages/blog/release-notes-2.1.0.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index ae29b8335360..21389af9d2ce 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -48,4 +48,8 @@ The following tools are already updated to support 2.1.0 version of the specific - [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest `@asyncapi/specs` package and can be used to parse and validate `2.1.0` documents. Upgrade to 1.6.0 version. - [AsyncAPI Generator](https://github.com/asyncapi/generator/) uses latest `@asyncapi/parser` package so while generating output, it is able to validate `2.1.0` documents. Upgrade to 1.8.0 version +## Thank you + +Except of thank you towards contributors, I'd like to send an exceptional thank you to [Aayush Kumar Sahu](https://github.com/aayushmau5) who helped us to automate the part of the release responsible for updating the specification Markdown document on the AsyncAPI website, right after triggering the release, even the release candidate. Thank you :bow:. + > Photo by Doug Swinson on Unsplash From 182d9df92fcfaa9f4460d910a5420f51f04bbd74 Mon Sep 17 00:00:00 2001 From: derberg Date: Fri, 25 Jun 2021 14:12:33 +0200 Subject: [PATCH 06/15] wording --- pages/blog/release-notes-2.1.0.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 21389af9d2ce..0ed73dd72977 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -1,6 +1,6 @@ --- title: AsyncAPI Spec 2.1.0 Release Notes -date: 2021-06-25T06:00:00+01:00 +date: 2021-06-29T06:00:00+01:00 type: Communication tags: - specification @@ -15,41 +15,45 @@ excerpt: 'The eagle has landed! Check out all the changes in the AsyncAPI specif featured: true --- -The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 the focus went into the direction of growing community and adoption and stabilizing basing tooling supporting specification. This year it was a year of "formalizm" 😃 aka getting into foundation, setting up governance model and contrubition guide to enable work on next spec release. We are good to go forward. The 2.1.0 release is out in the wild 🎉 +The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 the focus went into growing community and adoption and stabilization of basic tooling for specification. This year was a year of "formalizm" 😃 aka getting into the foundation, setting up governance model and contribution guide to enable work on next spec release. We are good to go forward. The 2.1.0 release is out in the wild 🎉 ## Message examples object extended with additional fields -Thanks to support from [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties `name` and `summary` are optional but you should definitely use them. These properties help not only to properly describe the example in documentation. These properties make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)) so you can better identify what example should be used for mocking and what it does. +Thanks to work done by [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties **name** and **summary** are optional. These properties help not only to properly describe the example in documentation. These properties make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)), so you can better identify what example to use for mocking and what it does. -For more details check out [this pull request](https://github.com/asyncapi/spec/pull/534). +For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/534). ## New protocol bindings The specification is now extended to support the following custom protocols through the bindings feature: -- `Mercure`, thanks to [Kévin Dunglas](https://github.com/dunglas). At the moment no specific bindings are necessary for this protocol For more details check out [this pull request](https://github.com/asyncapi/spec/pull/278) and [binding definition](https://github.com/asyncapi/bindings/tree/master/mercure). -- `IBM MQ`, thanks to [Dale Lane](https://github.com/dalelane) and [Richard Coppen](https://github.com/rcoppen). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/537) and [binding definition](https://github.com/asyncapi/bindings/tree/master/ibmmq). +- **Mercure**, thanks to [Kévin Dunglas](https://github.com/dunglas). At the moment, no specific bindings are necessary for this protocol. For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/278) and [binding definition](https://github.com/asyncapi/bindings/tree/master/mercure). +- **IBM MQ**, thanks to [Dale Lane](https://github.com/dalelane) and [Richard Coppen](https://github.com/rcoppen). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/537) and [binding definition](https://github.com/asyncapi/bindings/tree/master/ibmmq). ## Custom schema formats mandatory vs recommended -Support for Avro and OpenAPI schemas was changed from mandatory to recommended through contribution from [Fran Mendez](https://github.com/fmvilas). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/289) +Support for Avro and OpenAPI schemas changed from mandatory to recommended through contribution from [Fran Mendez](https://github.com/fmvilas). For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/289) ## New security schemes -Thanks to [Dale Lane](https://github.com/dalelane) you can now describe secured Kafka clusters with SASL security schemes (`scramSha256`, `scramSha512`, `gssapi`). For more details check out [this pull request](https://github.com/asyncapi/spec/pull/502). +Thanks to [Dale Lane](https://github.com/dalelane), you can now describe secured Kafka clusters with SASL security schemes (**scramSha256**, **scramSha512**, **gssapi**). For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/502). ## Old new defaultContentType property in root object -We used and supported `defaultContentType` property to specify default content type to use when encoding/decoding a message's payload. [Lucas Block](https://github.com/BlockLucas) spotted that we do not have it defined in the specification. For more details check out [this pull request](https://github.com/asyncapi/spec/pull/419). +We used and supported **defaultContentType** property to specify the default content type when encoding/decoding a message's payload. [Lucas Block](https://github.com/BlockLucas) spotted that we do not have it defined in the specification. For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/419). ## Tooling support The following tools are already updated to support 2.1.0 version of the specification: -- JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also `@asyncapi/specs` package has been updated on NPM to version 2.8.0 and it contains the 2.1.0 JSON Schema. -- [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest `@asyncapi/specs` package and can be used to parse and validate `2.1.0` documents. Upgrade to 1.6.0 version. -- [AsyncAPI Generator](https://github.com/asyncapi/generator/) uses latest `@asyncapi/parser` package so while generating output, it is able to validate `2.1.0` documents. Upgrade to 1.8.0 version +- JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also **@asyncapi/specs** package has been updated on NPM to version 2.8.0, and it contains the 2.1.0 JSON Schema. +- [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.1.0 documents. Upgrade to 1.6.0 version. +- [AsyncAPI Generator](https://github.com/asyncapi/generator/) uses the latest **@asyncapi/parser** package, so while generating output, it can validate 2.1.0 documents. Upgrade to 1.8.0 version + +TODO: add js converter, generator filters, playground, react component, html and markdown templated, modelina + +Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. ## Thank you -Except of thank you towards contributors, I'd like to send an exceptional thank you to [Aayush Kumar Sahu](https://github.com/aayushmau5) who helped us to automate the part of the release responsible for updating the specification Markdown document on the AsyncAPI website, right after triggering the release, even the release candidate. Thank you :bow:. +I want to send a special thank you to [Aayush Kumar Sahu](https://github.com/aayushmau5), who helped us to automate the part of the release responsible for updating the specification Markdown document on the AsyncAPI website, right after triggering the release, even the release candidate. Thank you :bow:. > Photo by Doug Swinson on Unsplash From eaeaafe4df521eec6d8892ccfd34cdc226c71f7c Mon Sep 17 00:00:00 2001 From: derberg Date: Fri, 25 Jun 2021 14:22:08 +0200 Subject: [PATCH 07/15] add example --- pages/blog/release-notes-2.1.0.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 0ed73dd72977..8c9dd535fe75 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -21,8 +21,32 @@ The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 Thanks to work done by [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties **name** and **summary** are optional. These properties help not only to properly describe the example in documentation. These properties make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)), so you can better identify what example to use for mocking and what it does. +```yml +message: + payload: + type: object + properties: + user: + $ref: "#/components/schemas/userCreate" + signup: + $ref: "#/components/schemas/signup" + examples: + - name: SimpleSignup + summary: A simple UserSignup example message + headers: + correlationId: my-correlation-id + applicationInstanceId: myInstanceId + payload: + user: + someUserKey: someUserValue + signup: + someSignupKey: someSignupValue +``` + For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/534). +TODO: I think would be good to show these in html template as a screen shot + ## New protocol bindings The specification is now extended to support the following custom protocols through the bindings feature: From 1865c7652c4c967765df6c9f32b593c20cf975d7 Mon Sep 17 00:00:00 2001 From: derberg Date: Fri, 25 Jun 2021 19:44:50 +0200 Subject: [PATCH 08/15] add info about microcks --- pages/blog/release-notes-2.1.0.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 8c9dd535fe75..a045b5722741 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -67,7 +67,7 @@ We used and supported **defaultContentType** property to specify the default con ## Tooling support -The following tools are already updated to support 2.1.0 version of the specification: +The following official AsyncAPI tools are already updated to support 2.1.0 version of the specification: - JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also **@asyncapi/specs** package has been updated on NPM to version 2.8.0, and it contains the 2.1.0 JSON Schema. - [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.1.0 documents. Upgrade to 1.6.0 version. - [AsyncAPI Generator](https://github.com/asyncapi/generator/) uses the latest **@asyncapi/parser** package, so while generating output, it can validate 2.1.0 documents. Upgrade to 1.8.0 version @@ -76,6 +76,8 @@ TODO: add js converter, generator filters, playground, react component, html and Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. +This is not all! Not only official AsyncAPI tools are updated. Thanks to [Laurent Broudoux](https://github.com/lbroudoux) also [Microcs](https://microcks.io/) now supports version 2.1.0 and its new example's properties. Upgrade to 1.3.0 version. + ## Thank you I want to send a special thank you to [Aayush Kumar Sahu](https://github.com/aayushmau5), who helped us to automate the part of the release responsible for updating the specification Markdown document on the AsyncAPI website, right after triggering the release, even the release candidate. Thank you :bow:. From f96f61da1450280881aaba4647d2304aee33d4d0 Mon Sep 17 00:00:00 2001 From: derberg Date: Mon, 28 Jun 2021 13:58:31 +0200 Subject: [PATCH 09/15] screen shot and better example + list of update tools --- pages/blog/release-notes-2.1.0.md | 71 ++++++++++++------- public/img/posts/release-notes-2.1.0/ui.webp | Bin 0 -> 35120 bytes 2 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 public/img/posts/release-notes-2.1.0/ui.webp diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index a045b5722741..1b9bec79b46f 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -21,32 +21,48 @@ The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 Thanks to work done by [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties **name** and **summary** are optional. These properties help not only to properly describe the example in documentation. These properties make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)), so you can better identify what example to use for mocking and what it does. -```yml -message: - payload: - type: object - properties: - user: - $ref: "#/components/schemas/userCreate" - signup: - $ref: "#/components/schemas/signup" - examples: - - name: SimpleSignup - summary: A simple UserSignup example message - headers: - correlationId: my-correlation-id - applicationInstanceId: myInstanceId +Example of new properties added to existing [WebSocket example for Gemini API](https://github.com/asyncapi/spec/blob/v2.1.0/examples/websocket-gemini.yml): + + +{`components: + messages: + marketData: + summary: Message with marked data information. + description: | + The initial response message will show the existing state of the order book. Subsequent messages will show all executed trades, as well as all other changes to the order book from orders placed or canceled. payload: - user: - someUserKey: someUserValue - signup: - someSignupKey: someSignupValue -``` + $ref: '#/components/schemas/market' + examples: + - name: updateMessage + summary: Example of an update message that contains a change in price information. + payload: + type: update + eventId: 36902233362 + timestamp: 1619769673 + timestampms: 1619769673527 + socket_sequence: 661 + events: + - type: change + side: bid + price: '54350.40' + remaining: '0.002' + delta: '0.002' + reason: place + - name: heartbeatMessage + summary: Example of additional heartbeat message when you enable them. + payload: + type: heartbeat + socket_sequence: 1656`} + + +Rendering of new example properties in React component and HTML template: + +
For more details, check out [this pull request](https://github.com/asyncapi/spec/pull/534). -TODO: I think would be good to show these in html template as a screen shot - ## New protocol bindings The specification is now extended to support the following custom protocols through the bindings feature: @@ -69,10 +85,17 @@ We used and supported **defaultContentType** property to specify the default con The following official AsyncAPI tools are already updated to support 2.1.0 version of the specification: - JSON Schema that supports validation of AsyncAPI documents is updated in [this](https://github.com/asyncapi/asyncapi-node) repository. Also **@asyncapi/specs** package has been updated on NPM to version 2.8.0, and it contains the 2.1.0 JSON Schema. -- [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.1.0 documents. Upgrade to 1.6.0 version. +- [JavaScript Parser](https://github.com/asyncapi/parser-js/) uses latest **@asyncapi/specs** package and can be used to parse and validate 2.1.0 documents. Upgrade to 1.7.0 version. - [AsyncAPI Generator](https://github.com/asyncapi/generator/) uses the latest **@asyncapi/parser** package, so while generating output, it can validate 2.1.0 documents. Upgrade to 1.8.0 version +- [Generator filters](https://github.com/asyncapi/generator-filters) functions **getPayloadExamples** and **getHeadersExamples** support new message example properties. Upgrade to 2.0.0 version. +- [React component](https://github.com/asyncapi/asyncapi-react/) supports rendering of new message example properties. Upgrade to v1.0.0-next.10 version. +- [Markdown template](https://github.com/asyncapi/markdown-template) supports rendering of new message example properties. Upgrade to 0.14.0 version. +- [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.23.0 version. +- [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.1.0 version of the spec. Upgrade to 0.5.0 version. +- [Modelina](https://github.com/asyncapi/modelina) now also accepts AsyncAPI documents valid against the 2.1.0 version of the spec. Upgrade to 0.15.0 version. + -TODO: add js converter, generator filters, playground, react component, html and markdown templated, modelina +Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.1.0/examples/websocket-gemini.yml). Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. diff --git a/public/img/posts/release-notes-2.1.0/ui.webp b/public/img/posts/release-notes-2.1.0/ui.webp new file mode 100644 index 0000000000000000000000000000000000000000..f58c884226394a1ca22b928d6d2c6637bc822479 GIT binary patch literal 35120 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᲋U`K+)uqB9Wn0lUz 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 literal 0 HcmV?d00001 From abd594ac966f632ec51b88b74b3f653a376b56db Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Mon, 28 Jun 2021 14:09:00 +0200 Subject: [PATCH 10/15] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fran Méndez --- pages/blog/release-notes-2.1.0.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 1b9bec79b46f..fbbefd05615f 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -11,15 +11,15 @@ authors: photo: /img/avatars/lpgornicki.webp link: https://twitter.com/derberq byline: AsyncAPI Maintainer and Community Guardian -excerpt: 'The eagle has landed! Check out all the changes in the AsyncAPI specification introduces in the new v2.1.0 release' +excerpt: 'The eagle has landed! Check out all the changes the AsyncAPI specification introduces in the new v2.1.0 release' featured: true --- -The last, 2.0.0 AsyncAPI release took place on 11th of September, 2019. In 2020 the focus went into growing community and adoption and stabilization of basic tooling for specification. This year was a year of "formalizm" 😃 aka getting into the foundation, setting up governance model and contribution guide to enable work on next spec release. We are good to go forward. The 2.1.0 release is out in the wild 🎉 +The last AsyncAPI release (2.0.0) took place on the 11th of September, 2019. In 2020 the focus went into growing community and adoption and stabilization of basic tooling for specification. This year was a year of "formalizm" 😃 aka getting into the foundation, setting up governance model and contribution guide to enable work on next spec release. We are good to go forward. The 2.1.0 release is out in the wild 🎉 ## Message examples object extended with additional fields -Thanks to work done by [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties **name** and **summary** are optional. These properties help not only to properly describe the example in documentation. These properties make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)), so you can better identify what example to use for mocking and what it does. +Thanks to work done by [Laurent Broudoux](https://github.com/lbroudoux), you can now clearly describe message examples. New properties **name** and **summary** are optional. These properties help not only to properly describe the example in documentation but make it easier to work with mocking and testing tools (like [microcks](https://microcks.io/)), so you can better identify what example to use for mocking and what it does. Example of new properties added to existing [WebSocket example for Gemini API](https://github.com/asyncapi/spec/blob/v2.1.0/examples/websocket-gemini.yml): From e51899eded31fbee64d14d2e94c2facd5fa1a68f Mon Sep 17 00:00:00 2001 From: derberg Date: Mon, 28 Jun 2021 16:05:48 +0200 Subject: [PATCH 11/15] new screen shot --- public/img/posts/release-notes-2.1.0/ui.webp | Bin 35120 -> 26372 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/img/posts/release-notes-2.1.0/ui.webp b/public/img/posts/release-notes-2.1.0/ui.webp index f58c884226394a1ca22b928d6d2c6637bc822479..d4908373a071ef44ba217c2bc752677ad50b66f4 100644 GIT binary patch literal 26372 zcmb??V|ZlS)^5eNZQHhO+qT(ZCmp9_yJNFs+a24slMZg5d+_c1oqcwnA9vQD@l@5S zHRhOejQ4%VT%{}}F8*o`0BDE_E2=AU5?=kX6~{obfT%6Ob-@I%qPnzcODV_*Zy`(L zNT96jU%8fEKPJZwZh8@P2hl#RVjt{39?<%SYHv&~KSVdab!}ck9-7^QytDYec-=kQ+;_~p&$)SBetA1)xaoZO6!|gp4lyXO(3N@z z`6%&zX<*U(U>wjT^}+V>@xEAsapG0_bF+jY%^$P@{pRzP(occ658A5;__6VyF8pg# z%`E5t-;JDLobW<3p6v;CQ|;GMi5F?G=xj4^*tCN!Rv|sLw?z~@QU%{b;B3@0Mvv)`Q#C>tc`D)T?ef}I zv+8pC){gfC#wcWCv;|E3^)3G8hFSK;-$ofek&!nH3=E@z+3&pj*QFMlpH0|Ny~ZN{ zn>c2JM3i{`ZMYdX>ndx6Qr@Ou{5}#ErIjMM4av%0jpe&nFgeyEE!uOT5+qsw<<+aA z3!7W)9@nbg4ZyE+m>fSFx$SiIx9CkYX`ihj#ZVhJ{N4<@x<$xa(Ia&=*DNfGGjhkb zAB%jr4s&z<%f*r^fYycvhG*91+dMxkQ9^#)9aKYx4evfCY+sG@&$0ULYX3c+ZeIzy zdM>-Vx~km8d-K zl#Fs7?7ra+jGK~hgj|KuW{XfIX3=1&Vw4FCL+ z)i>}zSv@P|ncrXu+`lX`tlop27B_5Gl;28nDs4*RjaK^jOEc^~s3`Pm9o2ABNsF(H z5V}j#c2e;w44iV|p!Jg5-zr{Z`8YHwWeHVUs}m(XyE#=$rGHO5W#=y883zHr$C>U= zL716|5mUH;V_Dop_RJmYyIMUQ50uM57yF@F*)2cnzMHm);ae`1fOiYK9-zl@S%-1X zrS9yhtkufy>t(uRggnQ4tK{pp6S&v^p_FRLhWi4tfHxi!kQBEgkkJ z1IwbSPB1jB4KkDEt&RbWu*9NFCQ5|88)qA_WCQrb+$_ZDlAIbE2pippG`#-knX-^3 zknNZ=Ohhx4j%RDKZK*y<9OL?=l=A%~@NB^cyQ6*=i|2v}NLU`VQsUYN#*ZrIPS{dF z8hNRM9v`*A-S{4+rU*Zmd-~`FmNOpDMe#PM9j)4e=6l?ir6x?LXPF;MeJ4V!cz6fuffj;yM0cXXG4>IA3#oQ;;Lh$obrQv5ggm;%{rh zoM$@bAp^xcvNk?d@zj#d)^@<^kYD1Ncw;unZEz3XG1+FcyG5@f5WsUxn};!F?J*t+Z#!_?N!2qZ6A6bT)RAy3&Z3lp;t`S z7Joj9KC^3o#p9sr7i#h`{K;+5Hl{4{ZJ#roeae==LgvxC9_)Xm%mNyG?KkEB8Yw4W zcoJu-qWU)E3UL=`MnHAAZ~ddzjeH&uu)|a{P}EWJb^@@D%L5S-H{TgPs-5;~-OLaO zBs=IZt7KvvURK`ywdPgA2RxNyx&9I;n+5XFt$ERa5H-KPU>+Yc(FzVv0vWnPZ+4C? zr!&Lkk;98hg4?k}WY`P;Bvn-NMF?vJ-Aj_9@WcujpLFX`z&h*%U!M03bOXtC*Z)^# z{0~NG)~Ip}ut|j~qL+ij*jqt!%I`tTZt6&lpQ{RT9H<2Uf|SPA8!~6Fq&$pvPml_i zJU*P(MR0mZk(*_QY|XBLJaLfKDzha-5&j~s9#q?q_tARuOSP`E|0|2Fz3k+;7Pim& zF~VKEVkX)H{R<46lq7p2GN9=vU`|o&RWLuZJS-C&rfRfY+3q(Wyl$j;T6=IbqzE9e z{2IYy41*;|ytM@y@X2-wOX{5LVal{jhXUeoXA4-gDKK)@NWs&lh~jpJjO=3Ngp#RC z&o`uF`8SAo08+!o%O*;f3D&xLrR3f0+5kbq)8U7rnTCZXAZtje^chOMUWp(w|3&7W z<)i8q?bTU={7(P6bL=g2rk0o_7)va7tzHgOzFU~!Le$|m{4A#4i{LAt(Vhv61gRW{ zkxzAC_~N5ZKG8*r45n5FHvS>#*%FSW3!nO!{Ml_Y?pa{UsGXoG@))JYf|oV*JaI+_ zSOouVadH4z$x<65I~?Wa_DoBMp z*WN=_wjtKO5`m+WXsfhIOEa1CnW(~1weN{(&3&fM57w_q%{@WHK(o6Hb;ONpIPP?W zF3;Ep@C{Nbm+?k(WwtqvQ5e?TM5;LM7bEIC0Qoy^J++R%ei?uYe28hGh-Rt^h8<#j zf7cUv9AVi|xuo;8J5i(0`4R-k74i5>e)hKsADg7W_Aad_ch~fO+f%QfIx*^ zVY|zyjK4;GTR>-J#TdT6D#~)EFn4e|3YaK@j*6o_G6fz~cZ@wf80N~C^pvyM#V7@u zuPfY6aYZ(a&Z3+Z9I{>)a+aeCr&2vm`Aa99792=!#9#wlV#PNyRp`ykkyHY9QRSKD z=cdrxY})_4LjI$exrK^U4a86JqkX|s!n>mDF0dcdi{*=G;X%g^vmjmh^i~~kK83+X z%=)?^DgaWzdE79K#u0Q{5_5xk>V4c%yoSWY2T7l5S0@$*@5hA!^WpmDafEPVPHnS0 zjv;r{&|@On$8&O!qr2vC_8n86;33RdlS`P{;&ymLiNzvm1^c zncq!Tti~NQJwF&R@$&&diGk9*`vZSf$bKQA<(*DU>LF@1#c(OAyP1GxlV)?ZvB&DN zM!@tTDRRl>g~RbvSADrQKWB1^5Q$BR-w3$3#4}CP5K2^oesZwuZ|>mt{TH;WL2k%~ z*vTOGf4=k#B!=p7Q6P|tJ|c&GywZ9Uw1%T%+8;VIfbvvM1nHIE%r^ifY=Kt?W9po= z==}|C$g!^}aa-CWF#!%@l^@vc_adM|Icjj*{_A-^;+fwF$hbl}#qq*tJaZLvd|fPG z1<=+W=;UF^@9=vYq1K)R;oIezFU-nG1T)aQ^>Z2(J_}Ji#z(v)u0=st^>AzUOyr|D zqtG=hTS=s+LDjBwf9r(Qr=cP-v;i!VpuUqU{Z4AGxn&H$(e0HomhRNXpPNKDwhPZ& zgnSc%cO%b81+*W>0>{`+uh)_>RnF4#J5I!rX%>PA435Kc{biTI;_p8@r9ki%WTQ#B zlhWxkBIC-+38KaPVbXErN|In3tB3S5h$R-BIi$2n^OeuBwbFwK-(AJnu)bNJW~`j9 zc=(L_qgyh(aFjRe*15sFZkN~lleRjT(bOR8Zw}EF=2!^+_n1}; z45W!K-`syf!_#8wBO_X}jXdoT_wgGyXt=@K-Jsa@oUrV8JBH{pD+pM(gJz!Z^+W+l zjt^~yfx_v)_$-XQ;wtV8(2^!n^ZbU^JqMh@DL%@7ZYA`lPmxl@Pi*>mq>nES^Vc1T zzi$PXE5_x1Rk_gI&CRih-Fux-?9>0H33@uOX&R7gvxMvK~s#b z?Q`6LPT!QZdm+R_FVtjsp6vGcP3#^Hei0K@65BHZba7UqRw`W)-4qz$LZB=|QnHT- zOr0-N^c1Z`)2r&~{amlR;+jfWCJt>`+u)iXT;fRtR3o4sx|gL&d_*>EH|vl@9bC_w zX+>s(twhbM9fi8}+P#Fw;TYnCcX_6NU5)%&d-E1e;z|;Y5!(`-5IrBjt!7#%>*D~O z8QU}@1OEy2{;6>OMjngO-!5TgTYMN?X7w^uH-eoXuKyYZZh@At^A6AYw5J{o70#sZZvS;th{t=CEbv(UBp8xStaVcG_tK<;6qB z!cl<;Bu2y8rhBY@;<)_5ZS^L

kMR$pQ zRYD8zC%`S=CQ*s02fy+SX_93S)3gU{3PD(KEPKa@?WMRx5aJ1xl~r&K20Q&&Ve|(r zaT)3ieI|QC@*`+#20w}^Dfvtz*xGD~AYW*&cx9rcedxDuvuH(qhO9vY#Hi&T3xFr* znit8;#+PxqA6AHzp44~jhf^-!lRD7C;{`%V{mjC>IR$?fUqVCf zMaL8-b0{(>*VWy+^baf!9iY*MrOy&%<(FhiPA7k3{3f9qA^`5sPm}5H6wyr0cbsrz zN%-fezgT>Dc<8f(!5cC+Q$P{;Ej9e#M%WBxZeli?nDwK3=Z9p?NVO3aTuTN;)zRi;REf5T;F}!{MXIcBB5eym0_dxe=FYS61 zP_Q*)cVH3NzY%>RfitY8WMPBbhHrrj1t`fEmgdZ~1kF2eY;TxFc_ zHqXTV?n1u7Stc#F*L>mpuy(q}7dAmwzZYFj z|Hdb>-EHWP=s!f_biSLrQ84JVURFxVkEs+zmT#=j=h{pLmHfxUm-NqnLg6@IHKJ)* zl@>8K<~G7rWyeqWz#&?M{@9qyrTvp`zwmo-Nwd~->D>kn*{efooLHnia3k~fIC}}$D>v&esuf96d?GG$M~JDpSJ&-O3L|3wp5Xrt&XzO`h#I%k zD`8d-uU=OqX{126x2Wy+R@0+-IhK!w>g!V9Z2#s>WLp5>{o`9>iYToj^K<|Jz)UQH?QFbHB&=qtuK{y} zbOxuc5Q%`9Lyj@D+sH4%iZ}@4L-kcin-@p{3?s`#B-*obCN%Q8WD-5zqY@4cu+zp%ui41x>44&5llcU^ z7wZkb+J}}$EIAcaY7@C41&E1C=K=sgiVY4d5fq2yF9nI_&`fJz@AVc|ev z))niGT<|r5^PWb3=bl7Kk z4KKVAv~{p8hs+o_r_Kt^Yw%#4@4;#)a@R3emfQ~4A$3>c9SbL0y=m=VV@-8SLglpX zWQGh-aQ2CILSvc#26GjSPMv3rM;G8?sp)h(PzDiY*&zuwKv3F1%|l++oRmwihB*1Y zXMSxR6+|J2KRx|MjXK)JzK(M$!S4{^Ridc1e+AAxu}c8&{rk z5K@rlca7fI*x={OWY4|1Sg-S>+&gmlu_@+%F|qNcuDG^X+g`~jUBrWSaTO_ zt@vReFXw49zLt%ho93r+w4gi7Ir2cZHj zyA6Pnj2D^jLRo#>;ZcJPj|pB5#D;4Or})!^`xM|Mla(XMxTzB2Q^v$#mg9<2 zFEhjIG&OW3&SClvkF!EwdQk^)j-QZk&F5-)o(VRfQ^l!Zip;Cx@`({mH$=-q0)Pl+ ztsZ|#`%>8<)S=Lchu>04HN3m zgtMdRRI56e9>T-RtF;Z>mq($U>yf_Sb7tsSgB?8Q!sv$jP3R#_a-IMH8f^Tp)1v;n z8z%KaxBfD)$)TLbtebYCnm=Z{1mSgsv<%UP&4Gv059VY;Q^D4T>js!ViPXr__Enr; zc^+2)P4E&Y&{C+YeBx}h+Uqe>l#U-^6B`3^On%YbY$o(qozfYkvY5jKUZ~R*3~335 z=9>0KiJY;?8n4M3OQ+vxTx`z+pB^oSDQj<~3}~U!c;C=!*@(L5X}pu{c!rIvdd}xn z(m^mg)Tz3f>aAq$a*KbLjg(|Rl42N|SEP~v2RknGG<}rBy}RR1%20{19+wf0Z9Un? zQJ@88BD_YfLBgg%27#=K#p)?vY4M+)$i7#*R!$|Q)Xr;I$Lxw&R4;{T!IBiG0CqB( z!BQbtb-dB3!wY20;t5lgwbr9#6XUWG&*YW6Edi3gAF^CTD5MmN-Fw3AsB~mZH?C)W) zUK<|2d(9lvJPT4B95|9+@4a$}FL?)LnY@by1GAGJWogX}$D4UrWZoq-`^5ayPaeH#A3ds6w1HkL7~ zgeVMbp%{LQSQLTYLUIO3rc@Kd3_NL|GJaY1m6x;a3RL%Xt`0^CZ|EsK*L4XeDg@to z!5R);!_O+d+-kR%GRAmm%mr49pz38B%;@?doh6u9NT;Rd?pLlAU@GW=4Wq7@bcaA@ zlsR^eh!Wh=m=z{{SG9Nkop}T6hQ3YFL!a|fkn}G0s}b9&s{yz3u%x`x&}yh-Py%ex zSvKcP3YkNynoBNTrOM9L8GYm9jE~xyQ<~FD;>or``3=r}&=@u1G9rd;8Ep^NC7QR)8DYx2zf{KixTC zar*MLuY7bqMU!9wC$!%zi}%sdPN3gdF)}ZsEs2yUHIP-tzL99#aBM+%^3Pc2z7xXQ ziAr-@$$z$OAp>vSWO%QKB#SNb>X300X5pUOQ0?x72 z{BFoYjUSm%sdM@R1@*0m?}t9NcZ9orPXTb$Q}~M2vK1les;%92~lCF)co^u zFN1U~%E}_W`l<4;9qj^<*l8=#0(rcYwgDUjv|P5*>Bc=i!38)d*=)HqxOXNfa*I7%& z2ui6BC3%REuB2^|(o(G~B{Wm8z8NI2tOUc)uzY47h$AIYy0{F7F^8!E zcNGr)96R-PCUy0>LTY&OwS)OBK1?Ttx_w%hHzihf zyOp_&SQno2Gvbf;zQ(z&pRdFP>jVfuNOmumWjz(N%ZKdUvY%=Q2o=n45%G3jk;trV zmFh*k=RA@S1ox^-@PG*Ol4U_?gzFf36LgCb!Ucn5S9hCoq&{}j4f!AE6YQsff==}F z0^i6rfMjuR7$|dlGc3BAe_(S+_4N2i=8}wUfO0{3r9^LZn>OwGlY^}eNOS{zb-S5Y zFn(jWQ4p0ffIt*XkwC-8sS?C(5Xe+iq(ka;TE9qlnA&}N6D}SF${+VQ*Ixjt_rtJs z2!Dvr+{-0w8t`P6{4pW-~hz4Z%C3YF&L?2qZW$|bh-&!kERw06zMSI4j+7K znbO+^XN(?nFmCX@%7xuy_{)c&7C70GAqV4(rfHq7&#TzS24qj~ovsPDZzn4M2RBz~ zHIqA!z=jNca#;i7Y(+;Mo*=wj$u#pc+~eWkZePqta7jTy(8T8g@qj2}Rj;F#K`RS^GOixnKYgUGH}(5mAb5b02br*1NjIg$K_c6n7(U%%5a){%(l; z)A-jr|H&8|WgU4(ulH&evf;>Z{r_g@1m&qGycF})M%r;7!s9ro`|l4_rJ1{{O#k8n ze;a7zn;AV}oObDB+wf&}NUNm_XG@(DoM=}yF%=r2XIV3H4DSTCY_j|SiO0QXU;qHv zb`3@+TqEMwwOtFHIi*Y|Lyw)_zLjBv=knvrrF+}iaIKz`qvV5Z-#lGZzbvVmzz^Wl zv1{8$N*YoJ(qZrkW*gtbZ;kXbujokgWcA(CXm;3YKM+ryH1>#xdU2nfBP15)t+;2m zI2C-73`kRcV{davQEy_rRnL~GIKF!QQO{9U2JBHRN}owhp|z324RYY^G$-oudfA8{ zV;Gx>z3i?#(yph*$0p#Ev%4Zy6W7WL*_iGx^q3B&2 zn*wJN_1kzi7-*}qAkaZ}+8lCQ%|N(iNJ(rTaa<7^Wp)vE1_wPwI+8;q>ra?gwm}2u zETF*)Brm7bpQFtp-{jJw%yx!SN5Kg^5O0LmNCGE=`}mUNiHKrE2(~|j&BPO$&r5d- z9LO*&)WqS6!QX`fTZm&iB*tsuqT(jw0D#IL6Onfv`m`u=#)U|`hUqfawSGQcv)+1V z#ev_dGQERotp-3MmA$SagZi7H?Fo~7AhX9!TpGZn0`J?27btAt@%hOuJdnOm0GP^@ zUxX*^xiz>@n^w&hf!r~!VTDRBfwiKZ@;09_HksgH`!SLUx1@|S(I1zccsA?qDrTeX zSb$gi85A0r*c2fRb>!?@cHEQu`75B`2&;YlxE8I!Kw&xI_L3f!!CljJnQE=Er(8-f zqQ>QZQmGP>;kI?W1U^4UzAyQmY7|jg2J+dyVp5;}I(F zv~Y8@2XrLM1Q*(Kvomp(V1+ol$skPGcrwA1i(1djx^w#1&X%T227H3-xk@TFYcdd@ zeU7@wVfnIGgt<3?yblr=hnFAgnT+Ks!on}UJ!#DDA36;N2Y%A95p3?PzCpsPT9Kpm zY?A%=vkf{YB8*LKXYdx_!@6u7R5bj=G=-4t8Y3h%pBlB0Gq z3oh3MDSa*{Y-lVu*!ILxR^JcH!Y9`+6_d%4#U<8}eo(Zn5PTyM!C|X_g!BC2+p{l5 zWf87u+{Q+#FPR77RpHGG1T zfL?|Zd5WmMv8m6|d1xH2{fPZDTsq~}mFkVdNJc$+BfSyg?ZCMMRDL`7V#isX0*_>r z3k1tKJBBe@ky^rSl{6gBcvCGmILn97_U3M0wM;Mqfgs@FD>-j9`&3i!qMj9B8=U~dI z8im|kBJh*svs|MDt;`uH3>MzK&@A*IIl`y)N50OygS_TdL?ES=R!-0lvi)b@^L98b zH>G-A5BawZ<3;EcX|YqOG>okxae@eB&H`W>9W#ieAyIEa)f3PfsbDV7o#1@!J2m1Z z9cxi3w5|v#ruxxK*T{H{kHaJmqW}Pc=XNV~=evpeG@1I~7@bDr>Bb<)EsOX#?|Xsgk&m)#xxjO`KQ}6l_kb9&UrefvdfvG-HJ|VT$W{)P%l)yeCiI85$)w3MX8-t zKC}X6jS<%$Q%6!az_*OCHMXH^hpPry{QlItGhR}xCTFXkqUL2{A+akJX;qH`vLZ{^ zotlcj0)`_BaUEaI^cL@8hz$b_3J9~ogR4$Wt!xBAo&`(?ALk5cS%>68Cj%`~gX*Mv z5JWM72bb(~px)x~1vgWMW)JZF^V^+G+zLvt|Rk0$S5ImIxL5*#24t^xZD@7R& z={f!o2qACB?75X3`|wV^>yKKSt*1@y7I^AQCa#j4OScZgc60g+GQ!$Sroq|lunYQ!bI zTPtqmJN4DnS-|34seDXJF9BtlcHIhhn!rKDU)bne!hMflP`37avXi{E65B+5u1FRUo}v9)WK~9S==oI#BDv<$@Q%bin41> zfR}vUwaS&e;XzS9e|U>1LqM=s8Sw!N_r4N#3QZ>@2Nx0pY9?9aI{Q@Xgz>E-3{r_S9uE)s66ohNpC< z&~uKgVB5Qxesq<}s7l-7SteX}EAGM%IehILVmuF&3eBTmIL7yc!_| zZIQZ5J>6ZXuA8;yWyYuLQXZ^v#tqFF4Pc5PTQAfp>W?UPi;FNE%-~FAgA6UyfBqnw zyDWscxJeIIV_Y6hOM`&1il~^YL%)c-rZwQd<>DJg*6}EjXPHbSA2ov4QQXR-`{J5$ zF8OVK7VXmjETVL5sfH(NwoEfSodk0VGf^3gZo3H#17y&@9{3q0YNYlCWv~R-g1G6l4XP@};{T_D1g%QUgb+6OeD(Uo;w$vJ@40y)lZd5&5Al~Xb6`gfmI7M+SC21id z`p5LpwNS=71NS(=FbVq3R78;nu|Gg*;_SI-j^`P-o{U?EDoD(^wgvzO#IZD~Z?4b~ zs&LHDsk;M-Zu6&0RWJ@I^VVR&u2_(Q01$Cx0myLn++Wld0PQrGcrKTS#zSBmt1HtX z9BE--VO2>2TPI@ceM>6!Mg7ueL{2S>2*J4&n>t8vFx~)t?|AXn?c8F)A|rmm952~k zS=K`LGDxQLv4`@$3{zQs8>J!=5j<#G4j}HFNgCOPaq`*{5?d-x6j5TWUAkQ1Eq2V zn2_gb;gC^IJjSV?W>aK$o8UekU%h#Ko?wRn0o2NCcgO``j(d#n50w*Bp1rB$!QHcp zVpKhB$;$p}B6?)0bu2`5i64RDc1W{Z*@hG86B||8AkkLwyJmJAg>mTo)NOi2`$3}f z#VwXjj;}m@PwDf02{o1vn!rI_57O)MM<1{)Z^V|`I?!!h?DJW>Hq-rfYWN78VDOYIAGF@rRiGA1xU+BGyRcH_6 zN!Buv#kDWvk?7<>om*2F6ylkOl-(PrVaY4C@C%k<)ywvZIcc#y1l_v5@I2FQjK;9R zcXrZqGQeI{Cg`%Mq7QMrmk|1C@yfq`=_sJ2+4Sf8-d1!uJR7+aa^0>~6bs9)yqxCMBE4gttpNLB>S;Oy3F}E}boV4eeR1Bpzk1iuZIl^- zc?&J_O78-~#Yc!qIs^Q5-uS08OJA} z_-*LOCJMB)k%#~dW7~|gxf`nOn$90a993L61MH0_(Vt?q*Ho(Fsoj2vE|7`cgqmx^ zz;?_-2=|B}2jofcXf2G^T>`yPGa6;u<9`DHkn@B&I)^I1yWuAif4{+63ekbH^TXX> zSkpD-ffCk#lCD&BG5Y9IT*8shJeek$+iCvX!St*=|u3S;DHu2jq(V z+6SDV)LT4|OmBG8{unoT`84AM+`)0?nKm%IY&LYx`_^!`<3U^^AoG)d{OPB{AcMjW zu2{{>gxyBFEc3^LX2hRJ)H`2>dm!^|oBAjyyse?W)g4&7G<^HXq1kF$XL6bzy1vzT zP(opTQ^VjUX*(OQN7##Ygw9AEBQKY(B!E%U36bYs<9RP24!*-b)d1vNRX6&EUX(jn zqChv^9Cg$2#2g5c0V-@KoLd#&dBQJy4AL++-__*Pw? zl5Dqv|D|BxiGgJU=T$!vt?VXrYln5*V>t}shb#joWvo0tpNM|pOK~; zQO+5bT?f}FM$N>^SA6)n5a6CU4^EvpFAM|#fcvJ=7)y?1x7=MRu`^ZD>2?{hOLp$n zfFd!(u$s1_SIN+-sXBSG%S13y6|E_%gSJ5LN=C$%FEXBSROW9`b8pbSly+)YWU3!L zl?;e&>`09FI5`f6hSpw!LYe|eEn4&6?lFo@)0)?2EFMdN)s3zdx(bQ1rwS={e_{Y) zd!>RBjthEQf|uRL^B+(fj?~HE1y3%ZoXx(?7bv_{J^iTaMU_CG92M-AFlT%k)(YV= z7ryu2Brs1rM3h+coi6Gx;JED(hj@w>HNt=QeXB#%o{!#7>e)$E5@R0okuh zGG+I$l5Bu+hw5>hiA1(W4aahP?yI7ms7Te!sd0Ldz0ftGRN>dFP(SKPV28OT&~xzI z2it>!n&uf>k9w#AE1}CKf8hszQlY|F@f$8dV zicWjPn=l0^Nragc*&R4tpcOC8rkl&rAR#VOlJM;dGvJ8ZeqADL`m-Qvma>E7Q#;_B z?slUhqChboZ>H%dw$XPO=X|392-R}xw)sra%srkkSSi@SIr2Pe*TQjxhq+?0__sB3 zWo!xC;M5XmD39afbL#OieV=voUW>2EJ!Eb0GyCcU%R)X!8+?47K`r(Mp>;bVFFCgK zF97iOS)kSD>}}niu(T0K)i)PWZ*idHp0TahAQ5bG0gs*G3EriB*1PU5DrMT%+_LL)urOQ!Q<~N}=kOXP7Wi7QriWuwrMGjgmzxN)INzN?*oTijt z!K1hmSF;z#&^N1Wu-B2Mmy(p2Anv*bB!tc8Eg=jiMW%gXb`&Q|*N-m&G-*t zG!cToT0r>%7KtZp2c*>NKF0HP`ZsoxU&KJ1BXJbmDwDqw?5g;e^LSGpPz%uNUld{W zmMLfHoTW?$H{1`przM{5?H8Emk(GG#Sbz8U?5%3lZtml#Jj3bx=?8CHz2cY(GT63e z+u|If`_VIKXj8QQz zt+G7Q=wY!#qzNNkWgD8L$Ty3wI00)H&dyLS& z!0p#XFzdFgP|3&ZVlok>u(eHLFK^3Qd&7hWSlijj)dZXkpl;*)TsA==pVVd88x*h} z`)4HzbIy%GL$wC2jldk&k_?+5`O?mmYjc9YgptkrG4LY1PZWUc7g8g*$$LAv*+rcl zq1~Q$ZOgPMw{A7XnAYuqysb48Y~$hVF`R3>_8LE{QFlewy&?t3V`E=^k*y(hO$cQn zz8d?HJBWCnKM?A1DLS(ZXu^Tp53g$_!A2#9ing>8XB?j_p9TOxA+el+Izj*dGBMFW z$3~5>XF^t0C|{(bc5Z7HxgapIZ)0!>4@IhDMoa5|eGA11*Y07$?;67FO(s}7%<$La z4IVgaK(SMxD1FIadaCU2vll*su5t*&q~l-ORep8_YVl1flxnmlvL2}}enE^q3*s4Q z0nLY|W0skIb}fiV>0OTvv-fW2^*57+-ja^~B(t7F7vC)|D0R&h^keEN7XWgi@||b; z+Yk|4{alxnM@I_Qgdat!0m}(*b~w|qTs`xy0bYSbuM*;k0|X2SsRvDuKXGI-PJJ0K zYxp~-MZzgu*&M3lnfKduZP1vomA2)Po}2Ib_4%O$7IHPAV~7TE+?1fKFlOQ!Xn1=` z)xG&t8TDdAJdZT?M*{Y%d8*0o5m5qab>B#0^pV?)P(FEn;J5wSL419Ag(6=--vy*0 zFo>~*HyY_q)rCuNs`uuKMn2U2B=jR$+t_GY=}#SflZBE`KR@5c#wa|N=teO*BH2o*jWY8ei!xFqrz!rT#J9Ii)Jn z6MBw8sZ)>IKprGzzN@>B4(U9Iz!Y*28BLE}pV{yGxh~b$c%g=WG(jS5*X_D{&Iobs zAW8w(6$jNme*&0j!JYV2AKBe`l6(QA=h0Z_%?WacHbFWHpbUKSwKbwzH;HIWbun8v zj8d?Ygs`TN{t}FtF%imf{u6G;!-e&Hyqn;sj=bQV8K0Nz_aH)zik%iU>xAY-d2F6b zHt`^%-Htro0vO}2=_$_VXdU1M<|4*T^p;-_7q~yMo$<-J?)lPm#v)X#IG#u+uN1Nd zB}oFC8Ri8Wycp|$1v-3(QLw^9-m}^H;G@naI{j}VAx=C2m0)1gl(`yRuSW{SwkX-vNB zYu9<|y7#l3js5&i=!vznsNYg$Xg=3!RC%melDmrV2Yl1#KKj0DAw83h4H6J~OaYgF z(8jy3S3g!uexVqHk$|n|6?e>ctOglY4r}Lv4wxQy^BoI*{Z*LS&=IMXxa;n;Zf!lt ztYUMl@xm2V(2f{{Vr=`W&$HPUE3Q)J6Y-|~JR%=wf7SN#&xsZd zNU`T_BedD37BY?Qtd|i>|+=<3UNI zm+}Y3kW@}`H7eE@+|mtFf`Ix!v$OrUfslP3JTg>qHe_&&hxsWl;@O}^iuBo{1U1HH zjI(6-FQ_g$Qj+FlMU z+buH3Eds*fGpAwT7CPTv=r^PZom)e=bv zq|z*!Ni%F67byf0R7ET1XS7OBGXJ1Lq}Qio&o`h8ci>mC_UUU-OoC6wJ0O~Dt+0h> zWrMByHgRiGWnsN_tNoYBVREiNg5JMVa8OkZ97me$z_=Juv zdm8dAmW()syUG*#`Mff;U@Jjj(qw1%y_%$UP_g#2@U)Jva)#}w_|GQ2B>!Q4S||Qq z+DP=^$?IP1VD-w>?uleE1Ba|(-EITuBj7Vm>`<^2X4cD!5Ey|e=~^i1C2IB%ixzEL zlZ2KVnefsaQdWbPjiMp(cw|x|=??P#NMQ{yIJ*qm!>&SA03Zcs6j!l+A~X=|Z9iY{ zUHGc;#@ePtNTc&iJQ_=NT#rz>@F?P-2V<+}P*4+zYI<9KA83vEM^RIzQBuB1h{t#j zft1|IPoFkj@kXk%O`fokk^2AB$yWx&0khpMR$PlL?ogmO#ocw$WpOQ1+@;v!?pmxk z6n8IHbaB_>uEmNK_;}xM?%ezPKEINaWHOV?lRU{e$@G)-59H_*lL?POX2t!!y2_}F z65=e4L9ao#Q|Raep{xw z&wEsG}i9USzAp|hFMSMO6+2*i)KG8UGHin+uGh;oyL{zYjy3mIj~*S?KKp3_YB zibCUD7}xPlxhiL=R_%=>Qmd*$)-B_@G+#;ZUDYa6a3F>mH3b3Y>EHXBUJ`l&73Te| zpA&$g8Q$P!dj0yjCCO5;)P#_`sclncRtaj4Q_nT*pg6e-W5^<;I6V3^`U=6qKBjQ; z7S&RLS&0jX<7TaE>i&M{PAV>j$S`uyh}W50&#^NF?EnXssICP}6w{(4f)i6D6Ri1 z-dz`Dd;hrOr|iGb9x_}xAw1Gq;a;sA7txO1VzrYAbgZev;C#2B^OEYI9ws6KuVI%e zg`bqTDAJO<%yaf&!qn7r2{%#oQ6n}6a~tB7_vwfD_mG@r&#QsFF2Rv&a1l!|IR|UM z`M){`&|Sbs0~+=ljWOlRr0fEzjpk4AbC_{IWK-@Dxq~XMJZS`o6S>o@NnkaMCX`Qj z!opd;9$ss_JhH{H2|rzDCU$rzGejMJco)zN?g$j_URI!G-^g@L+lmAsn^&l`z~bfw zXk1}1aqa}O@c}ukBjIN)gk(27E3*(p|7!5%nO|=!qQfe>R<2x`Cgpo}VMxP3a}Gsj))q^!$sih3MPuGl*3$0 zdn_^#q+rV)7w)B-74Q?2f~zI)@^*kqPtn3F{;}d0gfPQXqX6KG3o!!&!0uQ?Re*ip z^%&@+|wU)393i};#8{FXW4$%$_kiY8D190}s**QL^gk=vq#z|}zMNxk5m^eQSLa> zWpvx`83R85;+NzWl;tlfi(;oA5eg)N38dy+R!`TRv&9GRFuc75RgIBfb1~F`3i94Q z%7wcVN1A`_ST`fq=W}7@QA4kXXn#nVnd}^uIlpO)7(ov!l=;wXqiG8xGDS;TNN#Go znooVNHXJ3Fm|fTznXh*Ps$4lzTXx&HumAM{VkX|cdtUnfcikhq1kL-#MvXFePDc_s zHKB02x}o{*%AqwOdT2d4@yJ7s9B&bEKoLfrsC6%_^-`MspW-|MsYB4&wd zQC<67e!uBtNg|u`6NBza3%6^ZbLC0KRJ{%P=wP>_3_Sxf3gmFS+)FhrWyQDcCd;#Y z&MJ}xRp0z~v`pPO<2H3m4{-oUmCkN6|1ObN#z(^&d8HK1+Q<|hx=LmW9p0WRG9VnK zN78T=m}b*a@{AeOVz6)!^GInB29xM5t-{KWd?owRqV&BsejAPVZSAyfH3-g;-;kg! z8x<~Pyt@K3^p*|YK9*5$8>Yc8S~HS2^mql^lxOPyY#RLGweEygIS`mez0293B|WuL zlYXEmw7f!6eyT`mw*~|1IUTp$BHxvEDNXeJgdgn6ysDbw|7-?t`hD8}!#Tr`Jx4Mr zvC(*1#bI(8CouwDJxf%pNOc3s#S;`2B@bQUi|&{KG)JM|WOv3)3l8DjY^ahzjry_+ z8a?E_Ot^xBR#4*a#YQ4;2x?NnM2wY(H_(m9o%L7IrXdsnAau6TveQVvMh+VsQ`#RD z45HS8lNvk8B_6?*gAz*nFJ`f$`j0B4#?OUWw~K`td9Xo_&umoAvC&5$f9TmnmyufM z^>z4bwhsXuZ}(joP~-{lA(2a*Qrth5Twe!OciV(DVcsSrO34R8%RVdkf2YK{lIA*I zR;_ia@J}CliN@%rE>=kbt8ipZf|E9Lad+2~AK{N9A40zOQhnlrdh4gGHW^Bg=&>5+ z*=vy^(r`NQxH(E{JI2`xCtT34V;Z|wFBR@SOpZv#mg+T;m!gQl&2=&@@Rg9LrrNUb zfRK1fPdEm_`7ik#pFVu_JffHZZWd5aKRBi#!}KMz!8Y|u-&mW{yq?LU1A96{7@7yKTO7TM3qrz{N!9yj3mztZqe&X39NAcI9W{D`r4}saHLn z>2C4$J{yz+{E>dPZYf_&Is7cM1tQggKS!g5knzU!Sr-`Ewhuz# znpTkOdkItP^dnnXjXuF}tbs-x+w4ouH?5l;7B@ewZ}~A19G|c~ooC+;U}R2dm)Hoe zL>!XOY7i0Yw7L{Lh#76vZK4pq^#4JisfCUg#FHaLphJg# zLzu>h>SSJTc*cF7qa7x{mg*3UxbZ0@S(oi_K1x^M{-=E|Nkkq1fNLWD7X3tWrt-J^ zr=$NEIzq_o;n%v-HIy&$dvU0z#qW*0W{I1}Cx}#-{g-o^@JL;s-ITCbG&OAMgJqr? zZt$HsUhrgh?d4N3%VGK3yB{*M;L&?F3K#e=@kW22Q&a)PBI3f7P{`}4K;j>)o_CU) zcS~?nWY4!uwq`kSES zZ4Lp|%9}|@ISo`z1Bt`O8?k9v+J7JcxW8iTQDQjg3cc)445}Ia7U>XK>1kSR-nJFo zL#z`%bnf_Xqu*LLhc6Cw$?j}&plXwXZ{&*9fWqnex`V3cgtxFl6y{1*=Gh>$Evl#J z>`tUfkKmF@0m2!U(+EuvD>%;W2Kaa2d=A*E_A_^L*0hK3-2;Z!Uu%($5#hk`5ak#w zNOWyT9!~BYv#m9g=c;Iceu9e66q$N-91e|7Z^A1#fpm?tn8Dyj)zq-G{o|& z;U*711l5a*rp=iuP;<~XC+(8F9rcL^YLRG9hwgZ#kbtR{!$5?ng}xuM!jDL6EXTNt zt22&25opgo$L_HJ>W!40{++dyPr7?2uJvEKjBRf9 zp3{PpFW-K#ZT$-S5o*lv9244_2(MZ4k^Xc-V=!V_BW&7q`u5ukLM(X1UlWl;cy9yf zV+(wQ^h%K9F&wzw78afUz~oa|uF_t&Wv3lO4|$Fr#1fVBUfJ)r(r~>VC=mAb)N5=O zl)7yJV&qv0IOK*!fQ|^2YY|XF(|WO)*#ym~;AcEnV=9!`GTP19gw2cmH?#w=xT0E> zBS6k*$i{&4eJysH*_Odr?4eh=;C9gIHcUCCvfiqHT{E#U2y;a)cuXKgUROdbvoQM% z{Hq-LrtF*xBJtQ@N2`O#^LuN>k}tZtx**G6!i9ZV#S-do;cR}+iSc`k2|ieOScS&NWu<+L z62M?N`QSam-UVg`Nip_QW*E^sygeT}N}vU#VqiVLF~yDdAoX@d9hx=kRzu)F(k6D)B; zhkX-3=3cbJyEs$1kFc_(9Bx;cQZv%5dd+i;urNIY7328Nw8Pd*%U%;o3!CLj2JxUS zHA?pC2$Mt4$FDFY#WC*GS9-5EEzQwlF_JM_qqlsgZQ0s;dDJ zvRKTo1jsJC=}*#ZzGn^;vR1G{&};S7woAZ@;+W>Q0q28nw497llL*m>G;Z(2REeh= zy2~JPl!pgyDExt(g@A;hSVrc8?Nd{J0e!n=M^ExKjKb|1$^IQB-8tWq;+=9a!0wkN z2P}LvS4Ih3vzc#VVk#l`lR6O&3SV?93RL-^9KCo%H7S5(F{!_NYw@rjCiP;CmI|B_ z-|ASUyTYX)im5X!VjuMa{q-`}N3Tbx7FPmvI56~x%r8>{`xldO?aBrC3)YwGw{~8q z^EFiI1;{gCk0vJ)Dkb|=cN5SWv~0qpGRHpzcmkAz0dKQmB0j(si-7poRT8p=uacNh z>eArRN+70lG0<)2=tgV`M_9l05W9q-MA+7whad%5Fxn)`ach^mU86xIdjT?}-vkO3 z9UWu@4Ie}@i_Q2=v0hbZ#G1(GpHiKl)l@Nzh=b90`p1NIpZukV1IyiA`V_WQwp8j5Dz#;-tM^=FHjKK$yqW*SJEgdM!a^V1<-SQ)(MblDNpIu3dI zo?<2f!TAfekDw&cN>-l~ub=sny9L8(oh&t$DIkwKQAgG0-Se}X^DDWNXqJ$dS%gfI zOzXzuV$V<+r7<(HZjpG6@W~O~D_jKG=*?0f?V#XSy|OXSKOA>~a|U>gDQ=C_ee78! z=vcE}`KRUha87~-4-6vZsRJSpdfcR92bf)MZ( zv6UvfiA%#;VPk0qa4QxW=S`pMl=)Gz(}p0cdN7+Vt*Yx}>sgu!ei6b3IcrbOu z)7U1LLqK7aiw`v;9E$kpnWNS%iAg>s!)SbPUwapKrQfx*;a+!K)K9=R}Y(`eP z{sfq~v#uE4@<^zKVqa}95ckF9Sex5X-)q=8lI+^(tSmM(AHC#i2<+n)#@B^yKzR5b z1HEAnfg3l;0`qN2yGGpvf?8#5c_3h2M#0gv1V?9;nn)ys7c${{jJ2|IG{jzvY_9 z6PTg_;S6BcgL@YX$p1(3)3gfe9(Ggm( z)=6G?AnY$`j0}snXPhr4v)8ZxONl0Xa4G)A)S=NodO3^^GNv~1z1*O@wZ?^`YAqW4 zKVk(0azc2m+Ohj|y=A)!`GETF^F-D6eqW4-Rt*yPu90mtTF?@K{N*uHpyI*+3XGI+ zVc@c!d{yDDNsW}K8E>hCq^>0GaUW`6)#C0Zux&r8$xMO5;%j!rlz)LTZTW4dkNZL> zF?dMc7dDcLX4E~nDMfS6U<#rT0mHm5 zGSSV5!X#o0enFljEW>s?qv&57&!Ms$I}?jXjpTNlldkU%c{gxL`fJTEU&GKpg`C2Y zF*?zK007%HOzbyTvZwVSSpYXTV)nn^hfP@HxGV!fUn;eNgguPr4`|i6)tSTW4HNIP zYyQ}+I((l+5jqf5K^u7NS?g%2y`Xzy@udxlE-JcSdxLIv( zDdROi5db$NIv&Zy5Wj-}#ebciJ&Xnqh| zLMZosfz@{F)5>v!TN`zovz`b>_N0A(Ssux~3Lv#ZXzustBuN_H97RiYWbry90c}M0 zeheW}BstE%(buhEM!VjqPqD0278rZB-El(=BOSDGS3b_!pXo98#@FBJv^*$7&+t4m zwQH%aJP@k@7wMRahHq>niE^aEMEAFxE6Q5nCr8Du8q3kSFS@S_RC0XXkPVXFbnd07Kz*}hP4g+FXHxkCH zqcbka?^aK@-yzZ|i&XiiL!E7m+P6liN@%{(&_{yB9$!Ndqj4L7pFxCMD5%t-XF&ML zrLINC)=u(c{jx7Uq8(rL&PY&bj{5-@PM?ti8}v}*w|lyXw}%lcCw+Y~szEJEmcHfb zR1*qNaBj+?+!M(+94gk+%l>5Mudw>^ADt^GXo8Bn&GNnWOK>|0rnbbkcWjW?U&GQ0 zsG>Gxerdx(GWb11i{JZ7;{}47k@h{MX_}?Aa`OjF7=NAq_EPa1pL->PlfY?$Qv@7d zf)XyYa(%s62ubg`U=NBcyAb+i(wRxHTbIQ2IGIMsJ;iW0#SEQv3qo8yidfD*hW*TJ zELJB1vO-kAEpd0AcUU-NB%l^#@`g2aQ9C2R`IVd^GA;y1mAYn6gmO00|Nf4L-Z z9RAP($l8VRDT(AJbGOTTl1w_5I_K!S&W6~*dNUuK{-_;`?<-(ktBgQFfqXL)KUw=MVnex;cFgYn07Tf z=?=e)gH`Zd6|wc)B@(Vxv+j}=JxJ-i`ZX0y9c`W0PXtm#DW9ln(#oD{-4=jo zUs9?>cI-C%vynugI@5F{>LyqO8N`?_J?i=s6gGYIk$ET>(k?Z@3eS|Vf>4X}Yeb>< zGZaA3e64p9{k8AWm@)zrM2Akt7qm^Li@57i|EAb;KAMCis(v*G=SL9%TXa(!EaRU# z;s$}tmZ~$a@or;NloEYqZv=u{bRprT=TeSHSW?S$-rMd=AW86_O?W#z>ttpnVFff#LUdh%*@Qp%*;}WnM+cMSt>E-zSr~hbk9zA*E9Qe z?~k<1jJP*4BF=I5<6)^JDJDh{0R*HbDx{#Qz(IiX$NQTx&>UbYa|nHKz66OpnUZ3n zLV`v0@Ooru3)^=`9;O$A(Sw%O(6|PEz%lhyuaw^mGhLHU-z#1rp!qczkbOJ%fd4jd zhW_ZcJoK4Ym3RG_kH5-a@45S$1&9UA0{*xL%&yW>uZPf|@OkqT5CES$xHKQ+pHCn3 z4^P`;Gkzuj@{j$;v3I@lUZsz|cl^t`{Y0`L0{@!#+>@OSxyd;C7l-s}$WXUGp8gSO%X;%s^+0pjoIul#yDrGU0i z>D9buz^&iFI}m{Ra{yrU_SD9I*R2U41_(dF?Eca1#ZPtTm)|p>0bqBwd5-_NbN&g& zU*P8jm_Fb9a|%NU+kODRM=xO@)?<&cjQwZrhM$@Ze^qPV@}~URW!Z!4;%k@1hfeeV zRm1dHbT8>U%lzy6m zUH)`H%N0T$3|TYL(muo2a>1s_TPfSEB-81i>R{%y5I0}H7aRa{rzL zxA6{2Z{@>rzKTg0qwg9cOgRmZS3RAPDP6M&Z{Pf*l9?O7Kw(q@jH-R-fxn)_RsU|$ zvq6KH@F9*yI~1-PAiy$({RSz?NM7q*<`U!aEH&&W38s*m3%kYhp69SbR8OpY`9QAOg3N+d>Dc`~jS5S8lKM{=W zf6wgwj9k)&CPN$y&b9?6Hn$xHvP<4P5TI)S`b;BMa@_WY!(HvwkO$DO@aRTwvY5f9 zE+qi;hmD^~;}-3PSb-4sKdD^m)AKxkV;Vqu&q5cmc5%MBI@cO#ipmn4=taI`Ur~Fs zd!~NwiFO^i{4Hiocrh5-a&nCgen&#SmA9nm)Y!5QNQsYg+fnLd5IuAXn3}%pHtL;X)Yt2vdp`;aAuIA zcwZp>Pg1yAD}0Gbb|}uT+>5)9hv#32$znK}{r(jyRoa8i`+e(ACSG>6ePc?|)S=LXyB*gbz06{@}M2jyy5p`Wk(ug+KM@QiAdfb{ezR=rcS zFI|&BuxDdlsofB%TqZ27tWWrI~(3VOyJezm*^ z6a_(a(@7Wxru8WFE4s}zEDhaeCWg9B8w*2ym!%F*$Suu0Q@tT{HlsHp8{0eC;@ksX z(fyKUkjkJ@*k9x!TLWgq1DU6g>O>5_Mlz1SKxO9}x<7E6=}cL{x03=1EyV(tR;^QP z02-h@OO=87gFmM91>la+5mxj=YgFF^cT1SZ=`&!d>F-?<7>E8dGqyln1SFx|DwuYg zmH^3A%iQ*$kBeiB(M#;`XmepC?$&(YhbW3?G!1u@e2OvK1#;bRDqZ`9eUyn}h<6cp z>y17r^IYL+d;b?Ee-@|O?eqP@S?P03?+O9*oalG=I6u1w7}E`a>A%%{Q(e2#U^W5*`ys&EEea1+PKFhw$aL2fG^#a|3c|tHRT`lCy_! zRtf2tehM0jy#{+?xRqTu7$;)*9UpI(KUhuZw3s}#J@;q5qa}w%WP@wKVp|nG-IXul zJ^p~Kh}n+|iA;_*v)ONCyeBY=;%0@NP%j2k%4oTERHiNWbKJ{)tKYB?MvpS8!IyO=ojEqGgo?a^s0*buS=#}J|AHoL%BpM{=a8hZO#cJPrI zr1W#b7yoxc=|Q|o$1%^f-S&r1?-Gn%uFd^}FVRABPtIuSH?@IO;n(xnUF-aCN)_Gx za(VjkvaQU-D-9gyG%5Ax3`$V)#Nv$&GimIC&dgB!dov;bYK!0keZQs|&tHi>wzwG! z)=LLtkb(U7@2i(PK`hl=RvY2%bBcUCDfZbPuCk#w*lJ$M_pGQvag8S4DigZ?Mio{8t5c)&r0EB%Zd5@stS;zdwmXda48UuUuDYWK8*YymE@nvQY+;_vVu_c7HB4Q{sk z$Odequ*zucB7Gf@xW3LKR~Jw_N?mmP3nx;x-IreOwWAgw7R}d`q>O3kf`1=jbC*E| zHA_?d(>$JDYvpUO!6$%a@S@`8lbxMt=NSqCkg*pvu#vsrq8*py@Ea)n6Q4Aj^j*0( z-U*N8H$*lBC+Ds|$qLeBGomZYtxdiFEf6-<H~zm=E!E47vb8F)eN$C6|4Wt6pZzNy?dWn*ErS1Z$@1TG`*SgDltET( zoFA|LYC-3}1u4C8ACu^$M5PHbx?sQ-K-LJNw8`>9@Dr|+_}_Ahg6%ja!wZU43E^YG z1B(cUsbuj9vTROB3Xw3nHxUD4z*NFC1Jn(!eGt5*g-Ef#+HOX+m+khjS*~RdkDg!= z!_T!=q|S7?=uv?ZF;LzM#@WtxgHT^=$c-w;_$wmBP^Hh`%%Df{Y&EXBCsqf8yiwC` z&QS$tjuggLV0bOWN|rOTyF`SGjA4IJh=D(gUF0_+_z#5E<*PG$fGTdCm)O;rcgsle zy<%A8BVku7uQ-R~N;eSG-6~mo#kUdv9^Po)Hb_4G+sb&2+z4CErn)Y$iv=(4gy2aZ z@@Vs!05!)yxjAb*F&H@>w%hYjr9=eUtAS_!o&Zq|x==yL>CQk!W8Gky zBMI?Ft*T(|jt=8DwR}Cc|EZU5qPX#PqXCj?_Q+GA8=77BL*N_|gxELG^PBZmx%4I^ zQUh>mz(K5BYDsNNk+aT*?yo$d7@1$&R~R=V*`bcB1#SOvFaO41Mk^0rBgi5N-SwQU zw2QXsVboN+vQ!5Q6pK`qE+5OR&Sq-eiDbQJfJ<`!JyZN`9sesX!e$`xIgI1%#%Y~z z*YCvM1CR?i>2fj0;a=Da_BGhIbd7gEY$zR*9K>Q3IA6%n6+7M%0&y zlJm6C2$0N+k=f(roLhwt-7^h8+~K#wGkrViZ3lAALt3 zBi1+v%;(D3%|s$d!C6Hds5g(~I&7p}HB-lk@Jaix}i#w5OAJR!kk3;OFTZMhv@1_Z&{5=7ao7E-7#JT|4DI2LFTZ)7j z-=NrQg5NvwE^>a11F!AGA@k}4+t#i--7$~Eeff7X+e>;gPsICsuhz1pK7$@Ht*G>! zu;ceZNWk4$J=*lE!vgD}?A3 zf>R-@R<~NZY=b3iZSng8aHgbmR$Wg}LYUs~y~B~`X04wL_MtzJ9{$7hm#`ZlWO($v zP2`M*NVnrh=T!FprHc4x5AV-7=B4zCEvbhHtF!QO`rl>$|Ad!+$QVnw zbx_i51a%rvyZ;y@{~SF>D2y6b>StexJ%6X5|IP%f%{>ikzq45W;a;}rQ-jWZR7!|r z{&kP@kHT;rjdSlWT2T+KOV~BaUBDs{|CufS*;54yB+3nKNC$OZ0*Mfeg;=MCgqpu zECP!3>HXn?_Y|JUvr^eyqyqG7#nv{(xXXT^{ihoPVLfWmt^e|?9~6f{#F?Qh-}Moo z5Q3o_4%79w`)d%qzf~86X6%}pO?4^o`zf#roMe8)w;#?Eo5;8sGAZF=+=T)QnD%mccuw~CVj&6)P zyb!cTi%Oi%>K#E$0BL%en*({y*(G~2d-uClpqrCB-K8XeC}51Y0yx_cuWojhFaj&D zz_Rm(^y?`9h%^xOfEe5Kd90|lHv2t$w+~Ue8{7jX90Zr&=Gl;MOodLefsUX&yE&L` zAAw7@#%hE~m<7U+U8jxAv%Qb|X^5mD_$XA&vjmWKg2@uhutmY%j7{KzAoC*NI#|@C zA{v8&=Nb!!4_8!Pqp|+X{P17r_sax&E0}z!i^R`$Q^_fEclz|7Pf!-9A3}k?pLsBp z86Z(isAs6N4ej{EkobeoX)H|}W(78L!lBxk!s|WJ4VlaO9ohrz#OOkzjk_7u=zB7= z8`AkO+*-)wu;x05`I>AX?$!bkFAFGP659Q6Ox<0w#i(GEiZ?)Lu7kiVib!?dOdc|49$v#Ufqdqb>x!>Cvr{^9oLGxskq=yL4D_X3Mu%9LAVTb&nNq?r> z{UqsThI=PT3pMBqPQ007ze&_~WU3^#tUV9U*CU!np@tyH7(yQaHL@GD;mOR}Z6pVA zC8VJ{&LmTX6=V*j4}=)q3EuEvWgjq>tMX=Kn@&itXb$?TR+WwVmrOe_<+UgC-_YrQ zBV{?eQH4aoqBNMs7k&EE1b615=)-8)el@O`G;my4J^Fv(-QS`6pM=AoA^t~g18q1> z@3LB|K!M*EnIs;+?#oe2Mc*Q2K9HQDSb(GmOK9(~sjEN}_h<%M2-DVPiS{-BD|@Jd zf{vw3<7_c*VXYlJPTNT7hOx;y7d=RL(xya|1dB86Q!II?p$HOFfxWHrze1DcDe#-wJOg$a4@V?%8vfD-kTG&6&kPcyf$)xma<0ukmrksIP; zfN63B+9DWCK}NlI5ipUbF>?H27rxMKbyoX2Xu@TW>9Z|T z$DVJ@piv1tCA>KtG3U~g+Te^UA7VslceCU}FO|~MxAkVsIr*0*&`16ds_a4iAyj=P!Ae)Ad&veSUNb0_ShU@<>@cwZe_XicmNf`Zc zkoAauN*Dh6NcMM*{C8(Q)!?$iw%tmdGXKiW|JP~%`k1Csy9e=C6+=~PHE13E%-8AP zh}nO@t`i0?EqpZ;9b4%CB?tb4L1{G)x`{LKvj#q#Ec@7lUXPZ2?I0hfE8n*f&a+fr zy75=ps_xwRYi-nyZv3=2>ZW%;J6iPqU)|ejfPg*$VV56y5Rfd0P;(HIzGtIsaj_}w~I-r($ATgXc>9Py`S=$+K z`;mL$HzZA`lb{f}?oR@FXl=E^5y+Oo*RynjIEiSe{6XerR^)yU*`hWuX>nYf zn!IOD*3}NNZorm6Eu?_0W69|p_BvpVeO5j#dZ*b)gB<7l-s9(FLp@KkkN@hP-wKAc z_JHd_CB9ddNR_uX^8K{(4p&?TG>KsyYK$u&i`|}61U+4aI*^@k_$qvm@!Nul439T} zpm{|+>C*ux_q>QYkJLr@bYxN)hzf}t2{m=J`tvp8$@16-q_$ zjW@85;U@JdTEKYwLTN!qD-s$Jih91|`*T0IAjW_asg1XUED5FH%lo?`N6ezi$< z^k(2SXiG|hlG3|wEsKu6Z#<$nz`BF}L|d-&JArdy2K>RD`<=Z+@;t0QE|C*+zgT_ zC7=7*7ts#^obzqQsji*_HL{n_E0EnfLf`0*8y_`S69+|SS~qCFP5pB0ch8MoW|(|7 z)w~R{uQPr*S#jvw+kjR*PqP^IA)k`cP7=UEN#QQd=ge%~6&mY%Q$D=xk`_E;lzM`9LopYdQSza2@>^SWXY??PB zr(=x^L8x*Lyen7rwMc0A(K6^{XJV$hF1i(`l(Oa1fFz3Wb6>hHgQ3W^Dm|4MAosoHH6lP$r5?k9sG zb{o->JfswU*@-tLb ztthgu?3TgbZmy$tE9N21DDH=PJ$iN0LCD!pzF!rZOup~z*{|0F=I6@Zi z3*uN%1hzR1!=lfzj~Wj>_p1gOi%-%8cS`z*fw%D2NALr5`2A^Z$i|-6sM_kMRR&Z=(S2$wI7^(d&=~-rQ z5?7Itpt0%LaV|>^VKm>w8UYc;lgDm}$x&ruSfZ8e4>VVe)|xQ6gm~QDD?Dl9_nGuD z(v%yzi;Bl2_8Fzpr8Jb}J)*!je?CX1Qb)}ssZ~kk8(-d2R773oCXwWkNZq5;!TBzs z#WMbf8N|*2v1H?j(_|(<@{L1qc4M{GNSxXqXJp-_ONEm6(vIvn{bvt3F2*He`XL$p zR*YgB?y5yO#|k*`hUlv&QM<-fARcq3)Pv??a3Wz<@~{*Y2QesvY0a4CMDm=$LKZ(f znegy&2>P&&H&e2#ry9fQ`91+!19J&|Q7?gNoC%h+!-r!#`aG7eQguvkB>BNpd-~c6 zT?1F}!Gj_yKS?3D0@jJBC14VR^(l^6%ZP(t_QFp^$g$w?A6@_0V$Osn>;_}^_2G(f zL=mhKO&bLW@V44gIq4EthqP`bcR5!76>5MY(N^r-#Qw9qqS~REGTyrLD2rQSjIcAf zc=Kq&Nk6f|BGfuS2T#4YFi8s!XcJ%AhxF9;bsoPmS5wgJ%ZxFJxR^KTfVcVV{gcwh zSw1#uVaCynIqCP$d0!v!JQDL;UoXXw;siF}Zyff<{Es)Pwu_Wgx?2JSHT_2~`Uh|N zb7auc=TshuJ2!v)X1J2d^g3^M(D@&1WS_vR>DS3l0M{%rp9g0r&el+eD< zsXVW%p&6a#^aaim#}k$RJja%S&l_%)>xsoSnx-UqtD>mH*Wc1>g%x!inAP!qMd?_z z*(TsCXGimdod!kgX~&z48$ffJyq0SIEPYZ!CKRz1)_po z2vY+uy)5ELS^&-}xKn{OO1&TvayKJpBy z?L~D={&hpA&N|Dw%3-q?B{N+D-6@l{G+kQqENn!9#P(_ey%aEB zzUo=NABf!i>F8o4tZj^QW`Rd#%%NHSaX5D28MmZ?!2sPGXM;SS=d9*o!cj8)(N$L7A6)m)$%HR|Q!kNU~nEs_X! zBVaqCn?*Y?oCZbDubYQ=QTWUEls7Gx#^9Nf&`+&iAl5qH)>#h7#IArl7I*6t9wZCk zOSBR=;1fj3{q?RvuvV^ImgH#w8E{xIZ%i)zZHu!Q(u<2yC$CD_F8+tkrK$7OmgMyp z?61sJQ6h#mi{4PbU% zkhUTk3CZniJK}za5k+18X*z3U$>Bo%C|#_mN5K+>+Lj5pjKC?2mKU1yO#(ICt|)Bd z--t&uN^{ugm6lx}N%1FX#5}LDnAde84lWAs=$Pmz+9APH30fZr0SR3|jNgg$@l{}% z4!J4D+%iyak2gorotp)my9)$G2Tr@x<26bDO zo7|+!1LXRjEd-st#;MP{!d=)EK6YseF;G-G>b|UTlrOcr=s~_f+Da>xr4Bj3dV*)} z=!X=k6lhL+q_g*w%A0C;6DmU1Y#IA z1gKr3YDe)3aY$Lnd}KoXbmVK8hMY;G^5>*P7aSzY7%CsB-Yhh~Lk7A5jo9*%za6)A zL>(VzX=U|13rw$d2;0)ofW;>>3T-D6)C3oF_Ud8KY$0tu_Ve#~Hs zHg5Jb)z_T5W6gyAjen1s6v|OHpS6N2WCt42HfC+12GhjHzNb9EosnF{$RlZfcpvdD48OS0|@?j;Fbb;NTuLew*6T`ELIPpj zxN{q;IvEvXMcdDqi$EpPWBGFgvlp9ErQT)}Yvy5YD0y0nQ%*_jQ%Ex1!uB&G_@+VH z-6SicKRZ55;czr^T!piq*H)p|6nvhjDHq$xeXR&bV~U#D->ceX6K=3{bF}h};^%^G z3oLR%`$oX~5>yot#y5%w>O=1R^~^U1RqD;su?})dwp-XV7>={Kwl6TU<}I^7bVWQY zxC{3gl;tU6#unQfob~iWsLZy9=p>6QoieSE2x#6w)-qG8dZ}Tn0W1`8u7=gfb*$R$ zuHLY5#fs`?H>%Af=`ImI+$sWlUR)>&KYP!d#EJ9A54(8B*;5yrb5J-Z$AR8P(^b!S zl|Aask{uXz(=Qw^U4oFwDvyAn%ahz!;)|veLfIXxo`XvY+|h4l?8(8FFtsbk@7(`Tn7DYW{7n_ zJQ>lsMZo%*tDk8~57j~H8zREv@I{UKh~+r@{YA{@H95r*vjw>!sRu=sGHNheyu+vQ z3bIGUs)t4&GbltnzuOs|j?%uiEdXUHu>~8d1pn>=ckNpY?tYh7yvB;niJ_gt0e;S; zRCS?FC*$_3CmscffL2s%Oh2!y(3;X)<>0sFt7e#5J3JmL{3V$#AX(~jE#Z1(Rkc-F z*A$!Ml8RWpl%s%IYq&`c!d0!}AuaxqA0o3z{=P$MNm~&DKuM31miGy%_4F@@hmjTB zvHcKdykHYR_0$qUl@vg*=o?O5zWL@TKT}ZgFdb_xtb%Vb>>vb*+(08CI$6b1MOi6F zOF3na?Tzuaza;t~ibR z!YUGJ?^0g4JaH<|{~7?9Ao;6*a={R4L1>qI^|Kz{XJqGdSPA2}4g6e|!r!#m-(PgS zd$_22Uc0{Y^pdX^m8-hHc8Mvs2J z9W?jHcR*j6`=7|H_l)>NUrd&lN7 zZu>5S`|#7{*}fFPl?7{LBWG!65~2((ALeId4F;#)A^7SXWrptCFw&Z$0MRt~0PbUQ zeA4mm6{oZzy9t^H;{raFpRsOv&*nnt#A3SOF)txF%fZTzu*3GnMF=^>We=-ced7_0 zY)O_a%;p+v&;n1m6jC zB73cS2|I&GwQZ+k<;OdTinI2GnKf>A!XlDjr*}CuSUyrP5wR~;n@vY7UYK~4T{}d0 z(6Mq|v5*!{k~Bd%(=b*?{3%jQejatG9aT@4<`X%|$`EZcIsvp0G@SFeLPPxo)rVPm>@By=b^}8I)l|kEZbR)Dv2Bg`HXN(;bof686naYcBQ` zd11qAJQh8gPe@0pHs$Hgl>jL~5FQExqlhaqLq5aC81Q3rti}YpYX79Tfo{|O)50pTrpP)cS>GtHPUpw{UpoUNbDgc9fXL8p z%}Wp|2&tV$Ne;{mKqTC|QX;o`EEHILCx8ze_l9X}_T>hWA!b7wSj=%%-DmSng1|;{ zZeUmUoQk*oL%81jA~VMJq!m@t2I(s#1&KEreT(MdN-yNhb8CoGe6tJ zN81W7E{%>?CezDsd^X{Pp0Wr`WT>#S`HkE7DJ;c&;^k4GBC%Q`2(-L>pip>)sR+eV zlU3l0@u8Xw5ShI}l*#nQn6nWC}5MR9Z*ovD1G`MjlGFAQkeuoj8VRGeO!`5>E@+GouJJ7G%k>RC{U5hYNuSj0H!mJooAfC5A6lme)+MXu7zFU)ZfA7J0rrJ#^=%xGxnYQ9I7^A^1+~un&fNFq-w(BLZ>3J zWYAqnts3Z5dGYQYlwDl#CSD_`Lbz=L5*dL{7Xk8P|9RyW-{dGb5D-W*)Zajnqq-1* zAmOfJcGLmg?EW1~Y_Yt330r6ZA|&!c;*h7ZWG&d0llhuC$B!Ln;XVqOVP_H9=lTzm zejdrC+rRv|orp{QChAcD0iK!vfcRiAJ%82Q#P8kuxdG6fokmwSLlV#Su*NY0_BD>C z;jB<3MA&@jRDK!!Q}=m%4)baAS0{@dn2Zd&Ty1N){Rf42lrh>4>yi zhMTiMx%D4-4bQX(5TN~sr0>@jsxx}fdqv+(%AH2>d6&^sVYoW%SY4Vglf_&rkO}4J z3#DTQSv5N(qAqO0D~@(F-k!MoQ8ku19~u2p`=_2{HEd5{h!v*>*mzGxLb|X_yXeS7VAN00$~VN2v5m*bv4`K?*=wNEOP2+7~e@qy>2$Cb2wEhd*rN`7ab`4r(YrRp}mo@p9zuEx{- z;!OPT1iv?5gzRTbO8X|3NsrMS*F)^~{ZgfzuKPjLXB|#GtUe zuM44srCc#K#@@xP{b4f}UH)Nj>|=>ywAXFIbrjfC-t3`#h+Lf%-5v)j*Wu?+Gp@ob zWr`6Rmw6Q*DS4Z`j7I9l^~{W8#(<(+P6Tx)@?K;*7fNg$yt2njh?D-CW+*fVXzJ2n$T<$?lnn|eRq7Pa&8gN@kT0g z6xZWSNfh9;crdcGdxv>>dZ!L&sccr2pl{!XS=YB!alU||zX0KFkl=#tr??Ee6(9s6 zNfdim73vH#RdM^17b%2RlfN`aA6|Wj=rUk?NtBl;uD(S4K&?^C1CQO3b`)^5U(`{+ zWJ`cZos_K{u(N~!zw@M^`&ED*ebv6GiiZC@xKV^=rs4t z>BUr79~yyfa3x(XN|LqR^c{6jp}O?wD;di+l<1E|gAra3&ytAV2eCF!q?5J-Lq|9^ zOkmOy4?fEf9m4RU8Ny`(qEi>;n2(CjcXyvdXmT@92v7Bv7W6g)Dghq;D~KPtITk!4 zn!F$gGojJ)K-v`?9ePPNZb70i<2{TDE$4B!X$IU*NRJ=+nAL_z!|kF68e6vSM}brn zBr=jqfr=5v^+0-b=@u|PdZVGhc~NQPcNTU8Z40TJK(TlS?(ig>?Ea5bC?d1I`1#eR zThHCHj6ju=OX>wOyVs`}=O++ic1=h-mAFt+!Iags)fMg99|el7r8L$*(;IN35(69i zPi3MD`jH%%HB9b2jw0scfq+sVNHheJS{)ze-_TNze9>))pD%{@eWlZe5VQcylQI+0 z7}Q5=5l25|={Gpy?b8tOkBNRqOY%i`3l#`BglO)nX28vcx<&YsNu;Ye%INQj;^1?y~M+R4-8$Jf;?%;y@@{=hN_r>n<$j<3T>u*L$Y zG5GMWMVD6Y9=PBg%AiXvfxda|1JC8b=mes1I|zM`kx)s@w~~$FS(;5m5VG|Ju39Tp+ix-r1VV8@ zZ=~%@h$dGc@p!*lBSg0FL<0vfi4*SjAoz zG8|uvy$h+u9Gh+jMaK-qz!(`-@#{_7>@|?DA}3;7XCCUqfWOXvPYA-R9-G%u&P4u# zclusTwXkb6J#TE`b9WR^Zq)N3*>+C03Mv6SJp>fn&w<9lvWsf3#GzFkqVc3N$9R3G zc35f%b>@%<0Ul9-cJ%&3P5nBeg?2C3f$D2=Z7?m->@E-x@FlB1?VXIIxug8MF!BnG zZ%G4Vu6saNvytPpr&`CHabHvf?1ccmQpADz(O>@e4Gtmu7<1NNqj1JD?qxd-m zT%Gw~ByP#t(?(BL-=o1ocl}KGm-SLv>xqut?p~s!TobAxoD=6Vf;H>cz8yD+J(P2F@4r~tGlE8^c--7LXMSH#3xs5 zUwq*gm*U*z@&|%|^YHP(cIC;*Vb}qw}dXu-d zbCsjuAja77IrvEO8S6KqakkuOVs-^qWRW1KhCVccXlJ8?&5f3HfS>cAAXa;{q3keGKPzNWl{~=J4IB47sSM zUHwwK}IsOONrnCu!YRJ$;gAZ6Sg>esYP`U@p zRX~6*|FdS)qbiQ!PlajHr#&iZ$7|d>T-dv2T9;kh_$fLWPk^5DEn=QE5q&-cV8sv_;;LY2xt*`n2VLHp&oI%;QNhOi6< zgC)K|5Qgzou*h)jhhKg*jte*t-{gh?oAsC1TrX&>B|kdNADS&uT9)w_dV?>~n5(ye ze6Kkm$Cytr2${6|Lo8t7+Pb)X2VE4hqYg%BX#oy6$1rPV#^nrQ#x<(5pT65Shf9iB zopUE_$-oUkWPM$lkkxEyx{K}=VR*7vF7J>}1CqgRyTU1JN-XQO-rOnH=oXEEx-j-txQcQ<46_b`erCqC z*FXG*t1;X|3p6(A`^#maoyWs3f*>luo531aC?)jO5!kH3+_@>V^zn6zB^YOclv}b0 zLWv(8^ZDg4DSwr{jD{wL%pSMtKW8dsIj*X5e)Ub zUH2F`cvZm3jrfRw{BNGwnZ(Lg>{$gJs6-&U3z3aKE>Jwck(LY%H#Bb3@sw=BW8fld zrV{9kUgs*|6tE-re-R3%oJ@GTMtK!-j|mI{0fD+ALZlo~xm;}|=H`{vuk{)J;p?Fg z4?fyy3x3zcBTiBX%-_!k0&-AFx(bU#!E7)fDk|O2yC<0u-ru;$BQ;v%Xqud)MP{6j zRS}9NGuQ#H?Ss37DY9)x!E}9MA3tJ({>5Eiqs&9ia}L+|x*4~EvW@eFS4@T24Itg*5zvk!=lv4m{%>QD1=;3PvkLrC zl9U3>sxbUU%xzJexJ{C?4EivBi4᲋U`K+)uqB9Wn0lUz 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 From 7171f371457d9ea58049e7697cae67715d0be6d7 Mon Sep 17 00:00:00 2001 From: derberg Date: Mon, 28 Jun 2021 17:54:08 +0200 Subject: [PATCH 12/15] fix code highlight --- components/editor/CodeBlock.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/editor/CodeBlock.js b/components/editor/CodeBlock.js index 5c961ad37b02..4452a33aace2 100644 --- a/components/editor/CodeBlock.js +++ b/components/editor/CodeBlock.js @@ -72,7 +72,7 @@ export default function CodeBlock({ lineProps={lineNumber => { const isHighlighted = highlightedLines && highlightedLines.includes(lineNumber) return { - className: `${isHighlighted ? 'bg-code-editor-dark-highlight block ml-4' : ''} pr-8`, + className: `${isHighlighted ? 'bg-code-editor-dark-highlight block ml-10 w-full' : ''} pr-8`, } }} codeTagProps={{ @@ -117,7 +117,7 @@ export default function CodeBlock({ const theme = { 'hljs': { - 'display': 'block', + 'display': 'inline-block', 'background': '#252f3f', 'color': '#d6deeb' }, From d782fba4ba0656a5695384069bf509199e247fce Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Tue, 29 Jun 2021 12:54:50 +0200 Subject: [PATCH 13/15] Update pages/blog/release-notes-2.1.0.md Co-authored-by: Jonas Lagoni --- pages/blog/release-notes-2.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index fbbefd05615f..759f9b21348c 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -92,7 +92,7 @@ The following official AsyncAPI tools are already updated to support 2.1.0 versi - [Markdown template](https://github.com/asyncapi/markdown-template) supports rendering of new message example properties. Upgrade to 0.14.0 version. - [HTML template](https://github.com/asyncapi/html-template) uses the latest **@asyncapi/react-component** package. Upgrade to 0.23.0 version. - [JavaScript Converter](https://github.com/asyncapi/converter-js/) enables conversion from any AsyncAPI version into the 2.1.0 version of the spec. Upgrade to 0.5.0 version. -- [Modelina](https://github.com/asyncapi/modelina) now also accepts AsyncAPI documents valid against the 2.1.0 version of the spec. Upgrade to 0.15.0 version. +- [Modelina](https://github.com/asyncapi/modelina) now also accepts AsyncAPI documents valid against the 2.1.0 version of the spec. Upgrade to 0.16.0 version. Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.1.0/examples/websocket-gemini.yml). From 8e8ae7b1160e9d15b7fe689d573ec67a6ae1ce1a Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Tue, 29 Jun 2021 14:52:34 +0200 Subject: [PATCH 14/15] Update release-notes-2.1.0.md --- pages/blog/release-notes-2.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 759f9b21348c..56417b45ad62 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -99,7 +99,7 @@ Last but not least is the AsyncAPI Playground. Check new playground that uses la Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling. -This is not all! Not only official AsyncAPI tools are updated. Thanks to [Laurent Broudoux](https://github.com/lbroudoux) also [Microcs](https://microcks.io/) now supports version 2.1.0 and its new example's properties. Upgrade to 1.3.0 version. +This is not all! Not only official AsyncAPI tools are updated. Thanks to [Laurent Broudoux](https://github.com/lbroudoux) also [Microcks](https://microcks.io/) now supports version 2.1.0 and its new example's properties. Upgrade to 1.3.0 version. ## Thank you From bbbed5ec2f9da56998e522ece1836632725bca13 Mon Sep 17 00:00:00 2001 From: Lukasz Gornicki Date: Tue, 29 Jun 2021 15:45:15 +0200 Subject: [PATCH 15/15] Update pages/blog/release-notes-2.1.0.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Maciej UrbaÅ„czyk --- pages/blog/release-notes-2.1.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/blog/release-notes-2.1.0.md b/pages/blog/release-notes-2.1.0.md index 56417b45ad62..1df68cb36eb5 100644 --- a/pages/blog/release-notes-2.1.0.md +++ b/pages/blog/release-notes-2.1.0.md @@ -95,7 +95,7 @@ The following official AsyncAPI tools are already updated to support 2.1.0 versi - [Modelina](https://github.com/asyncapi/modelina) now also accepts AsyncAPI documents valid against the 2.1.0 version of the spec. Upgrade to 0.16.0 version. -Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.1.0/examples/websocket-gemini.yml). +Last but not least is the AsyncAPI Playground. Check new playground that uses latest HTML template and Markdown template with [this example](https://playground.asyncapi.io/?url=https://raw.githubusercontent.com/asyncapi/spec/v2.1.0/examples/websocket-gemini.yml). Big thanks to [Maciej Urbanczyk](https://github.com/magicmatatjahu) and [Jonas Lagoni](https://github.com/jonaslagoni/) for updating most relevant tooling.