Consider adding metadata tablet transaction logging

There have been several tickets that have been created to try and help avoid the situation where the metadata gets out of sync with the a tablet's in-memory data file manager.  This can have significant consequences when this happens with a metadata tablet.  Fixing the root issues are being worked on in those other tickets.  This ticket is an attempt to create some fault-tolerance in the code.
One possiblity is for the Tablet to capture the transactions that are submitted against the metadata in a separate log.  When the in-memory becomes out of sync with the metadata, we can

output the set of transactions since the last known point of consistency to the error log
replay the log using separate code to determine what the true state should be
optionally try and repair either the metadata or the in-memory data file manager as needed

Capturing the discussion from the accumulo channel in the ASF slack:

Ivarator
18 hours ago
After many discussions, I am now thinking along the lines of some fault tolerant coding here.  I think the metadata/in-memory checker should keeps a transaction log on the side.  Whenever things are determined to be consistent it can essentially clear that log.  However when it finds an inconsistency, it can essentially replay that log against what it last knew to be correct to determine what the state of affairs should be.  Then the appropriate reparations can be made.
HP
18 hours ago
It would be cool if it could be smart enough to log results of the decision like "Metadata still had a reference to a file we successfully major compacted"  which is basically what we've had to manually search for to confirm we haven't lost data.
Still chewing on potential edge cases like when splits / merges occur...
Ivarator
18 hours ago
agreed.... messages to help pinpoint the error.
Keith Turner
18 hours ago
One way to implement this would be to have a per tablet set of files that were compacted away.  This set would be cleared on each successful consistency check.  Unsuccessful checks could use the set to compute better messages.
Ivarator
18 hours ago
I expect files that are compacted away would certainly be part of this transaction log.
Ivarator
18 hours ago
I will work this tomorrow I think.  In the meantime I look forward to any headway on #3721
ctubbsii
:mask:  18 hours ago
A per-tablet set of files that were compacted away will complicate the no-chop merges feature, because a file might get compacted due to one range entry, but might need to stick around with a different range that has yet to be compacted.
ctubbsii
:mask:  18 hours ago
That could be mitigated by forcing the compaction code to always compact all ranges for a given file, whenever that file is included in a compaction.
Keith Turner
18 hours ago
For that case, it would probably key the set on file+range like it does when tracking the tablets current files
ctubbsii
:mask:  18 hours ago
Yeah, key on StoredTabletFile. A lot of those internal structures were changed in 3.0, though. I'm not sure if this idea would target 2.1 or 3.1. If it's targeting 2.1, it may look very different in 3.1 (and because 3.0 is non-LTM, it wouldn't have the feature at all).
Chris Shannon
4 hours ago
If we tracked the set of files based on StoredTabletFile I don't think it would be too much different with the no-chop-merge changes. The internal structure was changed in 3.0 but both 2.1 and 3.0 still only rely on the path as the key for uniqueness (well really it's the file metadata which is just the path.)  With my no-chop-merges branch and changes coming we add the concept of a range to go along with the path to determine a unique file but that is transparent and internal to the StoredTabletFile structure (technically it's part of all TabletFiles). So if we just use StoredTabletFile object when tracking in the set then I would think any code written would work for the most part without too many changes.
Chris Shannon
4 hours ago
One of the benefits of treating each combination of path + range as a unique file (vs the original attempt of having one file track a collection of ranges) is most of the code just "works" transparently. Any code that uses a tablet file doesn't really care the paths are the same with different ranges, it just treats them as unique files so things like splits, compactions, etc just work without much modification and i would expect something similar here (edited)

Closing for the same reason as the linked PR was closed: https://github.com/apache/accumulo/pull/3727#issuecomment-1908481394


[Feature] Use qtpy, don't require specific backend?

howdie, this project looks awesome! was just looking around for updates in this sphere and it looks like you're actively working on this in the last couple minutes even 😄
I'm wondering if you could possibly be persuaded to use qtpy instead of directly importing from PyQt5, and to remove pyqt5 from your install_requires?  I'm a core developer at napari and the author of magicgui, and would potentially want to use your package in those projects, but we want to support people using pyside as well.
thanks for making this available!

@tlambert03 thanks for the idea. Will take a look into it.

@tlambert03 thanks for the idea. Will take a look into it.

thanks!  I'll mention right up front, the downside is that pip install qt-range-slider won't work on it it's own, but qtpy will give an interpretable "missing backend" error, and you can provide an extras_require field in your setup.py for both pyqt5 and pyside2 and encourage your users to install with pip install qt-range-slider[pyqt5] or pip install qt-range-slider[pyside2].  Here is an example of how I've done that elsewhere (just using setup.cfg instead of setup.py)

thanks!  I'll mention right up front, the downside is that pip install qt-range-slider won't work on it it's own, but qtpy will give an interpretable "missing backend" error, and you can provide an extras_require field in your setup.py for both pyqt5 and pyside2 and encourage your users to install with pip install qt-range-slider[pyqt5] or pip install qt-range-slider[pyside2].  Here is an example of how I've done that elsewhere (just using setup.cfg instead of setup.py)


update sbt-contraband to 0.5.1

I also updated other projects in sbt organization:

https://github.com/sbt/io/pull/314
https://github.com/sbt/librarymanagement/pull/358
https://github.com/sbt/zinc/pull/959

I already merged this, but could you send another PR with the code re-generated plz?

I already merged this, but could you send another PR with the code re-generated plz?

Done in #6225. Sorry I didn't noticed the files were on git. I will do the same for the other PRs...


Add generic document type

Hey, so sorry it took me so long to get around to this PR.
I like the overall idea and I think we should move towards this model!
My three comments are:

This change should be fully transparent and not break anything -- I think you've made sure of that in the returned Result format, thanks!
In the same vein, I don't think we should be forcing user to use our Document type, I think it makes more sense for the user to be able to pass just text and it be auto-constructed from it.
I can add this myself, but I think Document should also come with a "metadata" attribute which is just a dict where the user can pass in whatever!

I might take a stab at this myself later this afternoon, but thanks again for your contribution, and so sorry for the how long it took me to review this1

Hey, I've made a number of changes. There was a lot of API breaking change, which is something that will never happen with rerankers (I'm intending to keep everything compatible with the release version for as long as humanly possible). The key result of my updates are basically:

Result objects are now transparent to their Document object
Users can freely pass in pre-constructed Documents, string+doc_ids+meta_data, or any combination thereof, and the results will be the same.

I think this is ready to merge now, thank you for getting this started!


[New documentation] Set up documentation website home page

Live preview of this page: https://scotttodd.github.io/iree/, which will eventually live on https://google.github.io/iree/ after we switch over the docs.
Source currently lives on the staging-docs-rework branch here: https://github.com/google/iree/blob/staging-docs-rework/mkdocs/docs/index.md . PRs or direct commits to the branch are okay. We'll want to be careful about force pushes / rebases though.
See the README here for instructions on previewing changes locally: https://github.com/google/iree/tree/staging-docs-rework/mkdocs

I've drafted something for this page, but I'm not really sure yet what it should look like:
https://github.com/google/iree/blob/97d4eeac924177a094110984a825d8cce6604fa8/mkdocs/docs/index.md#L5-L22
Our current https://google.github.io/iree/ is a copy of the README at https://github.com/google/iree, but I also want to introduce the different categories on the website to give users some initial direction.

I'll sketch this page out a bit further myself.
I do think it makes sense to diverge from the GitHub README, but some of the overview material in there is still worth including.
Some inspiration:

https://www.tensorflow.org/lite/guide#development_workflow introducing different sections
https://tvm.apache.org/, https://tvm.apache.org/docs/
https://pytorch.org/, https://pytorch.org/docs/stable/index.html


internal/filetransfer: add DEV_FILE_TRANSFER_TYPE for local dev

This config value allows paygate to switch between its local dev FTP and SFTP servers for quick testing of the async file retrieval and uploading.
While this is dev/testing code in production any deployment should override these with their own configuration for each FI.

Codecov Report

Merging #189 into master will decrease coverage by 4.01%.
The diff coverage is 82.85%.

@@            Coverage Diff             @@
##           master     #189      +/-   ##
==========================================
- Coverage   56.27%   52.26%   -4.02%
==========================================
  Files          30       30
  Lines        3989     4001      +12
==========================================
- Hits         2245     2091     -154
- Misses       1283     1473     +190
+ Partials      461      437      -24

Impacted Files
Coverage Δ

internal/filetransfer/config.go
55.11% <82.85%> (-0.26%)
:arrow_down:

accounts.go
10.95% <0%> (-69.87%)
:arrow_down:

internal/database/mysql.go
32.09% <0%> (-41.98%)
:arrow_down:

ofac.go
38.65% <0%> (-35.3%)
:arrow_down:

internal/filetransfer/sftp.go
39.31% <0%> (-22.76%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8a5d6f6...4d832f4. Read the comment docs.


🐛 Build with full version number

What does this pull request do?
🐛 Build with full version number
Fixes "losing" the git SHA from the application version:

What is the intent behind these changes?
2c7d77a34e94932f64126094759ca2e07c06aafa introduced a regression in the
application version -- the built version is YYYY-MM-DD now instead of
YYYY-MM-DD.buildNumber.gitSHA
This is because ARG BUILD_NUMBER was removed, which is used by the
gradle task bootBuildInfo to pass it in

 🐛 Application version is no longer unique


Flagged variants for clin

This PR address fixes for gene when launched from clin using custom data.  There were a couple of issues of variants not being added to the analysis payload when using custom data, and this fix makes sure that variants are added to the clin payload whenever the gene list is updated.  Specifically, this PR adresses addresses https://github.com/iobio/clin.iobio/issues/225 and https://github.com/iobio/clin.iobio/issues/194

quarantest build successful. Demo link at
http://92c02cde.quarantest.iobio.io

quarantest build successful. Demo link at
http://aa5bacac.quarantest.iobio.io

I have tried this PR locally and works as expected with clin.iobio. The variant badge is updating correctly.


segmentation fault when executing ./test.sh mini

Commit: a3b25de4b1d68584d3027c0a0aa3da93bb571959
Program arguments: /home/songlh/workspace/rust/Angora/llvm_install/clang+llvm/bin/clang-7 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -disable-llvm-verifier -discard-value-names -main-file-name mini.c -mrelocation-model pic -pic-level 1 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debug-info-kind=limited -dwarf-version=4 -debugger-tuning=gdb -momit-leaf-frame-pointer -resource-dir /home/songlh/workspace/rust/Angora/llvm_install/clang+llvm/lib/clang/7.0.0 -U _FORTIFY_SOURCE -internal-isystem /usr/local/include -internal-isystem /home/songlh/workspace/rust/Angora/llvm_install/clang+llvm/lib/clang/7.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -fdebug-compilation-dir /home/songlh/workspace/rust/Angora/tests -ferror-limit 19 -fmessage-length 204 -fsanitize=address -fsanitize-blacklist=/home/songlh/workspace/rust/Angora/llvm_install/clang+llvm/lib/clang/7.0.0/share/asan_blacklist.txt -fsanitize-address-use-after-scope -fno-assume-sane-operator-new -funroll-loops -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -load ../bin//pass/libUnfoldBranchPass.so -load ../bin//pass/libAngoraPass.so -mllvm -angora-dfsan-abilist=../bin//rules/angora_abilist.txt -mllvm -angora-dfsan-abilist=../bin//rules/dfsan_abilist.txt -mllvm -angora-exploitation-list=../bin//rules/exploitation_list.txt -o /tmp/mini-269212.o -x c mini/mini.c -faddrsig
clang-7: error: unable to execute command: Segmentation fault
clang-7: error: clang frontend command failed due to signal (use -v to see invocation)

Hi @songlh,  Thanks for your feedback.
Sorry that I just found there are compatibilities issue in old version Cmake, I have submitted committing https://github.com/AngoraFuzzer/Angora/commit/ac3135fe3c3ef832f767ac56dbf5471f65bdb229 and https://github.com/AngoraFuzzer/Angora/commit/92fba70194879075ad9000eb329e23e62c81acf2 to fix it.
Please try it.
If you still fails to run it, please feedback to me or try the 1.2.0 version in release page, which used makefile to compile directly.


The toplevel module version commit should only happen if the release succeeds

Currently the release action updates the toplevel module version and then calls the release plugin. This can cause problems if the release fails because the commit will have been made. The version update should be done as part of the release plugin work if possible. It is updating the submodule versions.

We should probably also allow the release plugin to push (version bump) commits and tags itself, instead of pushing manually

For release of child modules of main, pass-core and pass support it works like:

Update parent dependency to release version
Commit pom change
Release plugin prepare
Release plugin perform in release profile
Update parent pom to new dev version (submodules should be at dev version)
Commit pom change and push all changes
Create docker image for dev by running maven deploy with release profile
Push git tags
Push docker images

build.plugins.plugin.version' for org.apache.maven.plugins:maven-deploy-plugin is missing


Add Workshops page to navbar

Workshops page hasn't been added yet to the navbar. Would like to get one on there by 7pm (2/5) PT.

fixed by #138.


Update index.md

Can you also fix the link to point to a location where the plugin is moved into

@Xantier I dont understand what you mean.

Mentioned in this comment: https://roadiehq.slack.com/archives/C04RMF85203/p1683206048358559

I still dont think I understand. I have added the app-selector annotation also.


Attach MarkedSource and doc nodes to the abs nodes covering generics. [phab:D1430]

Created by zarko at 2017-03-16 21:50:28:
Since #1501 is still unresolved, generics may appear to be missing
documentation or MarkedSource. Fix that and start toward addressing
the task.

zarko wrote at 2017-03-22 19:45:06:
rebase

fromberger accepted this revision at 2017-03-22 22:54:23

zarko closed via commit a413f1770630b8ca28aea2613fe071bef948c90d at 2017-03-22 22:55:47


Unable to return 1 million person objects

As the new release is LargePersonGroup which can cater up to 1 million person objects per large person group, then why is it still only able to return 1000 person objects instead of 1 million person objects for the top parameter in ListPersonsInLargePersonGroupAsync method if my start parameter is 0?  Example "start=0&top=100 000 000"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: b48c55ea-82db-8f0f-0b39-da29a66df5c9
Version Independent ID: 5b302d2e-bcd8-03a0-fac3-24c306f2b614
Content: Use the Large-Scale Feature in the Face API - Microsoft Cognitive Services
Content Source: articles/cognitive-services/Face/Face-API-How-to-Topics/how-to-use-large-scale.md
Service: cognitive-services
GitHub Login: @SteveMSFT
Microsoft Alias: sbowles

Hi @YeeSuan95,
Return 1000 persons is by design as the valid scope for top is [1, 1000].
Please refer to the API Reference below and see more information in the Request parameters section.
Setting top to 1,000,000 will return an error.
https://westus.dev.cognitive.microsoft.com/docs/services/563879b61984550e40cbbe8d/operations/599adda06ac60f11b48b5aa1
Thanks!

Hi @SteveMSFT ,
I had read the document before posting my enquiry about this. In the future, does the design will still only be returning maximum 1000 entries?
If the maximum is still 1000 entries for ListPersonsInLargePersonGroupAsync method, does that mean I have to loop around until it reaches the maximum of person objects in my cloud storage?

Hi @YeeSuan95,
The return of 1,000,000 entries is not a practical response. This is related to the limitation of the Azure Query which only return a maximum of 1,000 entities [1].
[1] https://docs.microsoft.com/en-us/rest/api/storageservices/Query-Entities?redirectedfrom=MSDN#remarks
Thanks!

Alright.
Thanks @SteveMSFT !


Devops build task elevated

How does one run the devops build task inline script as elevated? I seem to be getting hit with access denied errors when installing RSAT as part of my inline script

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 021a6939-d8c6-29ea-2194-770c5d5cd39a
Version Independent ID: e0d48667-9d39-3af3-b821-b1b8c788ef57
Content: Azure Image Builder Service DevOps Task - Azure Virtual Machines
Content Source: articles/virtual-machines/linux/image-builder-devops-task.md
Service: virtual-machines
Sub-service: image-builder
GitHub Login: @danielsollondon
Microsoft Alias: danis

@AzureAzim -
Thanks for brining this to our attention. We will investigate it further and update you shortly.

Hey, @AzureAzim this is not supported in the task. If you'd like to do this you must use a template, see the example here:
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/image-builder-virtual-desktop

@kof-f - Thank you for providing your insights.
@AzureAzim  - I hope @kof-f has answered your question.
At this moment, Since there is no doc update required, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue..


I can't find the file.['diffusers']

May I ask where the file named diffusers is? thanks

Hi @HkDzl, the diffusers library should come from the requirements here. It should install with pip install -e ..


Captions where VTT is hosted on another site

I know this is really not your issue, but am wondering if you have suggestions. My VTT caption file is stored on amazon CDN andmy video is playing from my website (different domain).
So when the video tries to load I get
Unsafe attempt to load URL https://s3.amazonaws.com/blahblah/file_uploads/242683/attachments/5a2/2fe/5f3/Attention.txt from frame with URL https://mydomain.com/. Domains, protocols and ports must match.
Is there any other option to pass in the VTT text?

Hey, you need to add the crossorigin attribute. Also, the VTT files require the .vtt extension and text/vtt mime-type.

Where do you ad the crossorigin attribute when using the Plyr?


Panic in fastanvil::decompress_chunk if the chunk data is corrupted

I have been trying to read freshly generated minecraft 1.17 worlds, and sometimes I get this error:

thread 'main' panicked at 'called Result::unwrap() on an Err value: Custom { kind: InvalidInput, error: "corrupt deflate stream" }'

It's this unwrap:
https://github.com/owengage/fastnbt/blob/e9ff8035ac8863c242ec8de08da5b48e11367caa/fastanvil/src/lib.rs#L221
I don't know yet if the cause is related to the 1.17 version or it's just that my worlds are all corrupted, but I would like to be able to handle this error in my application by printing a warning and continuing with the next chunk.

I'm currently using this as a workaround:
    decoder.read_to_end(&mut outbuf).unwrap_or_else(|_e| {
        outbuf.clear();
        // In case of error, report 0 bytes read
        0
    });

Hey, this is a pretty old part of the codebase that I really need to go revisit and clean up.
If you're using the RegionBuffer object directly, then load_chunk on master should now return an fastnbt::Error::IO error. Hopefully that's enough of a workaround for you until I get around to cleaning that up more thoroughly.
Master also has a few fixes for 1.17's reverted height changes that you might want too.

Also, if it's possible, I'd be interested in looking at the region file with the corruption, I'd like to start building a corpus of difficult to handle files for testing. No worries if you can't!

Thanks! Will try the master branch later. As for the corruption, I discovered that it was simply because I was running out of disk space. But I collected the input data to use in a test, here it is:
let input_data = vec![0, 0, 24, 0, 2, 120, 156, 237, 93, 91, 108, 27, 87, 122, 30, 74, 148, 77, 201, 146, 77, 202, 178, 192, 52, 121, 48, 71, 209, 173, 64, 0, 93, 188, 222, 117, 177, 185, 112, 68, 201, 182, 162, 218, 150, 108, 38, 89, 247, 162, 80, 20, 105, 179, 166, 72, 133, 164, 34, 199, 8, 130, 173, 66, 56, 180, 65, 44, 90, 64, 40, 228, 34, 232, 174, 47, 202, 110, 211, 164, 55, 32, 47, 27, 20, 136, 157, 64, 201, 67, 187, 112, 251, 144, 167, 149, 225, 180, 1, 154, 23, 211, 78, 176, 15, 217, 34, 176, 250, 159, 153, 51, 228, 204, 112, 14, 207, 28, 159, 217, 141, 129, 156, 63, 72, 126, 158, 219, 247, 125, 231, 63, 231, 204, 156, 57, 28, 70, 109, 146, 212, 38, 181, 76, 37, 94, 78, 164, 125, 210, 182, 227, 133, 88, 97, 41, 47, 121, 147, 75, 233, 116, 179, 228, 61, 119, 44, 155, 151, 36, 169, 215, 43, 181, 77, 197, 242, 133, 232, 226, 124, 172, 144, 144, 52, 235, 220, 33, 109, 83, 82, 217, 133, 4, 212, 240, 162, 12, 111, 131, 127, 31, 181, 124, 126, 212, 242, 249, 81, 209, 94, 180, 23, 237, 69, 123, 209, 94, 180, 23, 237, 69, 123, 209, 94, 180, 23, 237, 69, 123, 209, 94, 180, 23, 237, 31, 254, 246, 94, 169, 227, 112, 230, 116, 108, 46, 85, 72, 204, 159, 72, 45, 232, 135, 4, 82, 179, 228, 61, 123, 44, 155, 223, 218, 218, 250, 191, 54, 169, 237, 80, 34, 117, 234, 116, 97, 33, 182, 152, 111, 151, 118, 28, 29, 27, 15, 31, 153, 157, 152, 58, 122, 116, 6, 42, 246, 6, 124, 243, 74, 200, 95, 26, 219, 245, 73, 81, 9, 117, 149, 199, 119, 125, 252, 249, 72, 168, 235, 226, 120, 160, 116, 109, 110, 56, 88, 122, 218, 255, 201, 181, 153, 3, 193, 139, 145, 192, 161, 143, 148, 189, 223, 188, 246, 116, 224, 208, 231, 185, 193, 96, 121, 34, 224, 123, 253, 203, 175, 191, 57, 31, 129, 122, 51, 195, 93, 165, 200, 174, 143, 255, 231, 171, 64, 251, 249, 131, 1, 95, 49, 252, 181, 90, 239, 90, 248, 183, 128, 3, 249, 80, 15, 240, 14, 34, 255, 218, 211, 168, 222, 96, 215, 79, 38, 180, 252, 215, 16, 126, 238, 192, 99, 23, 81, 254, 151, 191, 245, 157, 31, 3, 252, 185, 129, 111, 206, 61, 141, 116, 60, 210, 85, 26, 15, 28, 186, 250, 229, 23, 90, 189, 153, 65, 63, 194, 187, 250, 153, 134, 95, 28, 86, 241, 14, 94, 69, 58, 198, 48, 222, 147, 88, 135, 150, 190, 119, 238, 73, 157, 7, 252, 245, 47, 126, 131, 112, 230, 71, 30, 105, 135, 244, 246, 215, 255, 243, 246, 189, 179, 79, 86, 113, 182, 191, 126, 253, 246, 189, 243, 17, 191, 90, 255, 220, 15, 33, 253, 95, 143, 128, 126, 136, 145, 231, 139, 223, 156, 251, 97, 187, 244, 200, 31, 31, 61, 113, 248, 232, 145, 89, 101, 234, 232, 216, 179, 135, 143, 28, 156, 61, 114, 116, 118, 106, 60, 252, 220, 248, 113, 20, 71, 3, 143, 213, 127, 53, 160, 250, 207, 195, 166, 252, 79, 62, 68, 113, 177, 171, 255, 160, 254, 171, 161, 186, 252, 87, 77, 233, 123, 38, 29, 31, 126, 102, 106, 255, 198, 135, 70, 188, 167, 76, 56, 95, 191, 106, 76, 127, 118, 239, 107, 84, 191, 218, 14, 210, 134, 114, 45, 173, 243, 63, 165, 166, 191, 41, 61, 141, 226, 136, 234, 181, 75, 187, 44, 113, 124, 120, 103, 225, 171, 166, 89, 120, 207, 52, 11, 63, 52, 207, 66, 53, 122, 213, 89, 248, 148, 105, 22, 218, 68, 175, 58, 11, 113, 244, 12, 56, 144, 214, 103, 161, 26, 189, 255, 214, 103, 161, 22, 189, 142, 231, 143, 206, 76, 69, 102, 143, 71, 103, 38, 194, 99, 227, 182, 177, 251, 196, 219, 32, 118, 63, 102, 142, 157, 127, 187, 227, 216, 125, 229, 121, 40, 98, 247, 185, 199, 46, 118, 82, 171, 212, 126, 34, 149, 78, 140, 103, 10, 169, 66, 10, 157, 159, 162, 18, 169, 53, 149, 159, 66, 151, 199, 163, 25, 79, 171, 212, 138, 42, 156, 72, 197, 207, 228, 219, 160, 108, 169, 89, 242, 44, 106, 151, 83, 79, 1, 174, 165, 91, 224, 207, 130, 251, 123, 159, 228, 73, 73, 221, 11, 169, 76, 34, 158, 139, 37, 11, 127, 52, 151, 202, 197, 79, 207, 166, 19, 177, 151, 19, 121, 168, 243, 10, 52, 81, 192, 159, 147, 164, 166, 105, 201, 5, 144, 227, 60, 32, 99, 24, 228, 152, 27, 32, 68, 37, 111, 51, 116, 135, 168, 132, 5, 228, 4, 15, 8, 53, 38, 44, 32, 92, 74, 34, 180, 121, 194, 2, 194, 53, 58, 227, 24, 100, 134, 4, 242, 15, 110, 12, 49, 11, 8, 49, 176, 78, 64, 168, 67, 204, 2, 194, 165, 132, 58, 196, 44, 32, 196, 33, 118, 2, 50, 238, 134, 146, 113, 154, 146, 119, 220, 152, 39, 44, 32, 196, 209, 113, 2, 66, 157, 39, 44, 32, 92, 74, 244, 33, 38, 46, 64, 22, 16, 174, 209, 161, 94, 10, 222, 117, 227, 14, 200, 2, 66, 12, 172, 19, 144, 49, 55, 148, 80, 135, 152, 229, 54, 202, 117, 181, 167, 6, 150, 229, 26, 75, 4, 97, 89, 128, 92, 32, 212, 152, 176, 236, 148, 136, 51, 150, 101, 116, 136, 32, 44, 163, 195, 117, 27, 165, 46, 64, 150, 209, 113, 101, 21, 115, 129, 184, 26, 88, 174, 59, 32, 21, 132, 37, 176, 68, 16, 150, 192, 114, 129, 184, 178, 45, 167, 222, 119, 214, 29, 128, 132, 49, 200, 11, 110, 128, 156, 228, 1, 81, 220, 80, 162, 208, 148, 188, 197, 208, 157, 231, 221, 0, 249, 19, 30, 16, 197, 13, 37, 138, 27, 74, 198, 104, 163, 195, 2, 194, 53, 58, 250, 180, 255, 17, 9, 228, 231, 110, 12, 49, 11, 8, 49, 176, 78, 64, 168, 67, 204, 2, 194, 165, 132, 58, 196, 44, 32, 196, 33, 118, 2, 18, 113, 67, 73, 132, 166, 228, 23, 110, 204, 19, 22, 16, 226, 232, 56, 1, 161, 206, 19, 22, 16, 46, 37, 250, 16, 19, 23, 160, 19, 16, 234, 42, 118, 178, 241, 163, 142, 14, 11, 8, 49, 38, 44, 251, 88, 226, 140, 101, 1, 113, 229, 230, 197, 181, 118, 168, 32, 44, 211, 158, 11, 196, 149, 192, 186, 186, 201, 33, 206, 88, 150, 253, 9, 17, 132, 101, 136, 185, 238, 128, 212, 5, 200, 50, 196, 174, 172, 98, 46, 16, 87, 3, 203, 117, 243, 162, 130, 176, 4, 150, 11, 132, 122, 61, 97, 25, 29, 174, 139, 18, 245, 150, 113, 153, 1, 36, 234, 6, 8, 241, 82, 224, 4, 68, 95, 59, 207, 185, 1, 66, 140, 201, 21, 55, 98, 194, 2, 194, 165, 36, 226, 134, 18, 87, 98, 50, 78, 27, 29, 22, 16, 226, 60, 113, 2, 50, 209, 76, 217, 159, 92, 117, 99, 136, 89, 64, 136, 129, 117, 2, 66, 29, 98, 22, 16, 46, 37, 212, 33, 102, 1, 33, 14, 177, 19, 144, 9, 55, 148, 76, 208, 148, 92, 115, 99, 158, 176, 128, 16, 71, 199, 9, 8, 117, 158, 176, 128, 112, 41, 209, 135, 152, 184, 0, 157, 128, 80, 87, 177, 147, 141, 31, 117, 116, 88, 64, 184, 182, 160, 212, 209, 97, 1, 225, 186, 141, 234, 221, 225, 186, 80, 83, 65, 88, 46, 143, 68, 16, 150, 181, 195, 5, 66, 221, 90, 176, 204, 19, 46, 16, 87, 54, 57, 186, 18, 226, 218, 97, 217, 41, 17, 65, 88, 230, 9, 215, 189, 152, 122, 41, 96, 153, 39, 174, 92, 79, 184, 64, 168, 129, 101, 25, 29, 174, 157, 18, 117, 91, 206, 178, 138, 93, 185, 141, 114, 129, 80, 99, 194, 50, 196, 92, 129, 117, 229, 14, 168, 63, 3, 254, 25, 15, 136, 66, 3, 97, 57, 132, 225, 2, 113, 69, 137, 62, 58, 127, 238, 198, 2, 156, 117, 227, 212, 130, 216, 29, 150, 47, 137, 184, 64, 168, 49, 97, 249, 126, 135, 8, 194, 114, 8, 67, 236, 14, 203, 183, 42, 92, 32, 212, 152, 176, 28, 214, 17, 231, 9, 203, 153, 18, 81, 9, 203, 153, 18, 215, 165, 128, 170, 132, 229, 122, 194, 181, 0, 169, 74, 88, 22, 160, 43, 51, 214, 149, 209, 225, 10, 172, 174, 132, 56, 217, 88, 70, 135, 8, 194, 50, 58, 92, 151, 71, 234, 218, 97, 25, 29, 87, 22, 32, 23, 136, 43, 129, 29, 115, 35, 38, 84, 16, 150, 251, 14, 241, 53, 78, 22, 16, 226, 235, 52, 44, 55, 47, 34, 8, 203, 45, 131, 11, 196, 21, 37, 17, 90, 96, 89, 64, 136, 239, 248, 57, 1, 161, 190, 189, 204, 50, 237, 137, 49, 97, 249, 230, 154, 11, 132, 26, 88, 22, 16, 226, 187, 91, 78, 64, 198, 221, 80, 66, 125, 101, 209, 201, 151, 68, 212, 152, 176, 128, 112, 41, 161, 78, 54, 150, 95, 136, 112, 189, 247, 72, 157, 108, 44, 23, 37, 174, 85, 76, 189, 198, 178, 44, 64, 174, 33, 118, 245, 106, 79, 28, 98, 150, 192, 114, 93, 217, 168, 74, 88, 22, 160, 43, 51, 150, 43, 38, 212, 119, 134, 89, 2, 75, 4, 97, 9, 44, 23, 8, 85, 9, 203, 180, 231, 122, 45, 220, 149, 87, 229, 169, 247, 226, 159, 49, 108, 65, 137, 11, 144, 5, 132, 248, 147, 10, 39, 32, 212, 75, 1, 11, 8, 151, 18, 234, 232, 176, 128, 16, 175, 246, 78, 64, 92, 25, 98, 234, 47, 137, 156, 28, 234, 82, 231, 9, 11, 8, 113, 116, 52, 144, 174, 26, 72, 54, 118, 134, 113, 150, 56, 209, 65, 157, 37, 44, 223, 100, 16, 199, 134, 5, 132, 107, 108, 168, 251, 36, 39, 231, 194, 212, 1, 102, 1, 33, 6, 214, 9, 8, 245, 38, 202, 2, 194, 181, 252, 194, 52, 37, 44, 147, 158, 171, 59, 84, 16, 150, 11, 1, 113, 158, 176, 116, 199, 149, 201, 198, 5, 66, 189, 19, 179, 12, 177, 43, 23, 71, 34, 8, 75, 76, 184, 148, 80, 183, 56, 78, 126, 140, 68, 189, 235, 176, 128, 16, 47, 5, 255, 232, 198, 211, 14, 11, 8, 151, 18, 234, 3, 45, 11, 8, 151, 18, 234, 227, 1, 11, 8, 113, 178, 57, 1, 209, 191, 252, 38, 78, 182, 127, 114, 99, 136, 89, 64, 136, 129, 117, 2, 66, 29, 98, 22, 16, 46, 37, 212, 33, 102, 1, 33, 14, 177, 19, 144, 9, 55, 148, 76, 208, 148, 176, 172, 98, 46, 37, 174, 252, 128, 156, 122, 27, 101, 233, 14, 215, 218, 161, 46, 64, 150, 238, 184, 50, 58, 92, 147, 141, 10, 194, 242, 43, 116, 174, 95, 92, 83, 149, 176, 92, 99, 185, 182, 91, 212, 205, 48, 253, 145, 137, 122, 133, 189, 194, 255, 212, 69, 135, 160, 170, 184, 202, 175, 130, 14, 65, 85, 113, 141, 95, 5, 29, 130, 170, 98, 157, 95, 197, 223, 185, 241, 204, 199, 2, 66, 188, 227, 57, 1, 161, 78, 115, 22, 16, 226, 170, 253, 169, 27, 49, 97, 1, 33, 198, 196, 9, 8, 117, 136, 89, 64, 184, 148, 80, 175, 169, 44, 32, 92, 163, 67, 189, 247, 178, 204, 88, 226, 100, 99, 25, 98, 46, 16, 87, 166, 61, 245, 97, 154, 101, 237, 112, 13, 177, 43, 74, 168, 207, 193, 44, 74, 136, 32, 44, 74, 136, 63, 4, 102, 1, 33, 190, 20, 193, 50, 58, 92, 74, 168, 47, 138, 56, 1, 209, 87, 49, 241, 117, 47, 39, 32, 17, 26, 8, 203, 16, 19, 99, 194, 2, 66, 124, 63, 138, 101, 21, 255, 169, 27, 32, 68, 37, 44, 147, 141, 168, 132, 101, 158, 112, 117, 199, 21, 37, 212, 151, 54, 89, 148, 112, 129, 80, 223, 114, 100, 233, 14, 215, 16, 59, 156, 39, 141, 246, 142, 212, 147, 1, 58, 4, 245, 92, 192, 57, 4, 241, 103, 71, 116, 136, 131, 252, 42, 14, 242, 171, 56, 196, 15, 113, 152, 191, 35, 58, 4, 199, 160, 78, 210, 84, 252, 212, 241, 160, 82, 182, 17, 78, 32, 40, 59, 86, 39, 131, 202, 161, 226, 32, 191, 138, 67, 252, 42, 14, 209, 84, 56, 159, 157, 148, 103, 60, 39, 243, 130, 3, 130, 58, 47, 156, 119, 196, 133, 169, 69, 217, 90, 58, 81, 225, 194, 181, 211, 133, 65, 117, 97, 141, 112, 116, 68, 87, 225, 194, 85, 139, 235, 253, 47, 125, 79, 122, 148, 4, 194, 242, 134, 17, 23, 8, 85, 9, 203, 27, 70, 92, 32, 84, 37, 44, 111, 231, 113, 129, 80, 149, 208, 207, 14, 245, 231, 133, 35, 15, 14, 49, 78, 131, 160, 159, 29, 70, 104, 29, 161, 67, 140, 211, 32, 232, 103, 135, 212, 88, 208, 33, 168, 177, 160, 31, 63, 82, 7, 213, 249, 155, 60, 68, 21, 206, 79, 182, 57, 230, 5, 85, 133, 243, 65, 229, 24, 17, 170, 10, 231, 7, 194, 46, 12, 42, 199, 136, 80, 175, 24, 206, 7, 149, 227, 122, 65, 85, 225, 252, 235, 10, 142, 197, 78, 85, 225, 124, 94, 112, 64, 80, 59, 226, 124, 106, 17, 33, 156, 111, 21, 56, 32, 14, 243, 67, 76, 86, 33, 90, 37, 223, 241, 68, 188, 144, 202, 102, 208, 31, 8, 145, 2, 30, 201, 243, 163, 45, 169, 93, 218, 161, 164, 179, 241, 51, 232, 207, 56, 163, 191, 43, 226, 121, 78, 42, 134, 124, 138, 191, 24, 122, 248, 189, 236, 43, 106, 233, 224, 132, 191, 40, 123, 32, 255, 70, 192, 167, 72, 101, 181, 252, 47, 161, 220, 31, 9, 20, 123, 164, 213, 80, 240, 198, 80, 25, 234, 197, 33, 191, 44, 75, 197, 158, 160, 210, 9, 237, 74, 161, 129, 73, 140, 3, 245, 123, 164, 98, 216, 183, 226, 47, 134, 33, 223, 143, 240, 61, 222, 58, 94, 53, 31, 202, 3, 202, 49, 67, 254, 170, 94, 174, 248, 34, 184, 190, 134, 27, 26, 88, 217, 139, 188, 138, 27, 242, 20, 99, 62, 101, 111, 73, 65, 229, 145, 189, 37, 181, 94, 81, 229, 145, 125, 27, 129, 98, 12, 116, 249, 180, 126, 32, 157, 69, 69, 42, 133, 7, 34, 123, 141, 248, 125, 254, 149, 128, 55, 44, 173, 169, 58, 46, 35, 220, 27, 35, 94, 192, 13, 133, 86, 118, 7, 67, 210, 90, 223, 16, 212, 15, 131, 14, 255, 100, 160, 220, 211, 84, 92, 247, 109, 248, 139, 215, 129, 103, 72, 121, 113, 77, 110, 14, 66, 59, 121, 53, 228, 241, 41, 3, 147, 170, 254, 254, 1, 173, 63, 97, 127, 209, 95, 130, 184, 132, 253, 202, 143, 213, 126, 160, 180, 2, 253, 7, 190, 114, 28, 234, 7, 65, 31, 210, 21, 220, 64, 241, 41, 199, 125, 208, 47, 217, 163, 170, 42, 198, 60, 94, 37, 168, 12, 151, 123, 164, 210, 132, 127, 2, 225, 173, 65, 220, 247, 150, 32, 142, 16, 143, 33, 232, 95, 57, 238, 47, 199, 131, 215, 155, 130, 215, 135, 139, 1, 159, 44, 173, 221, 240, 71, 134, 202, 208, 110, 44, 56, 49, 84, 236, 243, 148, 123, 134, 166, 252, 107, 161, 230, 224, 70, 235, 202, 139, 69, 240, 215, 125, 147, 211, 197, 158, 166, 213, 203, 173, 55, 118, 7, 175, 3, 207, 240, 138, 127, 237, 134, 199, 23, 246, 21, 67, 93, 63, 247, 248, 100, 255, 69, 208, 239, 241, 29, 134, 180, 47, 236, 45, 201, 48, 238, 16, 215, 114, 79, 16, 210, 135, 165, 146, 236, 71, 60, 85, 125, 72, 63, 244, 167, 105, 245, 10, 202, 87, 154, 189, 40, 223, 167, 160, 242, 149, 206, 213, 183, 64, 135, 127, 42, 30, 4, 188, 141, 97, 52, 117, 164, 181, 235, 128, 139, 250, 29, 14, 110, 12, 173, 109, 128, 254, 0, 210, 223, 236, 189, 62, 188, 242, 98, 105, 12, 116, 250, 87, 134, 113, 92, 70, 189, 125, 208, 255, 161, 41, 84, 238, 11, 15, 175, 196, 124, 151, 61, 65, 208, 23, 66, 252, 97, 149, 199, 123, 1, 205, 6, 95, 88, 211, 227, 59, 172, 250, 213, 11, 147, 56, 173, 232, 190, 105, 21, 251, 146, 33, 95, 94, 93, 247, 180, 206, 13, 78, 206, 172, 66, 249, 91, 131, 17, 200, 111, 14, 66, 126, 239, 133, 57, 143, 239, 217, 23, 54, 134, 125, 19, 56, 190, 10, 214, 255, 44, 210, 167, 233, 7, 125, 195, 193, 13, 79, 187, 170, 127, 3, 197, 177, 12, 83, 208, 163, 150, 215, 120, 53, 31, 188, 97, 76, 175, 109, 12, 173, 123, 124, 227, 241, 182, 203, 72, 215, 219, 70, 93, 144, 175, 4, 144, 30, 79, 215, 186, 65, 31, 138, 239, 58, 210, 119, 69, 237, 71, 239, 187, 103, 64, 223, 201, 79, 255, 117, 117, 189, 229, 221, 57, 3, 79, 235, 25, 208, 223, 249, 233, 123, 239, 198, 61, 79, 156, 65, 250, 33, 63, 222, 233, 239, 81, 249, 65, 255, 19, 115, 158, 224, 13, 27, 125, 190, 27, 214, 120, 121, 90, 203, 241, 182, 105, 159, 178, 109, 104, 221, 152, 63, 142, 245, 189, 13, 250, 6, 39, 175, 172, 174, 131, 158, 193, 201, 105, 212, 15, 77, 47, 244, 3, 210, 173, 115, 53, 125, 103, 212, 114, 93, 31, 120, 164, 111, 14, 242, 79, 126, 10, 184, 45, 239, 24, 120, 81, 191, 90, 175, 156, 252, 244, 95, 234, 244, 41, 219, 15, 252, 74, 243, 198, 252, 254, 3, 191, 2, 222, 252, 155, 255, 107, 169, 63, 3, 113, 83, 245, 169, 243, 82, 215, 119, 224, 163, 80, 215, 122, 243, 155, 10, 30, 111, 208, 219, 3, 250, 46, 156, 57, 128, 226, 235, 241, 93, 169, 181, 127, 15, 233, 176, 209, 23, 122, 2, 233, 63, 249, 233, 123, 239, 40, 160, 223, 162, 207, 38, 174, 160, 15, 188, 170, 15, 244, 231, 139, 189, 239, 232, 229, 104, 252, 7, 39, 141, 227, 191, 170, 198, 25, 233, 51, 143, 191, 15, 244, 30, 127, 19, 149, 15, 64, 249, 21, 3, 254, 11, 200, 183, 252, 91, 147, 145, 247, 89, 228, 255, 230, 189, 159, 41, 158, 39, 96, 94, 168, 227, 63, 102, 55, 222, 99, 200, 95, 252, 254, 129, 27, 106, 252, 62, 83, 245, 45, 170, 253, 248, 129, 114, 18, 197, 201, 160, 223, 174, 189, 209, 215, 198, 191, 190, 28, 233, 253, 65, 125, 126, 168, 25, 249, 191, 26, 125, 19, 205, 79, 24, 23, 107, 121, 59, 90, 95, 126, 52, 127, 155, 96, 253, 25, 198, 127, 92, 29, 255, 25, 180, 254, 198, 7, 54, 190, 95, 139, 111, 11, 93, 39, 201, 171, 252, 16, 247, 186, 248, 156, 71, 241, 195, 252, 166, 118, 234, 245, 105, 44, 184, 81, 95, 142, 117, 67, 121, 123, 220, 166, 92, 235, 87, 109, 190, 51, 232, 124, 204, 144, 94, 111, 7, 63, 105, 199, 143, 117, 35, 125, 100, 126, 85, 95, 89, 47, 95, 52, 140, 143, 126, 93, 187, 236, 127, 128, 56, 66, 127, 6, 144, 135, 213, 215, 62, 231, 25, 180, 139, 79, 171, 19, 125, 65, 186, 190, 242, 34, 148, 255, 65, 192, 99, 238, 55, 73, 87, 41, 12, 243, 8, 165, 208, 58, 243, 95, 156, 89, 251, 168, 125, 174, 101, 176, 124, 118, 99, 196, 95, 68, 247, 31, 168, 162, 221, 47, 122, 7, 255, 26, 124, 231, 85, 116, 95, 110, 27, 118, 24, 63, 99, 185, 73, 95, 240, 99, 164, 239, 39, 254, 154, 62, 237, 190, 54, 56, 25, 170, 221, 143, 116, 157, 160, 111, 175, 230, 87, 212, 52, 232, 123, 102, 3, 110, 181, 219, 203, 241, 16, 90, 170, 72, 191, 119, 125, 176, 140, 226, 123, 137, 168, 175, 109, 184, 241, 252, 43, 219, 197, 215, 102, 94, 151, 213, 237, 176, 4, 98, 90, 165, 237, 199, 98, 233, 68, 161, 144, 64, 219, 218, 78, 159, 228, 61, 18, 91, 72, 72, 29, 181, 77, 113, 44, 149, 147, 244, 236, 128, 225, 224, 38, 49, 159, 131, 157, 111, 181, 104, 87, 173, 40, 95, 200, 102, 18, 82, 155, 212, 118, 44, 151, 93, 76, 228, 208, 159, 220, 131, 90, 177, 179, 169, 60, 218, 85, 235, 13, 118, 215, 26, 204, 39, 18, 139, 249, 52, 108, 161, 237, 136, 230, 83, 217, 92, 202, 80, 212, 105, 144, 150, 153, 79, 228, 141, 101, 254, 90, 217, 169, 28, 236, 227, 211, 86, 21, 205, 233, 84, 65, 106, 73, 198, 210, 249, 90, 35, 195, 105, 84, 46, 49, 175, 138, 159, 205, 230, 108, 9, 83, 185, 108, 198, 84, 182, 199, 168, 51, 182, 144, 205, 204, 155, 138, 3, 38, 61, 25, 163, 212, 157, 181, 162, 194, 82, 50, 105, 199, 22, 207, 198, 210, 36, 37, 167, 178, 105, 141, 202, 210, 193, 150, 116, 2, 117, 219, 51, 100, 71, 148, 142, 189, 28, 171, 230, 63, 102, 19, 255, 217, 186, 14, 238, 52, 118, 48, 87, 104, 220, 186, 42, 24, 61, 29, 73, 219, 165, 54, 245, 225, 72, 253, 35, 139, 18, 180, 20, 38, 76, 216, 119, 197, 182, 182, 84, 119, 207, 226, 127, 231, 118, 111, 203, 150, 127, 235, 187, 194, 175, 219, 183, 21, 127, 97, 194, 8, 86, 119, 92, 42, 201, 178, 28, 25, 29, 145, 67, 224, 229, 81, 89, 14, 69, 163, 51, 232, 99, 79, 52, 26, 181, 248, 25, 121, 89, 238, 139, 163, 132, 252, 114, 50, 169, 250, 62, 236, 147, 102, 223, 135, 125, 210, 198, 35, 56, 205, 207, 244, 225, 124, 5, 254, 85, 249, 145, 215, 232, 17, 159, 201, 143, 206, 104, 249, 163, 90, 181, 62, 92, 61, 57, 231, 68, 7, 242, 8, 23, 243, 170, 254, 248, 247, 162, 51, 224, 230, 100, 179, 245, 232, 126, 198, 236, 49, 111, 213, 91, 173, 31, 235, 233, 199, 122, 100, 147, 7, 25, 189, 88, 38, 226, 71, 30, 241, 247, 213, 209, 215, 235, 32, 120, 2, 127, 213, 19, 173, 23, 7, 56, 138, 7, 90, 181, 18, 193, 175, 208, 208, 92, 50, 126, 254, 1, 90, 133, 17, 139, 191, 100, 40, 187, 36, 243, 218, 227, 117, 252, 53, 62, 197, 150, 127, 196, 80, 247, 82, 127, 206, 33, 207, 21, 205, 253, 97, 29, 191, 98, 246, 128, 143, 63, 142, 62, 78, 231, 151, 129, 95, 145, 205, 166, 88, 60, 230, 239, 197, 252, 189, 84, 169, 143, 155, 147, 54, 252, 196, 176, 247, 226, 153, 9, 107, 63, 106, 235, 103, 170, 190, 215, 88, 223, 161, 97, 222, 193, 42, 191, 222, 190, 55, 90, 229, 181, 240, 247, 218, 235, 136, 154, 117, 68, 157, 233, 96, 225, 183, 232, 168, 243, 58, 175, 10, 129, 248, 113, 147, 154, 159, 49, 167, 235, 173, 126, 233, 24, 226, 111, 245, 85, 62, 163, 239, 125, 97, 197, 202, 167, 84, 121, 159, 55, 228, 71, 113, 26, 221, 84, 114, 216, 203, 3, 43, 218, 85, 107, 96, 101, 121, 89, 93, 7, 165, 229, 101, 181, 201, 114, 213, 19, 181, 87, 155, 202, 209, 28, 246, 8, 127, 160, 168, 152, 188, 92, 227, 5, 223, 139, 92, 255, 178, 230, 81, 89, 191, 198, 251, 6, 38, 124, 3, 235, 192, 201, 229, 106, 210, 184, 74, 245, 132, 230, 87, 228, 231, 151, 49, 191, 201, 23, 129, 55, 167, 134, 56, 154, 135, 187, 44, 240, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
// Panics
decompress_chunk(&input_data);

Confirmed that the fix is working, so I'm closing this.
If you want I can help you setup cargo fuzz to make sure that your code never panics.

Excellent. Cargo fuzz sounds like a great idea and I'd love help putting that together.
I've never fuzz tested anything before, but looking at it a bit I imagine a few good targets would be

region parsing
chunk parsing
nbt deserializer to a generic value

I think the last one would probably be the simplistic to do.


Following Awesome guidelines

What's the issue?
I'm the author of this pr to update the Awesome Mastodon link to this fork, but what I didn't know is that some guidelines here are not followed (blocking the PR).
Should things be updated to fix this?

Thanks for trying to get it into the list. I ran the awesome-lint linter and it threw out a lot of issues, some of which seem a little pedantic:
README.md:522:1
  ✖    1:1    Missing Awesome badge after the main heading                                     remark-lint:awesome-badge
  ✖    9:1    https://joinmastodon.org                                                         remark-lint:double-link
  ✖   15:101  #official                                                                        remark-lint:double-link
  ✖   21:3    #official                                                                        remark-lint:double-link
  ✖   25:1    ToC item "Browser Extensions" does not match corresponding heading "Extensions"  remark-lint:awesome-toc
  ✖   37:3    https://joinmastodon.org                                                         remark-lint:double-link
  ✖   46:38   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   47:39   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   48:30   https://m.webtoo.ls/@elk                                                         remark-lint:double-link
  ✖   48:104  https://github.com/elk-zone/elk                                                  remark-lint:double-link
  ✖   50:66   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   52:47   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   52:49   https://kaiteki.app/                                                             remark-lint:double-link
  ✖   52:84   https://floss.social/@Kaiteki                                                    remark-lint:double-link
  ✖   52:129  https://github.com/Kaiteki-Fedi/Kaiteki                                          remark-lint:double-link
  ✖   53:38   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   54:35   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   55:39   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   56:43   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   58:47   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   58:49   https://nicolasconstant.github.io/sengi/                                         remark-lint:double-link
  ✖   58:104  https://mastodon.social/@sengi_app                                               remark-lint:double-link
  ✖   58:154  https://nicolasconstant.github.io/sengi/                                         remark-lint:double-link
  ✖   59:36   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   60:38   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   60:40   https://thedesk.top/en/                                                          remark-lint:double-link
  ✖   60:78   https://2m.cutls.com/@Cutls                                                      remark-lint:double-link
  ✖   60:121  https://github.com/cutls/TheDesk                                                 remark-lint:double-link
  ✖   61:41   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   62:41   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   62:43   https://mstdn.social/@trunksapp                                                  remark-lint:double-link
  ✖   69:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖   69:133  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖   73:79   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   77:62   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   79:62   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   79:64   https://kaiteki.app/                                                             remark-lint:double-link
  ✖   79:99   https://floss.social/@Kaiteki                                                    remark-lint:double-link
  ✖   79:144  https://github.com/Kaiteki-Fedi/Kaiteki                                          remark-lint:double-link
  ✖   81:85   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   81:87   https://joinmastodon.org/apps                                                    remark-lint:double-link
  ✖   81:131  https://mastodon.social/@Mastodon                                                remark-lint:double-link
  ✖   82:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   83:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   83:5    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   86:60   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   87:89   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   88:79   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   88:82   https://tooot.app/                                                               remark-lint:double-link
  ✖   88:115  https://github.com/tooot-app/app                                                 remark-lint:double-link
  ✖   89:79   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   89:81   https://mstdn.social/@trunksapp                                                  remark-lint:double-link
  ✖   91:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   92:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   92:5    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   92:78   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   93:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   93:76   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   94:81   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   95:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖   95:71   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖   95:73   https://x.twidere.com/                                                           remark-lint:double-link
  ✖  104:73   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  107:74   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  108:73   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  109:3    https://apps.apple.com/us/app/mast-for-mastodon/id1437429129                     remark-lint:double-link
  ✖  109:85   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  110:77   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  110:79   https://joinmastodon.org/apps                                                    remark-lint:double-link
  ✖  110:123  https://mastodon.social/@Mastodon                                                remark-lint:double-link
  ✖  112:64   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  113:90   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  114:66   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  115:66   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  115:68   https://mastodon.social/@MonaApp                                                 remark-lint:double-link
  ✖  116:54   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  117:79   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  118:60   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  118:62   https://tooot.app/                                                               remark-lint:double-link
  ✖  118:95   https://github.com/tooot-app/app                                                 remark-lint:double-link
  ✖  119:59   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  120:54   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  120:56   https://2m.cutls.com/@Cutls                                                      remark-lint:double-link
  ✖  121:77   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  122:88   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  123:66   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  124:67   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  125:68   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  125:70   https://mstdn.social/@trunksapp                                                  remark-lint:double-link
  ✖  126:62   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  127:3    https://apps.apple.com/app/twidere-x/id1530314034                                remark-lint:double-link
  ✖  127:65   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  127:67   https://x.twidere.com/                                                           remark-lint:double-link
  ✖  127:104  https://github.com/TwidereProject/TwidereX-iOS                                   remark-lint:double-link
  ✖  128:81   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  132:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  132:50   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  141:64   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  141:66   https://m.webtoo.ls/@elk                                                         remark-lint:double-link
  ✖  141:106  https://github.com/elk-zone/elk                                                  remark-lint:double-link
  ✖  142:36   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  144:69   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  145:62   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  145:64   https://nicolasconstant.github.io/sengi/                                         remark-lint:double-link
  ✖  145:119  https://mastodon.social/@sengi_app                                               remark-lint:double-link
  ✖  145:169  https://nicolasconstant.github.io/sengi/                                         remark-lint:double-link
  ✖  146:55   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  146:57   https://thedesk.top/en/                                                          remark-lint:double-link
  ✖  146:95   https://2m.cutls.com/@Cutls                                                      remark-lint:double-link
  ✖  146:138  https://github.com/cutls/TheDesk                                                 remark-lint:double-link
  ✖  147:75   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  147:77   https://x.twidere.com/                                                           remark-lint:double-link
  ✖  147:114  https://apps.apple.com/app/twidere-x/id1530314034                                remark-lint:double-link
  ✖  147:247  https://github.com/TwidereProject/TwidereX-iOS                                   remark-lint:double-link
  ✖  148:70   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  151:70   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  155:3    https://apps.apple.com/us/app/mast-for-mastodon/id1437429129                     remark-lint:double-link
  ✖  155:85   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  156:68   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  157:69   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  157:71   https://mastodon.social/@MonaApp                                                 remark-lint:double-link
  ✖  162:62   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  178:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  179:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  179:81   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  180:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  180:144  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  181:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  181:37   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  182:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  183:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  184:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  185:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  185:44   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  186:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  186:112  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  186:125  "’" is used without matching "‘"                                                 remark-lint:match-punctuation
  ✖  187:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  188:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  188:40   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  189:3    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  189:67   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  190:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  190:61   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  191:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  191:44   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  192:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  192:58   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  193:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  193:74   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  194:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  194:112  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  200:132  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  203:83   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  205:54   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  206:44   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  207:58   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  208:49   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  209:36   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  210:100  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  216:42   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  217:36   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  218:46   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  219:47   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  220:55   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  221:38   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  222:59   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  224:163  List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  224:248  "’" is used without matching "‘"                                                 remark-lint:match-punctuation
  ✖  229:34   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  230:48   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  231:54   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  232:60   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  233:45   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  239:65   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  240:36   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  241:48   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  242:38   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  243:39   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  244:48   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  248:39   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  251:62   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  252:40   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  260:75   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  261:50   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  262:60   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  266:74   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  268:80   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  269:88   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  274:44   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  275:40   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  276:66   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  280:88   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  281:81   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  282:73   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  283:38   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  284:96   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  285:88   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  289:34   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  290:71   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  291:40   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  292:72   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  293:70   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  294:45   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  298:91   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  300:59   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  301:75   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  304:54   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  308:197  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  328:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  328:70   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  329:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  329:34   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  330:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  330:25   "’" is used without matching "‘"                                                 remark-lint:match-punctuation
  ✖  331:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  331:26   "’" is used without matching "‘"                                                 remark-lint:match-punctuation
  ✖  332:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  333:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  334:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  334:77   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  335:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  336:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  340:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  341:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  342:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  343:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  347:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  347:122  List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  351:1    Marker style should be *                                                         remark-lint:unordered-list-marker-style
  ✖  357:3    https://joinmastodon.org/                                                        remark-lint:double-link
  ✖  358:79   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  359:58   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  362:37   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  363:41   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  364:52   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  365:57   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  368:67   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  369:36   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  375:70   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  376:67   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  381:35   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  397:79   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  398:65   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  399:63   List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  401:5    https://pixelfed.org/mobile-apps                                                 remark-lint:double-link
  ✖  401:51   https://mastodon.social/@pixelfed/                                               remark-lint:double-link
  ✖  404:75   https://pixelfed.org/mobile-apps                                                 remark-lint:double-link
  ✖  404:122  https://mastodon.social/@pixelfed/                                               remark-lint:double-link
  ✖  413:53   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  421:54   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  428:70   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  429:38   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  430:51   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  437:51   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  439:5    Text "Javascript" should be written as "JavaScript"                              remark-lint:awesome-spell-check
  ✖  441:53   Text "node.js" should be written as "Node.js"                                    remark-lint:awesome-spell-check
  ✖  445:56   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  449:54   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  450:43   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  454:52   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  458:48   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  462:48   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  466:53   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  473:33   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  474:51   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  476:35   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  479:40   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  480:32   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  481:63   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  487:106  List item link and description must be separated with a dash                     remark-lint:awesome-list-item
  ✖  492:50   List item description must end with proper punctuation                           remark-lint:awesome-list-item
  ✖  515:71   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  516:78   List item description must start with valid casing                               remark-lint:awesome-list-item
  ✖  522:1    Don’t add a trailing . to headings                                               remark-lint:no-heading-punctuation
  ✖  526:1    https://example.org                                                              remark-lint:double-link
  ✖  526:45   https://example.org                                                              remark-lint:double-link
  ✖  526:79   https://example.org                                                              remark-lint:double-link
  ✖  526:114  https://example.org                                                              remark-lint:double-link
  ✖  526:157  https://example.org                                                              remark-lint:double-link
  ✖  543:3    Invalid list item link                                                           remark-lint:awesome-list-item
  ✖  544:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖  545:3    Invalid list item                                                                remark-lint:awesome-list-item
  ✖  546:3    Invalid list item                                                                remark-lint:awesome-list-item

  284 errors

I'm not really inclined to spend time fixing each of these to bring the list in line with what seem to be quite extensive and rather opinionated guidelines, especially when I think some of the deviations are useful, such as the links to mobile apps and some of the double links.

I see, yeah there are a lot of rule violations. But are you saying you won't fix all of the issues? Because I think that is a requirement to be listed on the main awesome list.

I think some of the deviations improve the list and I don't see why the
guidelines have to be so prescriptive so I'm not inclined to spend much
time trying to comply.
But I'll accept PRs that resolve the formatting issues or that bring the
list in line whilst retaining the improvements (e.g. the direct links to
the mobile app stores).
On Sun, 13 Aug 2023, 19:26 Edwin Kofler, @.***> wrote:

I see, yeah there are a lot of rule violations. But are you saying you
won't fix all of the issues? Because I think that is a requirement to be
listed on the main awesome list.
—
Reply to this email directly, view it on GitHub
https://github.com/hueyy/awesome-mastodon/issues/45#issuecomment-1676327426,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABRYR4KBS5D7A53WGNMGKVDXVC2VXANCNFSM6AAAAAA3ONHAZY
.
You are receiving this because you commented.Message ID:
@.***>

Yeah there are some lints I maybe disagree with, but it's part of the requirements. I'm looking at the list and it seems you would also have to change your default branch to main, renaming LICENSE.md to either LICENSE or license, and probably others.

I guess that is your decision then to retain some improvements while violeting the admittedly strict awesome guidelines.


fix: #102 cannot create new issue when your repository doesn't have...

💪 Summary

cannot create new issue when your repository doesn't have any issue template #102

I fixed this issue.
🏁 Goals
to be able to create new issue when your repository doesn't have any issue template.
details of this problem are here.

LGTM!
Thanks


assets mobile landing page

Assets mobile landing page

Changes 👷♀

- mobile UI adjusted to the design
How to test 🧪

- test on UI
Definition of done ✔

[ ] Acceptance criteria for each issue met
[ ] Unit tests written where needed and passing
[ ] End-to-end tests for happy path
[ ] Documentation updated
[ ] Project builds without errors
[ ] Non-functional requirements met
[ ] Code reviewed and functionality tested by the reviewer (locally, Heroku, etc.)
[ ] Feature verified and accepted by Product Owner
[ ] Project deployed to production environment

can You add foull screenshots ? to see if it is in line with latest designs, parent branch is from October


Updates README.md

Added the option to visit localhost:5000 after starting foreman, considering port 3000 doesn't work for some. In reference to #495

This change is

Coverage remained the same at 82.305% when pulling 323dee3d9cf182cd58202155fa7097efaddc6524 on cubadomingo:patch-1 into 13f2cf0e83ee17040363872365cf702afbc1bbc2 on shakacode:master.


Add api and cli validation for kubevirt volume mode

This is follow up for the feedback in pr #2860

/lgtm
/thanks!

/hold

/lgtm


Conformance results for v1.16/KubeSphere

Pre-submission checklist:
Please check each of these after submitting your pull request:

[ ] If this is a new entry, have you submitted a signed participation form?
[ ] Did you include the product/project logo in SVG, EPS or AI format?
[ ] Does your logo clearly state the name of the product/project and follow the other logo guidelines?
[ ] If your product/project is open source, did you include the repo_url?
[ ] Did you copy and paste the installation and configuration instructions into the README.md file in addition to linking to them?

放在 QKE 目录下，不是 KubeSphere 目录，https://github.com/cncf/k8s-conformance/tree/master/v1.13/QKE


Total can receive count is wrong

Describe the bug
If one or more channels go offline, the "total can receive" amount in channels page doesn't subctract remote amount
Expected behavior
subtract remote amount
Screenshots

For example in this case total can receive should be 6.845.891
Your environment

Device: iphonex
OS: last
Version 44

without you, nothing in this app would work at all 😅
thanks for reporting!

😊 i would like to help you by code review but i'm not able so i just do my part with testing. also i like to do it (i do 1 year tester in a software company) so no problem.


datastructures.Authorization.qop should be a string, not a HeaderSet

datastructures.Authorization.qop property is of type HeaderSet.
This is incorrect.  RFC 2617 states that the value of qop of an Authorization Request header is a single token.
from RFC 2617, 3.2.2 The Authorization Request Header

qop
Indicates what "quality of protection" the client has applied to
the message. If present, its value MUST be one of the alternatives
the server indicated it supports in the WWW-Authenticate header.
These values affect the computation of the request-digest. Note
that this is a single token, not a quoted list of alternatives as
in WWW- Authenticate.

This is a patch against git head which fixes this problem:
diff --git a/werkzeug/datastructures.py b/werkzeug/datastructures.py
index 3aaeb5f..6a08929 100644
--- a/werkzeug/datastructures.py
+++ b/werkzeug/datastructures.py
@@ -2301,16 +2301,14 @@ class Authorization(ImmutableDictMixin, dict):
         It is recommended that this string be base64 or hexadecimal data.
         Digest auth only.''')

-    @property
-    def qop(self):
-        """Indicates what "quality of protection" the client has applied to
-        the message for HTTP digest auth."""
-        def on_update(header_set):
-            if not header_set and 'qop' in self:
-                del self['qop']
-            elif header_set:
-                self['qop'] = header_set.to_header()
-        return parse_set_header(self.get('qop'), on_update)
+    qop = property(lambda x: x.get('qop'), doc='''
+        Indicates what "quality of protection" the client has applied to
+        the message. If present, its value MUST be one of the alternatives
+        the server indicated it supports in the WWW-Authenticate header.
+        These values affect the computation of the request-digest. Note
+        that this is a single token, not a quoted list of alternatives as
+        in WWW- Authenticate.  This directive is optional
+        Digest auth only.''')

 class WWWAuthenticate(UpdateDictMixin, dict):

Patch from IRC w/ testsuite: https://gist.github.com/anonymous/7a76f9df8a32b2e2ea56


Position Properties

It would be nice to have the Properties-> Position box open automatically.  Before, I needed only one click to get to the X-Y values.
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 99728831-9577-faee-e82a-8def045dadea
Version Independent ID: 99728831-9577-faee-e82a-8def045dadea
Content: The new Format pane in Power BI Desktop - Power BI
Content Source: powerbi-docs/fundamentals/desktop-format-pane.md
Service: powerbi
Sub-service: pbi-fundamentals
GitHub Login: @maggiesMSFT
Microsoft Alias: maggies

Thanks for your comment, @asocorrocognex.
This looks like product feedback rather than documentation feedback. You can submit product feedback or feature ideas by going to Power BI Ideas.

Hi, @asocorrocognex -- is this Adolfo? If so, another Hello!
Yes, as @mberdugo says, this looks like product feedback, so I'm closing this issue. The product group is eager to get feedback on this feature, so please go and enter it at https://ideas.powerbi.com/ideas/.
cheers!


Cannot include generated code

Hi,
following cargo's documentation I've tried to generate my protobufs at build time (through a build.rs script) and include them in my main.rs using:
...
mod model {
    include!(concat!(env!("OUT_DIR"), "/model.rs"));
}
...

However, the (rustc) compilation then fails with:
.../target/debug/build/pubmonitor-42b07ea6e237e2f6/out/model.rs:3:3: 3:4 error: an inner attribute is not permitted in this context
.../target/debug/build/pubmonitor-42b07ea6e237e2f6/out/model.rs:3 #![allow(dead_code)]
                                                                    ^
.../target/debug/build/pubmonitor-42b07ea6e237e2f6/out/model.rs:3:3: 3:4 help: place inner attribute at the top of the module or block
...

It seems that module level attributes (e.g. #![allow(dead_code)] here) are not allowed in included content. Would there be a way to avoid these in the generated code by turning them into item-level attributes where needed?
Many thanks,
P.

Why can't you just copy model.rs into source directory, and then include generated file as mod model; as regular source file?

Well, that's what I'm doing right now. But it feels rather like a a workaround to me.

I've gotten around this by using a build.rs script that generates the source before the build process. It's a little clunky, but not far off from what other large projects do.

I think rust-protobuf does it properly. But if you need to include generated code in another file, I might suggest stripping module attributes with sed scripts.

ok with me, i think that's feasible.

FWIW another dirty workaround is to modify the generated file in your build.rs to add a mod foo { ... } around it. Then it can be included from a file under src and doesn't need to be copied there. I think this is a bit better than removing the attributes, which results in build warnings.

@SirVer Prost looks unmaintained. Should we somehow standardize that workaround in a crate?

@SirVer @aep I think this thing can be implemented as part of rust-protobuf codegen.
If you have specific proposal, e. g.

option (wrap_in_module)
option to push macros to declarations from the top level

please share.

@aep option to do what exactly?
Not sure why the default is surprising. Could you explain please?

the wrap_in_module option sounds good to me :)
well it's quite standard to put generated files into OUT_DIR, and the solution is non-obvious.
so it might help to include that in README.md

@aep Rust Tower seems to be betting on Prost, so I guess development will pick up eventually again. https://medium.com/@carllerche/announcing-tower-a-library-for-writing-robust-network-services-with-rust-67273f052c40

I spent a good chunk of the day figuring this out since docs.rs no longer allows files to be written outside of $OUT_DIR. I eventually went with @SirVer's workaround. https://github.com/googlecartographer/point_cloud_viewer/blob/440d875f12e32dff6107233f24b5a02cf28776dc/point_viewer_proto_rust/build.rs#L33
@stepancheg I would ask that you reconsider you stance of writing files to the src/ directory as the official solution as writing to src/ will block any crates using rust-protobuf from having documentation on docs.rs.
Or maybe there is a more official solution now and I failed to find it? If that's the case, please point me in the right direction.


Add the feature of  emoji and mic

This is look right now which is not functioning

add the function of emoji-like this

Can I work on this? @soumik2012

@abhishekkumar08 can you share the approach here?

@soumik2012 I can use a third party library for the same like : https://www.npmjs.com/package/emoji-picker-react

Sound great go ahead @abhishekkumar08

Sorry for the trouble, I'm busy currently in some other tasks. @soumik2012

It's okay @abhishekkumar08

I want to work in this issue I have added the emoji feature using the library package  emoji-mart but for the mic feature can you help me?

@rajbir21-droid yes you can work on the issue of emoj

Impressive work 💯  make a pull request  @rajbir21-droid


Hide departures in a certain time window in the future

Over here I have a relatively lengthy walk to the train station closest to me (displayed in the stationboard at home). 9 minutes to be exact.
I would like an option to hide all departures right after now until 9 minutes from now, since I know for a fact I will not be catching these trains no matter how hard I try, so why show them?
The alternative is to do it in the sensor, but I don't think the right place to do this is in the sensor, since keeping the data as per the source is probably better for historic purposes and because you might want to display two different cards with different departure suppression times (maybe you are at work and you have a "from work" card, and maybe some other time you are at home and you have a "from home" card).
Thanks.

This is fixed.


{} in comment creates error

{} in a comment, for example * Missing space before {}, results in this error:
  File "<stdin>", line 1, in <module>
  File "c:\ado\plus\py\stata_linter_correct.py", line 177, in indent_in_bracket
    bracket_pair.append([loop_start.pop(), line_index, nest_level, bracket_start.pop()])
IndexError: pop from empty list
r(7102);```

I'm trying to replicate this error but it's not showing for me. When I try lint dofile.do in a dofile with this content
* Missing space before {}
set obs 10
gen var = _n

the expected output is returned

I'm using the branch develop-v0-bugs as of July 18 2022. One possibility is that some of the errors I already worked on in this branch nd previously in develop addressed this problem.
@kbjarkefur when you have some time, please try to replicate this issue again and let me know how it goes. Thanks.


Fix unresponsive supervisor after reboot

Supervisor occasionally appears to be unsettled at time of reboot so add a timeout function to poll it until it settles

This has been fixed with #31


Implement shared plugin storage

Current design uses AnyMap to store a request local state. This state is passed to the plugins when their methods are called and it's available to the handler through Response and ResponseWriter.
Closes #6.

I'll wait for dependencies to get in sync.


Minor typos and changes for consistency

@joellord can you check this on the new ocp-4.5 I haven't see if those have been fixed as well in the while
Thanks :)