text:
Re-add deprecated function deleteThirdPartyOwnedRelationshipAttributeAndNotifyPeer

For backwards compatibility
Readiness checklist

[ ] I added/updated tests.
[x] I ensured that the PR title is good enough for the changelog.
[x] I labeled the PR.

@Milena-Czierlinski as we are the only consumers we can keep this removed silently! :)

@sebbi08 expressed his concern that the previous release introduced a breaking change for integrators.

IMO as the API is unchanged and we don't know about any consumers of the js sdk than us we can ignore it.

also I don't expect that someone is already using this functionality

@sebbi08 as you requested this, any word from your side for or against this?

If we are sure that no one uses this, I am also fine with just removing it. Otherwise, this would be a breaking change.

repo: nmshd/connector


text:
Release version 0.3.2

Creating a New Release
Changelog

[x] First, update the CHANGELOG file in the project root directory. Use the command
git log  --oneline v0.3.1..HEAD to get the changes since the last tag. Add
an entry like the following:

## [X.Y.Z] - YYYY-MM-DD
### Breaking Changes
 - ...

### New Features
 - ...

### Bug Fixes
 - ...

Tagging

[x] Tag new release in git.
[x] Ensure that the vdsm tests ran against this state.

# Make sure your local git repo is sync with upstream.
# The whole version string should be like `v0.0.3`.
# Put strings like `nmstate 0.0.3 release` as commit message.
git tag --sign v<version>
git push upstream --tags

[x] If you need to remove a tag because something needs to be fixed:

# Remove local tag
git tag -d <tag_name>

# Remove upstream tag
git push --delete upstream <tag_name>

GitHub Release

[x] Generate and sign the tarball.

git clean -x -d -n
# before running the next command check, that it is ok to remove the files
git clean -x -d -f
# Please remove python3-setuptools_scm, or it will all git files into tarbal.
env --unset=PYTHONPATH python3 setup.py sdist
gpg2 --armor --detach-sign dist/nmstate-<version>.tar.gz

[x] Visit github draft release page.
[x] Make sure you are in Release tab.
[x] Choose the git tag just pushed.
[x] Title should be like Version 0.0.3 release.
[x] The content should be copied from the CHANGELOG file.
[x] Click Attach binaries by dropping them here or selecting them. and upload
the dist/nmstate-<version>.tar.gz and dist/nmstate-<version>.tar.gz.asc.
[x] Download the tarball and the signature.
[x] Check if the signature is correct.

curl --silent https://www.nmstate.io/nmstate.gpg | gpg2 --import
gpg2 --verify nmstate-<version>.tar.gz.asc nmstate-<version>.tar.gz

[x] Check in a clean Fedora/centOS container if the package build and install correctly.

podman run -d -it --name <name> docker.io/library/fedora:31 bash
podman cp nmstate-<version>.tar.gz <name>:/home/nmstate-<version>.tar.gz
podman exec -it <name> bash
cd /home/
tar xzvf nmstate-<version>.tar.gz
python3 setup.py build
python3 setup.py install

[x] Click Save draft and seek for review.
[x] Click Publish release once approved.

PyPi Release
# Make sure you installed python package: wheel and twine.
yum install twine python3-wheel
rm -rf dist
python3 setup.py sdist bdist_wheel

# Upload to pypi test.
python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
# Now, check https://test.pypi.org/project/nmstate/

# If it works, now upload to pypi.
python3 -m twine upload dist/*

Post Release

[x] 1. Create a pull request with increased version number in the VERSION file
and merge it before any other PR. This is necessary to ensure that the
development RPMs are newer than the stable version in distributions.

[x] 2. Update the SPEC files in Fedora, create new builds and updates as neccessary

[x] 3. Rebuild Copr repositories for stable releases as necessary (this requires
the SPEC files in Fedora to be updated, first)
https://copr.fedorainfracloud.org/coprs/nmstate/

[x] 4. Send out a notification to the fedorahosted mailing list:
nmstate-devel@lists.fedorahosted.org

All done, thanks!

source: gharchive/issue

repo: nmstate/nmstate

license_type: permissive

license_source: github-api


text:
Draft: Add torch-based CMA-ES implementation

This pull request:

Refactors the existing evotorch.algorithms.cmaes.CMAES, which is simply a wrapper for pycma to evotorch.algorithms.pycmaes.PyCMAES.
Introduces a new, torch-based, implementation of CMAES under the name evotorch.algorithms.cmaes.CMAES. This aims to faithfully reimplement the most recent version of pycma, while also benefiting from the evotorch ecosystem e.g. vectorized, GPU based, working with torch tensors for compatibility with other features.
Introduces evotorch.algorithms.restarters, which provides basic functionality for meta-algorithms that wrap around a SearchAlgorithm class + parameterization, and allow automatic restarting of the algorithm. This creates basic functionality for the eventual re-implementation e.g. of IPOP-CMA-ES and BIPOP-CMA-ES, and equivalent algorithms for XNES, SNES etc.
Adds the is_terminated flag to all SearchAlgorithm classes, that will allow the user to define their own general functionality for detecting termination states that should trigger restarts. Currently, this value defaults to False, but in the future it is intended to add example termination states to the new CMAES implementation.

Codecov Report

Merging #41 (63f3cc0) into master (d3e3f0a) will decrease coverage by 2.14%.
The diff coverage is 12.45%.

:exclamation: Current head 63f3cc0 differs from pull request most recent head b1ec581. Consider uploading reports for the commit b1ec581 to get more accurate results

@@            Coverage Diff             @@
##           master      #41      +/-   ##
==========================================
- Coverage   52.97%   50.82%   -2.15%
==========================================
  Files          43       47       +4
  Lines        6233     6471     +238
==========================================
- Hits         3302     3289      -13
- Misses       2931     3182     +251

Impacted Files
Coverage Δ

src/evotorch/algorithms/restarter/__init__.py
0.00% <0.00%> (ø)

...rc/evotorch/algorithms/restarter/modify_restart.py
0.00% <0.00%> (ø)

src/evotorch/algorithms/restarter/restart.py
0.00% <0.00%> (ø)

src/evotorch/algorithms/cmaes.py
15.47% <9.33%> (-5.88%)
:arrow_down:

src/evotorch/algorithms/pycmaes.py
21.34% <21.34%> (ø)

src/evotorch/algorithms/searchalgorithm.py
39.26% <66.66%> (+0.43%)
:arrow_up:

src/evotorch/algorithms/__init__.py
100.00% <100.00%> (ø)

src/evotorch/core.py
61.59% <0.00%> (-3.96%)
:arrow_down:

src/evotorch/operators/base.py
33.01% <0.00%> (+0.30%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

source: gharchive/pull-request

authors: NaturalGradient codecov-commenter

repo: nnaisense/evotorch


text:
Add lib Changelog to the PR feature

Feature Request
I known this is not simple but if the lib has a CHANGELOG file on it's repo (if it's a github repo or something like that), add the changelog to the PR description would be great

I'll take a bit to think through this one. I don't think it'll be too hard to write a generic header and the same info as is in the commit message, but I also suspect this would be best implemented with some configurable options around the CHANGELOG message.

I'll take a bit to think through this one. I don't think it'll be too hard to write a generic header and the same info as is in the commit message, but I also suspect this would be best implemented with some configurable options around the CHANGELOG message.

Yeah, at work (Nubank) we have a bot that opens PRs called Bumpito, it's pretty similar to your github action, but it's closed source, unfortunately...
It opens PRs for our common libs bumps and in the description, it prints something like this:
PR description:
Bumpito has found new common libraries versions.
Refer to the following changelogs to see what is new :newspaper_roll:
Changelogs
common-kafka
10.86.0

Remove jackson-core explicit dependency from common-kafka

10.85.1

remove consumer cron tick code

common-i18n
4.5.0

Fix Federal Holidays for Mexico

common-crypto
10.24.1

improve the way of communicating error getting s3 keys

common-metrics
10.6.0

Add prometheus text format parser

common-redis
Could not parse changelog :(

Yeah, at work (Nubank) we have a bot that opens PRs called Bumpito, it's pretty similar to your github action, but it's closed source, unfortunately...
It opens PRs for our common libs bumps and in the description, it prints something like this:
PR description:
Bumpito has found new common libraries versions.
Refer to the following changelogs to see what is new :newspaper_roll:
Changelogs
common-kafka
10.86.0

Remove jackson-core explicit dependency from common-kafka

10.85.1

remove consumer cron tick code

common-i18n
4.5.0

Fix Federal Holidays for Mexico

common-crypto
10.24.1

improve the way of communicating error getting s3 keys

common-metrics
10.6.0

Add prometheus text format parser

common-redis
Could not parse changelog :(

@ericdallo Following up on this, antq now has the ability to surface links to the GitHub diff between the old and the new version. It's slightly less ergonomic than a compiled list of changelog updates- but it is available for little extra effort. I've updated the commit messages to include these links in this PR: https://github.com/nnichols/clojure-dependency-update-action/pull/9
Would you find these sufficient for now?

@michols I think worth the shot, better than nothing! thank you

Closed by: https://github.com/nnichols/clojure-dependency-update-action/pull/9

authors: ericdallo nnichols

license: MIT


text:
Highlight Lines instead of Events in LineChart

Hi, thanks for the nice library!
I haven't come across if this is possible or not.  Is it possible to highlight a line, instead of the event on mouse hover?  The use case would be to be able to easily follow the history of a particular line, throughout all events.  With anything more than a dozen or so lines, it becomes difficult to track the progress of a line.
Thanks.

Hello, I'm sorry this issue hasn't received much attention yet. It seems this is an implementation question, could you please post your question to StackOverflow with the Chart.js tag and include a link here. This will ensure your question reaches the largest audience.
https://stackoverflow.com/questions/tagged/chart.js

Huzzah! The first alpha of Chart.js 2.0 has landed and should fix this issue. Check out the release and try it out! We've got a lot of momentum right now, so please help us test so we can launch 2.0 Gold by the end of the month.
https://github.com/nnnick/Chart.js/releases/tag/v2.0-alpha
I'm closing this issue for now, but if you have implementation questions or find bugs, please create a jsfiddle and post the link here and we'll reopen this issue and get it fixed.

authors: derekperkins fulldecent mazubieta

license: mit

license_source: bigquery


text:
[android] Set envvar for Qualcomm related filters

QNN / SNPE needs some additional tasks. This job has been done by nnstreamer's each sub-plugin.
Let the task be done in nnstreamer-native-api.c

https://github.com/nnstreamer/nnstreamer/pull/4563 and this PR should be merged together.

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #556. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.

repo: nnstreamer/api


text:
[Wait for #1339] [Resnet] Connect the model with cifar100

[Pending commit: #1339]

[Resnet] Connect the model with cifar100

**Changes proposed in this PR:**
- Implement cifar100dataloader
- Connect the data loader

**Self evaluation:**
1. Build test: [X]Passed [ ]Failed [ ]Skipped
2. Run test: [X]Passed [ ]Failed [ ]Skipped

Signed-off-by: Jihoon Lee <jhoon.it.lee@samsung.com>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1340. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1340-202106301147160.68477702140808-b72c6f2e4171fd48f8f7f3d062b38a56ca92f95f/.

:octocat: cibot: @zhoonit, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1340-202107051429260.86057209968567-39d732fa59d7212522da55b25c70736d7248e2ae/.

authors: taos-ci zhoonit

repo: nnstreamer/nntrainer


text:
[ Meson ] BCQTensor dependency is added for Android build

This commit add BiQGEMM path to nntrainer_inc_abs to support Android build with enable-biqgemm option.
The path for BiQGEMM corresponds to the one in the top meson.build

Self evaluation:
Build test: [X]Passed [ ]Failed [ ]Skipped
Run test: [X]Passed [ ]Failed [ ]Skipped

LGTM! One minor suggestion: How about adding it to the tensor/meson.build for consistency?
https://github.com/nnstreamer/nntrainer/blob/cd17a66b8eec45a2e91e543a884722763b5e608e/nntrainer/tensor/meson.build#L79-L83

Following the suggestion from @djeong20, I moved the code to nntrainer/tensor/meson.build.
Since the existence check for BiQGEMM folder is completed at the precedent meson file, the duplicate check code is removed.

meson.source_root() / '..' / 'BiQGEMM'

DO NOT HARDCODE EXTERNAL PATHS IN MESON SCRIPT!
If pkgconfig or cmake is not ready with BiQGEMM,
get such information via meson_options and specify such "default paths" at meson_options.

And..
if get_option('enable-biqgemm')
  # check if BiQGEMM directory exist. otherwise, throw an error
  fs = import('fs')
  if fs.is_dir('../BiQGEMM')
    extra_defines += '-DENABLE_BIQGEMM=1'
    biqgemm_inc = include_directories('../BiQGEMM')
  else
    error ('BiQGEMM cannot be enabled without BiQGEMM library.')
  endif
endif

is completely non-sense. Other developers (e.g., nntrainer users in other departments) won't understand what's going on here.
You should try

get biqgemm info from pkgconfig/cmake.
(if 1 fails) try to load it from common path (/usr/include, /usr/include/biqgemm)
(if 2 fails) try to load it from user-defined path (meson_option)
(if 3 fails) try to load it from such hardcoded path. but specify such external hardcoded path at meson_options.txt, not in this script.

@myungjoo, Thank you for the detailed comment and guidance :) I will make additional PR to make it feasible following your suggestion. Sincerely.

authors: EunjuYang myungjoo


text:
Dataset

hello,I want to know the information about how to split the kitti dataset,in the paper ,there are 39180 for training ,but monodepth2 has 39810 for training,will the difference  affect results?

Hi, I think this should be a typo in our paper. We used the same training dataset as Monodepth2.

repo: noahzn/Lite-Mono


text:
Socket.write not writing commands

OS: Ubuntu 20.04
Node version: v16.18.1 / v12.12.0 / v10.15.3
node-bluetooth-hci-socket: v0.5.3-8
The following code is used to crearte le conn with the bluetooth device but this is not working and connection is not created. This is used in @abandonware/noble package.
const { minInterval = 0x0006, maxInterval = 0x000c, latency = 0x0000, timeout = 0x00c8 } = parameters;

  const cmd = Buffer.alloc(29);

  // header
  cmd.writeUInt8(HCI_COMMAND_PKT, 0);
  cmd.writeUInt16LE(LE_CREATE_CONN_CMD, 1);

  // length
  cmd.writeUInt8(0x19, 3);

  // data
  cmd.writeUInt16LE(0x0060, 4); // interval
  cmd.writeUInt16LE(0x0030, 6); // window
  cmd.writeUInt8(0x00, 8); // initiator filter

  cmd.writeUInt8(addressType === 'random' ? 0x01 : 0x00, 9); // peer address type
  (Buffer.from(address.split(':').reverse().join(''), 'hex')).copy(cmd, 10); // peer address

  cmd.writeUInt8(0x00, 16); // own address type

  cmd.writeUInt16LE(minInterval, 17); // min interval
  cmd.writeUInt16LE(maxInterval, 19); // max interval
  cmd.writeUInt16LE(latency, 21); // latency
  cmd.writeUInt16LE(timeout, 23); // supervision timeout
  cmd.writeUInt16LE(0x0004, 25); // min ce length
  cmd.writeUInt16LE(0x0006, 27); // max ce length

  debug("create le conn - writing:", ${cmd.toString('hex')});
  this._socket.write(cmd);

Is this issue also present on latest release of:
https://www.npmjs.com/package/@abandonware/bluetooth-hci-socket/v/0.5.3-12

repo: noble/node-bluetooth-hci-socket


text:
matmul-elementwise fusion failed to legalize operation 'vector.contract'

With the support of fusing consumer (tensor.unpack) into the loop, I've modified the matmul-elementwise fusion with pack-peel pipeline. Now i32 test compiles and has correct outputs on hardware. However, bf16 test failed at AIE stage with error:
error: failed to legalize operation 'vector.contract' that was explicitly marked illegal
I've attached the dump IR here
afterall_aie.txt
Already talked to @erwei-xilinx about the issue, but would like to have more eyes on it, since this seems to be related to the vectorization problem. @newling @jsetoain

I've taking a look at the first few and they all seem valid, I'll take a closer look tomorrow.

The vector.contract is all bf16. What is the input IR, does the elementwise operation happen in f32 or bf16?
Currently we don't support matmul with result type bf16. I've been meaning to improve the error diagnostic error in the case where the matmul is bf16->bf16 as this issue has been encountered at least twice before.

The vector.contract is all bf16. What is the input IR, does the elementwise operation happen in f32 or bf16?
Currently we don't support matmul with result type bf16. I've been meaning to improve the error diagnostic error in the case where the matmul is bf16->bf16 as this issue has been encountered at least twice before.

Okay, I see. The output type of this test is bf16. Let me try another test with elementwise/output operation in f32.
Then here comes another question... Do you know what is the data type of elementwise op in tres leches bf16 model?

The vector.contract is all bf16. What is the input IR, does the elementwise operation happen in f32 or bf16?
Currently we don't support matmul with result type bf16. I've been meaning to improve the error diagnostic error in the case where the matmul is bf16->bf16 as this issue has been encountered at least twice before.

Okay, I see. The output type of this test is bf16. Let me try another test with elementwise/output operation in f32.
Then here comes another question... Do you know what is the data type of elementwise op in tres leches bf16 model?

Yes, I just confirmed that if I change the matmul output and elementwise type to f32 it works without problem! @newling Thanks for pointing out the issue.

authors: jsetoain newling yzhang93

repo: nod-ai/iree-amd-aie


text:
node-red crashed with error "Error: write EIO     at errnoException (net.js:904:11)     at Object.afterWrite (net.js:720:19)"

Hi,
Since I added a flow with a "Watson IoT" outbound node I am having frequent node-red crashes.
FYI I am running node-red version 0.12.5 (Node.js version 0.10.29) on raspberry pi (Linux raspberrypi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l GNU/Linux)
Here below you find the information that is logged in the node-red log file for 3 such crashes:

instance 1:
....
30 May 23:42:38 - [warn] [google-credentials:942c464d.6bd3b8] trying to refresh token due to expiry
Connection was closed.
31 May 00:01:30 - [red] Uncaught Exception:
31 May 00:01:30 - Error: write EIO
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)

instance 2:
....
5 Jun 23:48:03 - [warn] [google-credentials:942c464d.6bd3b8] trying to refresh token due to expiry
5 Jun 23:56:12 - [warn] [function:arp-scan output to json] hosts responded (=11) != packets received (=12)
Connection was closed.
6 Jun 00:11:10 - [red] Uncaught Exception:
6 Jun 00:11:10 - Error: write EIO
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)

instance 3:
....
7 Jun 21:35:59 - [warn] [google-credentials:942c464d.6bd3b8] trying to refresh t          oken due to expiry
7 Jun 21:39:27 - [warn] [function:arp-scan output to json] hosts responded (=13)            != packets received (=41)
Connection was closed.
7 Jun 21:59:03 - [red] Uncaught Exception:
7 Jun 21:59:03 - Error: write EIO
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)

Hi, to help identify what node is causing this, can you list what nodes you have that might be accessing the network? The challenge is this is an error thrown asynchronously to the main runtime - the nodes ought to have appropriate error handling in place for this sort of async event.

Hi Nick,
I am using following nodes:

node-red-contrib-ibm-watson-iot
node-red-contrib-ui
node-red-node-emoncms
node-red-node-google
node-red-node-openweathermap
mqtt

I think that when I added the watson-iot node I started having these problems (4 instances in the last 2 weeks).
many thanks for the support.
Jan.
Here below you find the npm modules installed.
`pi@raspberrypi:/usr/lib/node_modules $ npm -g ls
/usr/lib
├─┬ node-red@0.12.5
│ ├── basic-auth@1.0.3
│ ├─┬ bcrypt@0.8.5
│ │ ├── bindings@1.2.1
│ │ └── nan@2.0.5
│ ├── bcryptjs@2.3.0
│ ├─┬ body-parser@1.14.2
│ │ ├── bytes@2.2.0
│ │ ├── content-type@1.0.1
│ │ ├─┬ debug@2.2.0
│ │ │ └── ms@0.7.1
│ │ ├── depd@1.1.0
│ │ ├─┬ http-errors@1.3.1
│ │ │ ├── inherits@2.0.1
│ │ │ └── statuses@1.2.1
│ │ ├── iconv-lite@0.4.13
│ │ ├─┬ on-finished@2.3.0
│ │ │ └── ee-first@1.1.1
│ │ ├── qs@5.2.0
│ │ └─┬ type-is@1.6.10
│ │   └─┬ mime-types@2.1.9
│ │     └── mime-db@1.21.0
│ ├─┬ cheerio@0.19.0
│ │ ├─┬ css-select@1.0.0
│ │ │ ├── boolbase@1.0.0
│ │ │ ├── css-what@1.0.0
│ │ │ ├─┬ domutils@1.4.3
│ │ │ │ └── domelementtype@1.3.0
│ │ │ └── nth-check@1.0.1
│ │ ├─┬ dom-serializer@0.1.0
│ │ │ └── domelementtype@1.1.3
│ │ ├── entities@1.1.1
│ │ ├─┬ htmlparser2@3.8.3
│ │ │ ├── domelementtype@1.3.0
│ │ │ ├── domhandler@2.3.0
│ │ │ ├── domutils@1.5.1
│ │ │ ├── entities@1.0.0
│ │ │ └─┬ readable-stream@1.1.13
│ │ │   ├── core-util-is@1.0.2
│ │ │   ├── inherits@2.0.1
│ │ │   ├── isarray@0.0.1
│ │ │   └── string_decoder@0.10.31
│ │ └── lodash@3.10.1
│ ├── clone@1.0.2
│ ├─┬ cors@2.7.1
│ │ └── vary@1.1.0
│ ├─┬ cron@1.1.0
│ │ └─┬ moment-timezone@0.3.1
│ │   └── moment@2.11.0
│ ├─┬ express@4.13.3
│ │ ├─┬ accepts@1.2.13
│ │ │ ├─┬ mime-types@2.1.9
│ │ │ │ └── mime-db@1.21.0
│ │ │ └── negotiator@0.5.3
│ │ ├── array-flatten@1.1.1
│ │ ├── content-disposition@0.5.0
│ │ ├── content-type@1.0.1
│ │ ├── cookie@0.1.3
│ │ ├── cookie-signature@1.0.6
│ │ ├─┬ debug@2.2.0
│ │ │ └── ms@0.7.1
│ │ ├── depd@1.0.1
│ │ ├── escape-html@1.0.2
│ │ ├── etag@1.7.0
│ │ ├─┬ finalhandler@0.4.0
│ │ │ └── unpipe@1.0.0
│ │ ├── fresh@0.3.0
│ │ ├── merge-descriptors@1.0.0
│ │ ├── methods@1.1.1
│ │ ├─┬ on-finished@2.3.0
│ │ │ └── ee-first@1.1.1
│ │ ├── parseurl@1.3.0
│ │ ├── path-to-regexp@0.1.7
│ │ ├─┬ proxy-addr@1.0.10
│ │ │ ├── forwarded@0.1.0
│ │ │ └── ipaddr.js@1.0.5
│ │ ├── qs@4.0.0
│ │ ├── range-parser@1.0.3
│ │ ├─┬ send@0.13.0
│ │ │ ├── destroy@1.0.3
│ │ │ ├─┬ http-errors@1.3.1
│ │ │ │ └── inherits@2.0.1
│ │ │ ├── mime@1.3.4
│ │ │ ├── ms@0.7.1
│ │ │ └── statuses@1.2.1
│ │ ├── serve-static@1.10.0
│ │ ├─┬ type-is@1.6.10
│ │ │ └─┬ mime-types@2.1.9
│ │ │   └── mime-db@1.21.0
│ │ ├── utils-merge@1.0.0
│ │ └── vary@1.0.1
│ ├─┬ follow-redirects@0.0.7
│ │ ├─┬ debug@2.2.0
│ │ │ └── ms@0.7.1
│ │ └── stream-consume@0.1.0
│ ├─┬ fs-extra@0.26.4
│ │ ├── graceful-fs@4.1.2
│ │ ├── jsonfile@2.2.3
│ │ ├── klaw@1.1.3
│ │ ├── path-is-absolute@1.0.0
│ │ └─┬ rimraf@2.5.0
│ │   └─┬ glob@6.0.3
│ │     ├─┬ inflight@1.0.4
│ │     │ └── wrappy@1.0.1
│ │     ├── inherits@2.0.1
│ │     ├─┬ minimatch@3.0.0
│ │     │ └─┬ brace-expansion@1.1.2
│ │     │   ├── balanced-match@0.3.0
│ │     │   └── concat-map@0.0.1
│ │     └─┬ once@1.3.3
│ │       └── wrappy@1.0.1
│ ├─┬ fs.notify@0.0.4
│ │ ├── async@0.1.22
│ │ └── retry@0.6.1
│ ├─┬ i18next@1.10.6
│ │ ├─┬ cookies@0.5.1
│ │ │ └── keygrip@1.0.1
│ │ ├── i18next-client@1.10.3
│ │ └── json5@0.2.0
│ ├── is-utf8@0.2.1
│ ├── media-typer@0.3.0
│ ├─┬ mqtt@1.6.3
│ │ ├─┬ commist@1.0.0
│ │ │ └── leven@1.0.2
│ │ ├─┬ concat-stream@1.5.1
│ │ │ ├─┬ readable-stream@2.0.5
│ │ │ │ ├── core-util-is@1.0.2
│ │ │ │ ├── isarray@0.0.1
│ │ │ │ ├── process-nextick-args@1.0.6
│ │ │ │ ├── string_decoder@0.10.31
│ │ │ │ └── util-deprecate@1.0.2
│ │ │ └── typedarray@0.0.6
│ │ ├─┬ end-of-stream@1.1.0
│ │ │ └─┬ once@1.3.3
│ │ │   └── wrappy@1.0.1
│ │ ├─┬ help-me@0.1.0
│ │ │ └─┬ pump@1.0.1
│ │ │   └─┬ once@1.3.3
│ │ │     └── wrappy@1.0.1
│ │ ├── inherits@2.0.1
│ │ ├── minimist@1.2.0
│ │ ├─┬ mqtt-connection@2.1.1
│ │ │ ├── reduplexer@1.1.0
│ │ │ └── through2@0.6.5
│ │ ├─┬ mqtt-packet@3.4.4
│ │ │ └── bl@0.9.4
│ │ ├─┬ readable-stream@1.0.33
│ │ │ ├── core-util-is@1.0.2
│ │ │ ├── isarray@0.0.1
│ │ │ └── string_decoder@0.10.31
│ │ ├── reinterval@1.0.2
│ │ ├─┬ websocket-stream@2.3.0
│ │ │ ├─┬ duplexify@3.4.2
│ │ │ │ ├─┬ end-of-stream@1.0.0
│ │ │ │ │ └─┬ once@1.3.3
│ │ │ │ │   └── wrappy@1.0.1
│ │ │ │ └─┬ readable-stream@2.0.5
│ │ │ │   ├── core-util-is@1.0.2
│ │ │ │   ├── isarray@0.0.1
│ │ │ │   ├── process-nextick-args@1.0.6
│ │ │ │   ├── string_decoder@0.10.31
│ │ │ │   └── util-deprecate@1.0.2
│ │ │ └─┬ through2@2.0.0
│ │ │   └─┬ readable-stream@2.0.5
│ │ │     ├── core-util-is@1.0.2
│ │ │     ├── isarray@0.0.1
│ │ │     ├── process-nextick-args@1.0.6
│ │ │     ├── string_decoder@0.10.31
│ │ │     └── util-deprecate@1.0.2
│ │ └── xtend@4.0.1
│ ├── mustache@2.2.1
│ ├─┬ node-red-node-email@0.1.0
│ │ ├─┬ imap@0.8.14
│ │ │ ├─┬ readable-stream@1.1.13
│ │ │ │ ├── core-util-is@1.0.2
│ │ │ │ ├── inherits@2.0.1
│ │ │ │ ├── isarray@0.0.1
│ │ │ │ └── string_decoder@0.10.31
│ │ │ └── utf7@1.0.0
│ │ └─┬ nodemailer@1.3.4
│ │   ├─┬ buildmail@1.3.0
│ │   │ ├── addressparser@0.3.2
│ │   │ ├── libbase64@0.1.0
│ │   │ └── libqp@1.1.0
│ │   ├─┬ hyperquest@1.2.0
│ │   │ ├─┬ duplexer2@0.0.2
│ │   │ │ └─┬ readable-stream@1.1.13
│ │   │ │   ├── core-util-is@1.0.2
│ │   │ │   ├── inherits@2.0.1
│ │   │ │   ├── isarray@0.0.1
│ │   │ │   └── string_decoder@0.10.31
│ │   │ └─┬ through2@0.6.5
│ │   │   ├─┬ readable-stream@1.0.33
│ │   │   │ ├── core-util-is@1.0.2
│ │   │   │ ├── inherits@2.0.1
│ │   │   │ ├── isarray@0.0.1
│ │   │   │ └── string_decoder@0.10.31
│ │   │   └── xtend@4.0.1
│ │   ├─┬ libmime@1.2.0
│ │   │ ├── iconv-lite@0.4.13
│ │   │ ├── libbase64@0.1.0
│ │   │ └── libqp@1.1.0
│ │   ├─┬ nodemailer-direct-transport@1.1.0
│ │   │ └── smtp-connection@1.3.8
│ │   └─┬ nodemailer-smtp-transport@1.1.0
│ │     ├── nodemailer-wellknown@0.1.7
│ │     └── smtp-connection@1.3.8
│ ├─┬ node-red-node-feedparser@0.1.3
│ │ ├─┬ feedparser@1.1.3
│ │ │ ├── addressparser@0.1.3
│ │ │ ├── array-indexofobject@0.0.1
│ │ │ ├─┬ readable-stream@1.0.33
│ │ │ │ ├── core-util-is@1.0.2
│ │ │ │ ├── inherits@2.0.1
│ │ │ │ ├── isarray@0.0.1
│ │ │ │ └── string_decoder@0.10.31
│ │ │ └── sax@0.6.1
│ │ └─┬ request@2.65.0
│ │   ├── aws-sign2@0.6.0
│ │   ├─┬ bl@1.0.0
│ │   │ └─┬ readable-stream@2.0.5
│ │   │   ├── core-util-is@1.0.2
│ │   │   ├── inherits@2.0.1
│ │   │   ├── isarray@0.0.1
│ │   │   ├── process-nextick-args@1.0.6
│ │   │   ├── string_decoder@0.10.31
│ │   │   └── util-deprecate@1.0.2
│ │   ├── caseless@0.11.0
│ │   ├─┬ combined-stream@1.0.5
│ │   │ └── delayed-stream@1.0.0
│ │   ├── extend@3.0.0
│ │   ├── forever-agent@0.6.1
│ │   ├─┬ form-data@1.0.0-rc3
│ │   │ └── async@1.5.1
│ │   ├─┬ har-validator@2.0.3
│ │   │ ├─┬ chalk@1.1.1
│ │   │ │ ├── ansi-styles@2.1.0
│ │   │ │ ├── escape-string-regexp@1.0.4
│ │   │ │ ├─┬ has-ansi@2.0.0
│ │   │ │ │ └── ansi-regex@2.0.0
│ │   │ │ ├─┬ strip-ansi@3.0.0
│ │   │ │ │ └── ansi-regex@2.0.0
│ │   │ │ └── supports-color@2.0.0
│ │   │ ├─┬ commander@2.9.0
│ │   │ │ └── graceful-readlink@1.0.1
│ │   │ ├─┬ is-my-json-valid@2.12.3
│ │   │ │ ├── generate-function@2.0.0
│ │   │ │ ├─┬ generate-object-property@1.2.0
│ │   │ │ │ └── is-property@1.0.2
│ │   │ │ ├── jsonpointer@2.0.0
│ │   │ │ └── xtend@4.0.1
│ │   │ └─┬ pinkie-promise@2.0.0
│ │   │   └── pinkie@2.0.1
│ │   ├─┬ hawk@3.1.2
│ │   │ ├── boom@2.10.1
│ │   │ ├── cryptiles@2.0.5
│ │   │ ├── hoek@2.16.3
│ │   │ └── sntp@1.0.9
│ │   ├─┬ http-signature@0.11.0
│ │   │ ├── asn1@0.1.11
│ │   │ ├── assert-plus@0.1.5
│ │   │ └── ctype@0.5.3
│ │   ├── isstream@0.1.2
│ │   ├── json-stringify-safe@5.0.1
│ │   ├─┬ mime-types@2.1.9
│ │   │ └── mime-db@1.21.0
│ │   ├── node-uuid@1.4.7
│ │   ├── oauth-sign@0.8.0
│ │   ├── qs@5.2.0
│ │   ├── stringstream@0.0.5
│ │   ├── tough-cookie@2.2.1
│ │   └── tunnel-agent@0.4.2
│ ├── node-red-node-rbe@0.1.1
│ ├─┬ node-red-node-serialport@0.1.0
│ │ └─┬ serialport@2.0.6
│ │   ├── async@0.9.0
│ │   ├── bindings@1.2.1
│ │   ├─┬ debug@2.2.0
│ │   │ └── ms@0.7.1
│ │   ├── nan@2.0.9
│ │   ├─┬ node-pre-gyp@0.6.18
│ │   │ ├─┬ mkdirp@0.5.1
│ │   │ │ └── minimist@0.0.8
│ │   │ ├─┬ nopt@3.0.6
│ │   │ │ └── abbrev@1.0.7
│ │   │ ├─┬ npmlog@2.0.0
│ │   │ │ ├── ansi@0.3.0
│ │   │ │ ├─┬ are-we-there-yet@1.0.5
│ │   │ │ │ ├── delegates@0.1.0
│ │   │ │ │ └─┬ readable-stream@2.0.5
│ │   │ │ │   ├── core-util-is@1.0.2
│ │   │ │ │   ├── inherits@2.0.1
│ │   │ │ │   ├── isarray@0.0.1
│ │   │ │ │   ├── process-nextick-args@1.0.6
│ │   │ │ │   ├── string_decoder@0.10.31
│ │   │ │ │   └── util-deprecate@1.0.2
│ │   │ │ └─┬ gauge@1.2.2
│ │   │ │   ├── has-unicode@1.0.1
│ │   │ │   ├─┬ lodash.pad@3.1.1
│ │   │ │   │ ├── lodash._basetostring@3.0.1
│ │   │ │   │ └─┬ lodash._createpadding@3.6.1
│ │   │ │   │   └── lodash.repeat@3.0.1
│ │   │ │   ├─┬ lodash.padleft@3.1.1
│ │   │ │   │ ├── lodash._basetostring@3.0.1
│ │   │ │   │ └─┬ lodash._createpadding@3.6.1
│ │   │ │   │   └── lodash.repeat@3.0.1
│ │   │ │   └─┬ lodash.padright@3.1.1
│ │   │ │     ├── lodash._basetostring@3.0.1
│ │   │ │     └─┬ lodash._createpadding@3.6.1
│ │   │ │       └── lodash.repeat@3.0.1
│ │   │ ├─┬ rc@1.1.5
│ │   │ │ ├── deep-extend@0.4.0
│ │   │ │ ├── ini@1.3.4
│ │   │ │ ├── minimist@1.2.0
│ │   │ │ └── strip-json-comments@1.0.4
│ │   │ ├─┬ request@2.67.0
│ │   │ │ ├── aws-sign2@0.6.0
│ │   │ │ ├─┬ bl@1.0.0
│ │   │ │ │ └─┬ readable-stream@2.0.5
│ │   │ │ │   ├── core-util-is@1.0.2
│ │   │ │ │   ├── inherits@2.0.1
│ │   │ │ │   ├── isarray@0.0.1
│ │   │ │ │   ├── process-nextick-args@1.0.6
│ │   │ │ │   ├── string_decoder@0.10.31
│ │   │ │ │   └── util-deprecate@1.0.2
│ │   │ │ ├── caseless@0.11.0
│ │   │ │ ├─┬ combined-stream@1.0.5
│ │   │ │ │ └── delayed-stream@1.0.0
│ │   │ │ ├── extend@3.0.0
│ │   │ │ ├── forever-agent@0.6.1
│ │   │ │ ├─┬ form-data@1.0.0-rc3
│ │   │ │ │ └── async@1.5.0
│ │   │ │ ├─┬ har-validator@2.0.3
│ │   │ │ │ ├─┬ chalk@1.1.1
│ │   │ │ │ │ ├── ansi-styles@2.1.0
│ │   │ │ │ │ ├── escape-string-regexp@1.0.3
│ │   │ │ │ │ ├─┬ has-ansi@2.0.0
│ │   │ │ │ │ │ └── ansi-regex@2.0.0
│ │   │ │ │ │ ├─┬ strip-ansi@3.0.0
│ │   │ │ │ │ │ └── ansi-regex@2.0.0
│ │   │ │ │ │ └── supports-color@2.0.0
│ │   │ │ │ ├─┬ commander@2.9.0
│ │   │ │ │ │ └── graceful-readlink@1.0.1
│ │   │ │ │ ├─┬ is-my-json-valid@2.12.3
│ │   │ │ │ │ ├── generate-function@2.0.0
│ │   │ │ │ │ ├─┬ generate-object-property@1.2.0
│ │   │ │ │ │ │ └── is-property@1.0.2
│ │   │ │ │ │ ├── jsonpointer@2.0.0
│ │   │ │ │ │ └── xtend@4.0.1
│ │   │ │ │ └─┬ pinkie-promise@2.0.0
│ │   │ │ │   └── pinkie@2.0.1
│ │   │ │ ├─┬ hawk@3.1.2
│ │   │ │ │ ├── boom@2.10.1
│ │   │ │ │ ├── cryptiles@2.0.5
│ │   │ │ │ ├── hoek@2.16.3
│ │   │ │ │ └── sntp@1.0.9
│ │   │ │ ├─┬ http-signature@1.1.0
│ │   │ │ │ ├── assert-plus@0.1.5
│ │   │ │ │ ├─┬ jsprim@1.2.2
│ │   │ │ │ │ ├── extsprintf@1.0.2
│ │   │ │ │ │ ├── json-schema@0.2.2
│ │   │ │ │ │ └── verror@1.3.6
│ │   │ │ │ └─┬ sshpk@1.7.1
│ │   │ │ │   ├── asn1@0.2.3
│ │   │ │ │   ├── assert-plus@0.2.0
│ │   │ │ │   ├─┬ dashdash@1.10.1
│ │   │ │ │   │ └── assert-plus@0.1.5
│ │   │ │ │   ├── ecc-jsbn@0.1.1
│ │   │ │ │   ├── jodid25519@1.0.2
│ │   │ │ │   ├── jsbn@0.1.0
│ │   │ │ │   └── tweetnacl@0.13.2
│ │   │ │ ├── is-typedarray@1.0.0
│ │   │ │ ├── isstream@0.1.2
│ │   │ │ ├── json-stringify-safe@5.0.1
│ │   │ │ ├─┬ mime-types@2.1.8
│ │   │ │ │ └── mime-db@1.20.0
│ │   │ │ ├── node-uuid@1.4.7
│ │   │ │ ├── oauth-sign@0.8.0
│ │   │ │ ├── qs@5.2.0
│ │   │ │ ├── stringstream@0.0.5
│ │   │ │ ├── tough-cookie@2.2.1
│ │   │ │ └── tunnel-agent@0.4.2
│ │   │ ├─┬ rimraf@2.4.4
│ │   │ │ └─┬ glob@5.0.15
│ │   │ │   ├─┬ inflight@1.0.4
│ │   │ │   │ └── wrappy@1.0.1
│ │   │ │   ├── inherits@2.0.1
│ │   │ │   ├─┬ minimatch@3.0.0
│ │   │ │   │ └─┬ brace-expansion@1.1.2
│ │   │ │   │   ├── balanced-match@0.3.0
│ │   │ │   │   └── concat-map@0.0.1
│ │   │ │   ├─┬ once@1.3.3
│ │   │ │   │ └── wrappy@1.0.1
│ │   │ │   └── path-is-absolute@1.0.0
│ │   │ ├── semver@5.1.0
│ │   │ ├─┬ tar@2.2.1
│ │   │ │ ├── block-stream@0.0.8
│ │   │ │ ├─┬ fstream@1.0.8
│ │   │ │ │ └── graceful-fs@4.1.2
│ │   │ │ └── inherits@2.0.1
│ │   │ └─┬ tar-pack@3.1.2
│ │   │   ├── debug@0.7.4
│ │   │   ├─┬ fstream@1.0.8
│ │   │   │ ├── graceful-fs@4.1.2
│ │   │   │ └── inherits@2.0.1
│ │   │   ├─┬ fstream-ignore@1.0.3
│ │   │   │ ├── inherits@2.0.1
│ │   │   │ └─┬ minimatch@3.0.0
│ │   │   │   └─┬ brace-expansion@1.1.2
│ │   │   │     ├── balanced-match@0.3.0
│ │   │   │     └── concat-map@0.0.1
│ │   │   ├── once@1.1.1
│ │   │   ├─┬ readable-stream@2.0.5
│ │   │   │ ├── core-util-is@1.0.2
│ │   │   │ ├── inherits@2.0.1
│ │   │   │ ├── isarray@0.0.1
│ │   │   │ ├── process-nextick-args@1.0.6
│ │   │   │ ├── string_decoder@0.10.31
│ │   │   │ └── util-deprecate@1.0.2
│ │   │   └── uid-number@0.0.3
│ │   ├── UNMET DEPENDENCY node-pre-gyp-github@^1.1.0
│ │   ├─┬ optimist@0.6.1
│ │   │ ├── minimist@0.0.10
│ │   │ └── wordwrap@0.0.3
│ │   └── sf@0.1.7
│ ├─┬ node-red-node-twitter@0.1.4
│ │ ├── oauth@0.9.14
│ │ ├─┬ request@2.67.0
│ │ │ ├── aws-sign2@0.6.0
│ │ │ ├─┬ bl@1.0.0
│ │ │ │ └─┬ readable-stream@2.0.5
│ │ │ │   ├── core-util-is@1.0.2
│ │ │ │   ├── inherits@2.0.1
│ │ │ │   ├── isarray@0.0.1
│ │ │ │   ├── process-nextick-args@1.0.6
│ │ │ │   ├── string_decoder@0.10.31
│ │ │ │   └── util-deprecate@1.0.2
│ │ │ ├── caseless@0.11.0
│ │ │ ├─┬ combined-stream@1.0.5
│ │ │ │ └── delayed-stream@1.0.0
│ │ │ ├── extend@3.0.0
│ │ │ ├── forever-agent@0.6.1
│ │ │ ├─┬ form-data@1.0.0-rc3
│ │ │ │ └── async@1.5.1
│ │ │ ├─┬ har-validator@2.0.3
│ │ │ │ ├─┬ chalk@1.1.1
│ │ │ │ │ ├── ansi-styles@2.1.0
│ │ │ │ │ ├── escape-string-regexp@1.0.4
│ │ │ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ │ ├─┬ strip-ansi@3.0.0
│ │ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ │ └── supports-color@2.0.0
│ │ │ │ ├─┬ commander@2.9.0
│ │ │ │ │ └── graceful-readlink@1.0.1
│ │ │ │ ├─┬ is-my-json-valid@2.12.3
│ │ │ │ │ ├── generate-function@2.0.0
│ │ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ │ └── is-property@1.0.2
│ │ │ │ │ ├── jsonpointer@2.0.0
│ │ │ │ │ └── xtend@4.0.1
│ │ │ │ └─┬ pinkie-promise@2.0.0
│ │ │ │   └── pinkie@2.0.1
│ │ │ ├─┬ hawk@3.1.2
│ │ │ │ ├── boom@2.10.1
│ │ │ │ ├── cryptiles@2.0.5
│ │ │ │ ├── hoek@2.16.3
│ │ │ │ └── sntp@1.0.9
│ │ │ ├─┬ http-signature@1.1.0
│ │ │ │ ├── assert-plus@0.1.5
│ │ │ │ ├─┬ jsprim@1.2.2
│ │ │ │ │ ├── extsprintf@1.0.2
│ │ │ │ │ ├── json-schema@0.2.2
│ │ │ │ │ └── verror@1.3.6
│ │ │ │ └─┬ sshpk@1.7.2
│ │ │ │   ├── asn1@0.2.3
│ │ │ │   ├── assert-plus@0.2.0
│ │ │ │   ├─┬ dashdash@1.11.0
│ │ │ │   │ └── assert-plus@0.1.5
│ │ │ │   ├── ecc-jsbn@0.1.1
│ │ │ │   ├── jodid25519@1.0.2
│ │ │ │   ├── jsbn@0.1.0
│ │ │ │   └── tweetnacl@0.13.2
│ │ │ ├── is-typedarray@1.0.0
│ │ │ ├── isstream@0.1.2
│ │ │ ├── json-stringify-safe@5.0.1
│ │ │ ├─┬ mime-types@2.1.9
│ │ │ │ └── mime-db@1.21.0
│ │ │ ├── node-uuid@1.4.7
│ │ │ ├── oauth-sign@0.8.0
│ │ │ ├── qs@5.2.0
│ │ │ ├── stringstream@0.0.5
│ │ │ ├── tough-cookie@2.2.1
│ │ │ └── tunnel-agent@0.4.2
│ │ └── twitter-ng@0.6.2
│ ├─┬ nopt@3.0.6
│ │ └── abbrev@1.0.7
│ ├─┬ oauth2orize@1.2.0
│ │ ├─┬ debug@2.2.0
│ │ │ └── ms@0.7.1
│ │ ├── uid2@0.0.3
│ │ └── utils-merge@1.0.0
│ ├── on-headers@1.0.1
│ ├─┬ passport@0.3.2
│ │ ├── passport-strategy@1.0.0
│ │ └── pause@0.0.1
│ ├─┬ passport-http-bearer@1.0.1
│ │ └── passport-strategy@1.0.0
│ ├─┬ passport-oauth2-client-password@0.1.2
│ │ └── passport-strategy@1.0.0
│ ├─┬ raw-body@2.1.5
│ │ ├── bytes@2.2.0
│ │ ├── iconv-lite@0.4.13
│ │ └── unpipe@1.0.0
│ ├── semver@5.1.0
│ ├─┬ sentiment@1.0.4
│ │ └─┬ lodash.assign@3.2.0
│ │   ├─┬ lodash._baseassign@3.2.0
│ │   │ └── lodash._basecopy@3.0.1
│ │   ├─┬ lodash._createassigner@3.1.1
│ │   │ ├── lodash._bindcallback@3.0.1
│ │   │ ├── lodash._isiterateecall@3.0.9
│ │   │ └── lodash.restparam@3.6.1
│ │   └─┬ lodash.keys@3.1.2
│ │     ├── lodash._getnative@3.9.1
│ │     ├── lodash.isarguments@3.0.4
│ │     └── lodash.isarray@3.0.4
│ ├─┬ uglify-js@2.6.1
│ │ ├── async@0.2.10
│ │ ├── source-map@0.5.3
│ │ ├── uglify-to-browserify@1.0.2
│ │ └─┬ yargs@3.10.0
│ │   ├── camelcase@1.2.1
│ │   ├─┬ cliui@2.1.0
│ │   │ ├─┬ center-align@0.1.2
│ │   │ │ ├─┬ align-text@0.1.3
│ │   │ │ │ ├─┬ kind-of@2.0.1
│ │   │ │ │ │ └── is-buffer@1.1.1
│ │   │ │ │ ├── longest@1.0.1
│ │   │ │ │ └── repeat-string@1.5.2
│ │   │ │ └── lazy-cache@0.2.7
│ │   │ ├─┬ right-align@0.1.3
│ │   │ │ └─┬ align-text@0.1.3
│ │   │ │   ├─┬ kind-of@2.0.1
│ │   │ │   │ └── is-buffer@1.1.1
│ │   │ │   ├── longest@1.0.1
│ │   │ │   └── repeat-string@1.5.2
│ │   │ └── wordwrap@0.0.2
│ │   ├─┬ decamelize@1.1.2
│ │   │ └── escape-string-regexp@1.0.4
│ │   └── window-size@0.1.0
│ ├── when@3.7.7
│ ├─┬ ws@0.8.1
│ │ ├─┬ bufferutil@1.2.1
│ │ │ ├── bindings@1.2.1
│ │ │ └── nan@2.1.0
│ │ ├── options@0.0.6
│ │ ├── ultron@1.0.2
│ │ └─┬ utf-8-validate@1.2.1
│ │   ├── bindings@1.2.1
│ │   └── nan@2.1.0
│ └─┬ xml2js@0.4.15
│   ├── sax@1.1.4
│   └─┬ xmlbuilder@4.2.0
│     └── lodash@3.10.1
├─┬ node-red-admin@0.1.2
│ ├─┬ bcrypt@0.8.5
│ │ ├── bindings@1.2.1
│ │ └── nan@2.0.5
│ ├── bcryptjs@2.3.0
│ ├─┬ cli-table@0.3.1
│ │ └── colors@1.0.3
│ ├── colors@1.1.2
│ ├── minimist@1.2.0
│ ├─┬ read@1.0.7
│ │ └── mute-stream@0.0.5
│ ├─┬ request@2.67.0
│ │ ├── aws-sign2@0.6.0
│ │ ├─┬ bl@1.0.0
│ │ │ └─┬ readable-stream@2.0.5
│ │ │   ├── core-util-is@1.0.2
│ │ │   ├── inherits@2.0.1
│ │ │   ├── isarray@0.0.1
│ │ │   ├── process-nextick-args@1.0.6
│ │ │   ├── string_decoder@0.10.31
│ │ │   └── util-deprecate@1.0.2
│ │ ├── caseless@0.11.0
│ │ ├─┬ combined-stream@1.0.5
│ │ │ └── delayed-stream@1.0.0
│ │ ├── extend@3.0.0
│ │ ├── forever-agent@0.6.1
│ │ ├─┬ form-data@1.0.0-rc3
│ │ │ └── async@1.5.1
│ │ ├─┬ har-validator@2.0.3
│ │ │ ├─┬ chalk@1.1.1
│ │ │ │ ├── ansi-styles@2.1.0
│ │ │ │ ├── escape-string-regexp@1.0.4
│ │ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ ├─┬ strip-ansi@3.0.0
│ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ └── supports-color@2.0.0
│ │ │ ├─┬ commander@2.9.0
│ │ │ │ └── graceful-readlink@1.0.1
│ │ │ ├─┬ is-my-json-valid@2.12.3
│ │ │ │ ├── generate-function@2.0.0
│ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ └── is-property@1.0.2
│ │ │ │ ├── jsonpointer@2.0.0
│ │ │ │ └── xtend@4.0.1
│ │ │ └─┬ pinkie-promise@2.0.0
│ │ │   └── pinkie@2.0.1
│ │ ├─┬ hawk@3.1.2
│ │ │ ├── boom@2.10.1
│ │ │ ├── cryptiles@2.0.5
│ │ │ ├── hoek@2.16.3
│ │ │ └── sntp@1.0.9
│ │ ├─┬ http-signature@1.1.0
│ │ │ ├── assert-plus@0.1.5
│ │ │ ├─┬ jsprim@1.2.2
│ │ │ │ ├── extsprintf@1.0.2
│ │ │ │ ├── json-schema@0.2.2
│ │ │ │ └── verror@1.3.6
│ │ │ └─┬ sshpk@1.7.2
│ │ │   ├── asn1@0.2.3
│ │ │   ├── assert-plus@0.2.0
│ │ │   ├─┬ dashdash@1.11.0
│ │ │   │ └── assert-plus@0.1.5
│ │ │   ├── ecc-jsbn@0.1.1
│ │ │   ├── jodid25519@1.0.2
│ │ │   ├── jsbn@0.1.0
│ │ │   └── tweetnacl@0.13.2
│ │ ├── is-typedarray@1.0.0
│ │ ├── isstream@0.1.2
│ │ ├── json-stringify-safe@5.0.1
│ │ ├─┬ mime-types@2.1.9
│ │ │ └── mime-db@1.21.0
│ │ ├── node-uuid@1.4.7
│ │ ├── oauth-sign@0.8.0
│ │ ├── qs@5.2.0
│ │ ├── stringstream@0.0.5
│ │ ├── tough-cookie@2.2.1
│ │ └── tunnel-agent@0.4.2
│ └── when@3.7.5
├─┬ node-red-contrib-ibm-watson-iot@0.2.5
│ └─┬ ibmiotf@0.2.12
│   ├─┬ axios@0.5.4
│   │ └── es6-promise@2.3.0
│   ├── bluebird@2.10.2
│   ├── btoa@1.1.2
│   ├── events@1.1.0
│   ├── format@0.2.2
│   ├── loglevel@1.4.0
│   └─┬ mqtt@1.5.0
│     ├─┬ commist@1.0.0
│     │ └── leven@1.0.2
│     ├─┬ concat-stream@1.5.1
│     │ ├─┬ readable-stream@2.0.6
│     │ │ ├── core-util-is@1.0.2
│     │ │ ├── isarray@1.0.0
│     │ │ ├── process-nextick-args@1.0.7
│     │ │ ├── string_decoder@0.10.31
│     │ │ └── util-deprecate@1.0.2
│     │ └── typedarray@0.0.6
│     ├─┬ end-of-stream@1.1.0
│     │ └─┬ once@1.3.3
│     │   └── wrappy@1.0.2
│     ├─┬ help-me@0.1.0
│     │ └─┬ pump@1.0.1
│     │   └─┬ once@1.3.3
│     │     └── wrappy@1.0.2
│     ├── inherits@2.0.1
│     ├── minimist@1.2.0
│     ├─┬ mqtt-connection@2.1.1
│     │ ├── reduplexer@1.1.0
│     │ └── through2@0.6.5
│     ├─┬ mqtt-packet@3.4.6
│     │ └── bl@0.9.5
│     ├─┬ readable-stream@1.0.34
│     │ ├── core-util-is@1.0.2
│     │ ├── isarray@0.0.1
│     │ └── string_decoder@0.10.31
│     ├─┬ websocket-stream@2.3.0
│     │ ├─┬ duplexify@3.4.3
│     │ │ ├─┬ end-of-stream@1.0.0
│     │ │ │ └─┬ once@1.3.3
│     │ │ │   └── wrappy@1.0.2
│     │ │ └─┬ readable-stream@2.1.4
│     │ │   ├── buffer-shims@1.0.0
│     │ │   ├── core-util-is@1.0.2
│     │ │   ├── isarray@1.0.0
│     │ │   ├── process-nextick-args@1.0.7
│     │ │   ├── string_decoder@0.10.31
│     │ │   └── util-deprecate@1.0.2
│     │ ├─┬ through2@2.0.1
│     │ │ └─┬ readable-stream@2.0.6
│     │ │   ├── core-util-is@1.0.2
│     │ │   ├── isarray@1.0.0
│     │ │   ├── process-nextick-args@1.0.7
│     │ │   ├── string_decoder@0.10.31
│     │ │   └── util-deprecate@1.0.2
│     │ └─┬ ws@0.8.1
│     │   ├─┬ bufferutil@1.2.1
│     │   │ ├── bindings@1.2.1
│     │   │ └── nan@2.3.3
│     │   ├── options@0.0.6
│     │   ├── ultron@1.0.2
│     │   └─┬ utf-8-validate@1.2.1
│     │     ├── bindings@1.2.1
│     │     └── nan@2.3.3
│     └── xtend@4.0.1
├─┬ node-red-contrib-kodi@0.2.5
│ ├─┬ kodi-ws@2.4.0
│ │ ├─┬ babel-eslint@5.0.0-beta9
│ │ │ ├── acorn-to-esprima@2.0.8
│ │ │ ├─┬ babel-traverse@6.4.5
│ │ │ │ ├─┬ babel-code-frame@6.3.13
│ │ │ │ │ ├─┬ chalk@1.1.1
│ │ │ │ │ │ ├── ansi-styles@2.1.0
│ │ │ │ │ │ ├── escape-string-regexp@1.0.4
│ │ │ │ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ │ │ ├─┬ strip-ansi@3.0.0
│ │ │ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ │ │ └── supports-color@2.0.0
│ │ │ │ │ ├── esutils@2.0.2
│ │ │ │ │ ├── js-tokens@1.0.2
│ │ │ │ │ └─┬ line-numbers@0.2.0
│ │ │ │ │   └── left-pad@0.0.3
│ │ │ │ ├── babel-messages@6.3.18
│ │ │ │ ├─┬ babel-runtime@5.8.35
│ │ │ │ │ └── core-js@1.2.6
│ │ │ │ ├─┬ debug@2.2.0
│ │ │ │ │ └── ms@0.7.1
│ │ │ │ ├── globals@8.18.0
│ │ │ │ ├─┬ invariant@2.2.0
│ │ │ │ │ └─┬ loose-envify@1.1.0
│ │ │ │ │   └── js-tokens@1.0.2
│ │ │ │ ├── lodash@3.10.1
│ │ │ │ └─┬ repeating@1.1.3
│ │ │ │   └─┬ is-finite@1.0.1
│ │ │ │     └── number-is-nan@1.0.0
│ │ │ ├─┬ babel-types@6.4.5
│ │ │ │ ├─┬ babel-runtime@5.8.35
│ │ │ │ │ └── core-js@1.2.6
│ │ │ │ ├── esutils@2.0.2
│ │ │ │ ├── lodash@3.10.1
│ │ │ │ └── to-fast-properties@1.0.1
│ │ │ ├─┬ babylon@6.4.5
│ │ │ │ └─┬ babel-runtime@5.8.35
│ │ │ │   └── core-js@1.2.6
│ │ │ ├─┬ lodash.assign@3.2.0
│ │ │ │ ├─┬ lodash._baseassign@3.2.0
│ │ │ │ │ └── lodash._basecopy@3.0.1
│ │ │ │ ├─┬ lodash._createassigner@3.1.1
│ │ │ │ │ ├── lodash._bindcallback@3.0.1
│ │ │ │ │ ├── lodash._isiterateecall@3.0.9
│ │ │ │ │ └── lodash.restparam@3.6.1
│ │ │ │ └─┬ lodash.keys@3.1.2
│ │ │ │   ├── lodash._getnative@3.9.1
│ │ │ │   ├── lodash.isarguments@3.0.6
│ │ │ │   └── lodash.isarray@3.0.4
│ │ │ └─┬ lodash.pick@3.1.0
│ │ │   ├─┬ lodash._baseflatten@3.1.4
│ │ │   │ ├── lodash.isarguments@3.0.6
│ │ │   │ └── lodash.isarray@3.0.4
│ │ │   ├── lodash._bindcallback@3.0.1
│ │ │   ├── lodash._pickbyarray@3.0.2
│ │ │   ├─┬ lodash._pickbycallback@3.0.0
│ │ │   │ ├── lodash._basefor@3.0.3
│ │ │   │ └─┬ lodash.keysin@3.0.8
│ │ │   │   ├── lodash.isarguments@3.0.6
│ │ │   │   └── lodash.isarray@3.0.4
│ │ │   └── lodash.restparam@3.6.1
│ │ ├─┬ has-value@0.2.1
│ │ │ ├── get-value@2.0.3
│ │ │ └── has-values@0.1.3
│ │ ├─┬ jrpc-schema@2.0.0
│ │ │ └─┬ skeemas@1.2.2
│ │ │   ├── skeemas-json-pointer@1.0.0
│ │ │   └── skeemas-json-refs@1.0.1
│ │ ├─┬ set-value@0.2.0
│ │ │ ├── isobject@1.0.2
│ │ │ └── noncharacters@1.1.0
│ │ └─┬ ws@0.7.2
│ │   ├─┬ bufferutil@1.1.0
│ │   │ ├── bindings@1.2.1
│ │   │ └── nan@1.8.4
│ │   ├── options@0.0.6
│ │   └── ultron@1.0.2
│ └─┬ machina@1.1.2
│   └── lodash@3.10.1
├─┬ node-red-contrib-ui@1.2.19
│ ├─┬ serve-static@1.10.2
│ │ ├── escape-html@1.0.3
│ │ ├── parseurl@1.3.1
│ │ └─┬ send@0.13.1
│ │   ├── debug@2.2.0
│ │   ├── depd@1.1.0
│ │   ├── destroy@1.0.4
│ │   ├── etag@1.7.0
│ │   ├── fresh@0.3.0
│ │   ├─┬ http-errors@1.3.1
│ │   │ └── inherits@2.0.1
│ │   ├── mime@1.3.4
│ │   ├── ms@0.7.1
│ │   ├─┬ on-finished@2.3.0
│ │   │ └── ee-first@1.1.1
│ │   ├── range-parser@1.0.3
│ │   └── statuses@1.2.1
│ └─┬ socket.io@1.4.5
│   ├─┬ debug@2.2.0
│   │ └── ms@0.7.1
│   ├─┬ engine.io@1.6.8
│   │ ├─┬ accepts@1.1.4
│   │ │ ├─┬ mime-types@2.0.14
│   │ │ │ └── mime-db@1.12.0
│   │ │ └── negotiator@0.4.9
│   │ ├── base64id@0.1.0
│   │ ├─┬ engine.io-parser@1.2.4
│   │ │ ├── after@0.8.1
│   │ │ ├── arraybuffer.slice@0.0.6
│   │ │ ├── base64-arraybuffer@0.1.2
│   │ │ ├── blob@0.0.4
│   │ │ ├─┬ has-binary@0.1.6
│   │ │ │ └── isarray@0.0.1
│   │ │ └── utf8@2.1.0
│   │ └─┬ ws@1.0.1
│   │   ├── options@0.0.6
│   │   └── ultron@1.0.2
│   ├─┬ has-binary@0.1.7
│   │ └── isarray@0.0.1
│   ├─┬ socket.io-adapter@0.4.0
│   │ └─┬ socket.io-parser@2.2.2
│   │   ├── benchmark@1.0.0
│   │   ├── component-emitter@1.1.2
│   │   ├── debug@0.7.4
│   │   ├── isarray@0.0.1
│   │   └── json3@3.2.6
│   ├─┬ socket.io-client@1.4.5
│   │ ├── backo2@1.0.2
│   │ ├── component-bind@1.0.0
│   │ ├── component-emitter@1.2.0
│   │ ├─┬ engine.io-client@1.6.8
│   │ │ ├── component-emitter@1.1.2
│   │ │ ├── component-inherit@0.0.3
│   │ │ ├─┬ engine.io-parser@1.2.4
│   │ │ │ ├── after@0.8.1
│   │ │ │ ├── arraybuffer.slice@0.0.6
│   │ │ │ ├── base64-arraybuffer@0.1.2
│   │ │ │ ├── blob@0.0.4
│   │ │ │ ├─┬ has-binary@0.1.6
│   │ │ │ │ └── isarray@0.0.1
│   │ │ │ └── utf8@2.1.0
│   │ │ ├── has-cors@1.1.0
│   │ │ ├─┬ parsejson@0.0.1
│   │ │ │ └─┬ better-assert@1.0.2
│   │ │ │   └── callsite@1.0.0
│   │ │ ├─┬ parseqs@0.0.2
│   │ │ │ └─┬ better-assert@1.0.2
│   │ │ │   └── callsite@1.0.0
│   │ │ ├─┬ ws@1.0.1
│   │ │ │ ├── options@0.0.6
│   │ │ │ └── ultron@1.0.2
│   │ │ ├── xmlhttprequest-ssl@1.5.1
│   │ │ └── yeast@0.1.2
│   │ ├── indexof@0.0.1
│   │ ├── object-component@0.0.3
│   │ ├─┬ parseuri@0.0.4
│   │ │ └─┬ better-assert@1.0.2
│   │ │   └── callsite@1.0.0
│   │ └── to-array@0.1.4
│   └─┬ socket.io-parser@2.2.6
│     ├── benchmark@1.0.0
│     ├── component-emitter@1.1.2
│     ├── isarray@0.0.1
│     └── json3@3.3.2
├── node-red-node-emoncms@0.0.9
├─┬ node-red-node-google@0.1.0
│ ├── clone@0.1.11
│ ├─┬ minimatch@2.0.4
│ │ └─┬ brace-expansion@1.1.2
│ │   ├── balanced-match@0.3.0
│ │   └── concat-map@0.0.1
│ └─┬ request@2.40.0
│   ├── aws-sign2@0.5.0
│   ├── forever-agent@0.5.2
│   ├─┬ form-data@0.1.4
│   │ ├── async@0.9.2
│   │ ├─┬ combined-stream@0.0.7
│   │ │ └── delayed-stream@0.0.5
│   │ └── mime@1.2.11
│   ├─┬ hawk@1.1.1
│   │ ├── boom@0.4.2
│   │ ├── cryptiles@0.2.2
│   │ ├── hoek@0.9.1
│   │ └── sntp@0.2.4
│   ├─┬ http-signature@0.10.1
│   │ ├── asn1@0.1.11
│   │ ├── assert-plus@0.1.5
│   │ └── ctype@0.5.3
│   ├── json-stringify-safe@5.0.1
│   ├── mime-types@1.0.2
│   ├── node-uuid@1.4.7
│   ├── oauth-sign@0.3.0
│   ├── qs@1.0.2
│   ├── stringstream@0.0.5
│   ├── tough-cookie@2.2.1
│   └── tunnel-agent@0.4.2
├── node-red-node-ledborg@0.0.13
├── node-red-node-openweathermap@0.1.7
├── node-red-node-ping@0.0.7
├── node-red-node-random@0.0.5
├── node-red-node-rbe@0.1.1
├── node-red-node-smooth@0.0.5
└─┬ node-red-node-weather-underground@0.1.2
└─┬ wundergroundnode@0.9.0
├── limiter@1.0.5
├── moment@2.11.1
├─┬ request@2.67.0
│ ├── aws-sign2@0.6.0
│ ├─┬ bl@1.0.0
│ │ └─┬ readable-stream@2.0.5
│ │   ├── core-util-is@1.0.2
│ │   ├── inherits@2.0.1
│ │   ├── isarray@0.0.1
│ │   ├── process-nextick-args@1.0.6
│ │   ├── string_decoder@0.10.31
│ │   └── util-deprecate@1.0.2
│ ├── caseless@0.11.0
│ ├─┬ combined-stream@1.0.5
│ │ └── delayed-stream@1.0.0
│ ├── extend@3.0.0
│ ├── forever-agent@0.6.1
│ ├─┬ form-data@1.0.0-rc3
│ │ └── async@1.5.2
│ ├─┬ har-validator@2.0.3
│ │ ├─┬ chalk@1.1.1
│ │ │ ├── ansi-styles@2.1.0
│ │ │ ├── escape-string-regexp@1.0.4
│ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ └── ansi-regex@2.0.0
│ │ │ ├─┬ strip-ansi@3.0.0
│ │ │ │ └── ansi-regex@2.0.0
│ │ │ └── supports-color@2.0.0
│ │ ├─┬ commander@2.9.0
│ │ │ └── graceful-readlink@1.0.1
│ │ ├─┬ is-my-json-valid@2.12.3
│ │ │ ├── generate-function@2.0.0
│ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ └── is-property@1.0.2
│ │ │ ├── jsonpointer@2.0.0
│ │ │ └── xtend@4.0.1
│ │ └─┬ pinkie-promise@2.0.0
│ │   └── pinkie@2.0.1
│ ├─┬ hawk@3.1.2
│ │ ├── boom@2.10.1
│ │ ├── cryptiles@2.0.5
│ │ ├── hoek@2.16.3
│ │ └── sntp@1.0.9
│ ├─┬ http-signature@1.1.0
│ │ ├── assert-plus@0.1.5
│ │ ├─┬ jsprim@1.2.2
│ │ │ ├── extsprintf@1.0.2
│ │ │ ├── json-schema@0.2.2
│ │ │ └── verror@1.3.6
│ │ └─┬ sshpk@1.7.2
│ │   ├── asn1@0.2.3
│ │   ├── assert-plus@0.2.0
│ │   ├─┬ dashdash@1.12.1
│ │   │ └── assert-plus@0.1.5
│ │   ├── ecc-jsbn@0.1.1
│ │   ├── jodid25519@1.0.2
│ │   ├── jsbn@0.1.0
│ │   └── tweetnacl@0.13.3
│ ├── is-typedarray@1.0.0
│ ├── isstream@0.1.2
│ ├── json-stringify-safe@5.0.1
│ ├─┬ mime-types@2.1.9
│ │ └── mime-db@1.21.0
│ ├── node-uuid@1.4.7
│ ├── oauth-sign@0.8.0
│ ├── qs@5.2.0
│ ├── stringstream@0.0.5
│ ├── tough-cookie@2.2.1
│ └── tunnel-agent@0.4.2
└── underscore@1.8.3
npm ERR! missing: node-pre-gyp-github@^1.1.0, required by serialport@2.0.6
pi@raspberrypi:/usr/lib/node_modules $
`
`

which version of node.js and npm do you have installed ? what do
node -v
npm -v
report ?

Hi,
As requested:
pi@raspberrypi:/usr/lib/node_modules $ npm -v
2.14.15
pi@raspberrypi:/usr/lib/node_modules $ node -v
v0.10.29
pi@raspberrypi:/usr/lib/node_modules $ npm -g -v
2.14.15
pi@raspberrypi:/usr/lib/node_modules $ node -g -v
v0.10.29
pi@raspberrypi:/usr/lib/node_modules $

Just had another instance of this problem.  It seemed to be triggered by accessing my node-red UI at URL : http://192.168.1.15:1880/#

Just had another instance.  It happened when I accessed my node-red UI (see below screenshot).
FYI this time the following was logged in the node-red log file:

10 Jun 07:43:49 - [warn] [google-credentials:942c464d.6bd3b8] trying to refresh token due to expiry
10 Jun 08:43:54 - [warn] [google-credentials:942c464d.6bd3b8] trying to refresh token due to expiry
10 Jun 09:21:24 - [warn] [function:arp-scan output to json] hosts responded (=13) != packets received (=14)
10 Jun 09:43:59 - [warn] [google-credentials:942c464d.6bd3b8] trying to refresh token due to expiry
Connection was closed.
10 Jun 10:37:12 - [red] Uncaught Exception:
10 Jun 10:37:12 - Error: write EIO
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)

There have been a couple updates recently to the Watson IoT nodes - would be interested to know if this is still an issue

Given this is not coming from a core node (plus its 4 years old) I'm going to close.

authors: dceejay janvda knolleary

repo: node-red/node-red


text:
avoid unneeded call to Isolate::GetCurrent() in converters

I have seen an unneeded call to Isolate::GetCurrent() in converters during stepping around. Even the overhead of this is small it's unneeded.

Thank you. Seems nobody has noticed this in over a year.

authors: Flarna kkoopa

repo: nodejs/nan


text:
less generic token.

fixes #3
we are going to have multiple tokens configured in this app, so we have a shared namespace.

merged but github broke during

repo: nodezoo/nodezoo-github


text:
Ejecting express-middleware to its own module

It doesn't really belong to the network layer. It's just a mean to support the "batching protocol" that should be separated from the rest.
Not everybody use express. I use koa and I made  koa-graphql-batch to use this network layer, thus I don't need express-middleware.
If one doesn't bother to do properly minification/tree-shaking, the middleware code will end up client side where it's all but needed.

I could take care of this if @nodkz agrees.

@mattecapu 👍
I agree with you. Express-middleware should be extracted from RRNL. In the next month I'll start implementing subscriptions and bump new major version.
Before this moment let keep untouched this extra 1.6 kb of express-middleware for semver compatibility.

BTW. Please add a link to your koa-graphql-batch to readme. Thanks!

authors: mattecapu nodkz

repo: nodkz/react-relay-network-layer


text:
Remove parallel streaming

Parallel streams are run on a seperate thread causing AssertionError: must be run on client thread when calling ItemManager.getItemPrice

I confirmed this fixes the crash. Can we get this merged in?

repo: nofatigue/runelite-profit-tracker


text:
docker log format

the docker log format does not include the source IP address. correct so that it does (including using the proxy forward-for header)

added 2m of time spent

closing as release v1.3 #371  made changes forcing this issue now to be stale.


text:
segfaults when calling setup

Hi. Would you mind sharing what versions of neovim, nvim-oxi and rustc you use to test nvim-completion?
I've tried with rustc 1.65.0-nightly/1.63.0, neovim (NVIM v0.8.0-dev-1021-g24fbda04b
Build type: Release), nvim-oxi latest master. Could you also share your config options for nvim-completion? Thanks.

rustc: rustc 1.65.0-nightly (e1b28cd2f 2022-08-19);
nvim:  NVIM v0.7.2;
nvim-oxi: latest master, updated in (d6f48b06a448b73135dafbfbc771ce9dd61efead);

Config:
-- config.lua

local completion = require("nvim_completion")

completion.setup({
  sources = {
    lipsum = { enable = function(_buf) return true end },
    lsp = { enable = true },
  },
})

Starting Neovim w/ nvim --clean -u ./config.lua.
Then you need to open a new buffer for the sources to attach to via :e <somefilename>.
Can you share your config? It shouldn't segfault. Does the segfault also happen if you use Neovim 0.7.2 instead of nightly?

Yup, just confirmed it only segfaults with neovim latest master.

That's not a segfault, that's just a panic (which I'm aware of).

Yup, I figured you would.


text:
Add zsh-completions

[ ] Add documents
[x] Add cli flag

# e.g
--generate-completion-script zsh/bash/etc..

repo: noir-cr/noir


text:
noirup fails due to Barretenberg build failure

Description
Aim
Successful installation of the nargo tool in order to perform Noir development.
Expected behavior
For invocation of noirup to successfully install nargo. Something along the lines of:
$ noirup
# ...
$ echo $?
0
$ nargo
# ...
$ echo $?
0

Bug
$ sudo apt-get install libomp-dev cmake
$ curl -L https://raw.githubusercontent.com/noir-lang/noir/master/noirup/install | bash
$ noirup
HEAD is now at e239f415 Handle predicate operator during inlining (#544)
  Installing nargo v0.1.0 (/home/jmcph4/.nargo/noir-lang/noir/crates/nargo)
    Updating crates.io index
   Compiling psm v0.1.21
   Compiling barretenberg_wrapper v0.1.0 (https://github.com/AztecProtocol/barretenberg?rev=804c7dcf21111acd1302a768a8fa2f453dcec50f#804c7dcf)
error: failed to run custom build command for `barretenberg_wrapper v0.1.0 (https://github.com/AztecProtocol/barretenberg?rev=804c7dcf21111acd1302a768a8fa2f453dcec50f#804c7dcf)`

Caused by:
  process didn't exit successfully: `/home/jmcph4/.nargo/noir-lang/noir/target/release/build/barretenberg_wrapper-6e0ec251307286f5/build-script-build` (exit status: 101)
  --- stdout
  CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-gnu = None
  CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-unknown-linux-gnu = None
  CMAKE_GENERATOR_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-unknown-linux-gnu = None
  CMAKE_PREFIX_PATH_x86_64_unknown_linux_gnu = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-unknown-linux-gnu = None
  CMAKE_x86_64_unknown_linux_gnu = None
  HOST_CMAKE = None
  CMAKE = None
  running: "cmake" "/home/jmcph4/.cargo/git/checkouts/barretenberg-6ce83dfea69613eb/804c7dc/barretenberg_wrapper/../barretenberg" "-DCMAKE_INSTALL_PREFIX=/home/jmcph4/.nargo/noir-lang/noir/target/release/build/barretenberg_wrapper-24257eaf3fa79116/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/cc" "-DCMAKE_BUILD_TYPE=Release"
  -- The CXX compiler identification is GNU 12.2.0
  -- The C compiler identification is GNU 12.2.0
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /usr/bin/c++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/cc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Found OpenMP_C: -fopenmp (found version "4.5")
  -- Found OpenMP_CXX: -fopenmp (found version "4.5")
  -- Found OpenMP: TRUE (found version "4.5")
  -- Multithreading is enabled.
  -- Found Python: /home/jmcph4/.pyenv/shims/python3 (found version "3.9.0") found components: Interpreter
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
  -- Found Threads: TRUE
  -- Failed to find LLVM FileCheck
  -- Found Git: /usr/bin/git (found version "2.37.2")
  -- git version: v1.6.1 normalized to 1.6.1
  -- Version: 1.6.1
  -- Looking for shm_open in rt
  -- Looking for shm_open in rt - found
  -- Performing Test HAVE_CXX_FLAG_STD_CXX11
  -- Performing Test HAVE_CXX_FLAG_STD_CXX11 - Success
  -- Performing Test HAVE_CXX_FLAG_WALL
  -- Performing Test HAVE_CXX_FLAG_WALL - Success
  -- Performing Test HAVE_CXX_FLAG_WEXTRA
  -- Performing Test HAVE_CXX_FLAG_WEXTRA - Success
  -- Performing Test HAVE_CXX_FLAG_WSHADOW
  -- Performing Test HAVE_CXX_FLAG_WSHADOW - Success
  -- Performing Test HAVE_CXX_FLAG_WERROR
  -- Performing Test HAVE_CXX_FLAG_WERROR - Success
  -- Performing Test HAVE_CXX_FLAG_WSUGGEST_OVERRIDE
  -- Performing Test HAVE_CXX_FLAG_WSUGGEST_OVERRIDE - Success
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC - Success
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS
  -- Performing Test HAVE_CXX_FLAG_PEDANTIC_ERRORS - Success
  -- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32
  -- Performing Test HAVE_CXX_FLAG_WSHORTEN_64_TO_32 - Failed
  -- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING
  -- Performing Test HAVE_CXX_FLAG_FSTRICT_ALIASING - Success
  -- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS
  -- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED_DECLARATIONS - Success
  -- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED
  -- Performing Test HAVE_CXX_FLAG_WNO_DEPRECATED - Success
  -- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING
  -- Performing Test HAVE_CXX_FLAG_WSTRICT_ALIASING - Success
  -- Performing Test HAVE_CXX_FLAG_WD654
  -- Performing Test HAVE_CXX_FLAG_WD654 - Failed
  -- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY
  -- Performing Test HAVE_CXX_FLAG_WTHREAD_SAFETY - Failed
  -- Performing Test HAVE_CXX_FLAG_COVERAGE
  -- Performing Test HAVE_CXX_FLAG_COVERAGE - Success
  -- Performing Test HAVE_STD_REGEX
  -- Performing Test HAVE_STD_REGEX
  -- Performing Test HAVE_STD_REGEX -- success
  -- Performing Test HAVE_GNU_POSIX_REGEX
  -- Performing Test HAVE_GNU_POSIX_REGEX
  -- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
  -- Performing Test HAVE_POSIX_REGEX
  -- Performing Test HAVE_POSIX_REGEX
  -- Performing Test HAVE_POSIX_REGEX -- success
  -- Performing Test HAVE_STEADY_CLOCK
  -- Performing Test HAVE_STEADY_CLOCK
  -- Performing Test HAVE_STEADY_CLOCK -- success
  -- Using optimized assembly for field arithmetic.
  -- Looking for unistd.h
  -- Looking for unistd.h - found
  -- Looking for crc32c_value in crc32c
  -- Looking for crc32c_value in crc32c - not found
  -- Looking for snappy_compress in snappy
  -- Looking for snappy_compress in snappy - not found
  -- Looking for malloc in tcmalloc
  -- Looking for malloc in tcmalloc - not found
  -- Looking for fdatasync
  -- Looking for fdatasync - found
  -- Looking for F_FULLFSYNC
  -- Looking for F_FULLFSYNC - not found
  -- Performing Test HAVE_CLANG_THREAD_SAFETY
  -- Performing Test HAVE_CLANG_THREAD_SAFETY - Failed
  -- Performing Test HAVE_CXX17_HAS_INCLUDE
  -- Performing Test HAVE_CXX17_HAS_INCLUDE - Success
  -- Looking for sqlite3_open in sqlite3
  -- Looking for sqlite3_open in sqlite3 - found
  -- Performing Test HAVE_KYOTOCABINET
  -- Performing Test HAVE_KYOTOCABINET - Failed
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /home/jmcph4/.nargo/noir-lang/noir/target/release/build/barretenberg_wrapper-24257eaf3fa79116/out/build
  running: "cmake" "--build" "." "--target" "install" "--config" "Release"
  [  0%] Building CXX object src/aztec/env/CMakeFiles/env_objects.dir/logstr.cpp.o
  [  0%] Built target env_objects
  [  1%] Building CXX object src/aztec/numeric/CMakeFiles/numeric_objects.dir/random/engine.cpp.o
  [  1%] Built target numeric_objects
  [  2%] Building CXX object _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o

  --- stderr
  CMake Warning:
    Manually-specified variables were not used by the project:

      CMAKE_ASM_COMPILER
      CMAKE_ASM_FLAGS

  In file included from /usr/include/c++/12/ios:40,
                   from /usr/include/c++/12/ostream:38,
                   from /usr/include/c++/12/bits/unique_ptr.h:41,
                   from /usr/include/c++/12/memory:76,
                   from /home/jmcph4/.nargo/noir-lang/noir/target/release/build/barretenberg_wrapper-24257eaf3fa79116/out/build/_deps/googletest-src/googletest/include/gtest/gtest.h:57,
                   from /home/jmcph4/.nargo/noir-lang/noir/target/release/build/barretenberg_wrapper-24257eaf3fa79116/out/build/_deps/googletest-src/googletest/src/gtest-all.cc:38:
  In static member function ‘static constexpr std::char_traits<char>::char_type* std::char_traits<char>::copy(char_type*, const char_type*, std::size_t)’,
      inlined from ‘static constexpr void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:423:21,
      inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.tcc:532:22,
      inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::replace(size_type, size_type, const _CharT*, size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:2171:19,
      inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::insert(size_type, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:1928:22,
      inlined from ‘constexpr std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(const _CharT*, __cxx11::basic_string<_CharT, _Traits, _Allocator>&&) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]’ at /usr/include/c++/12/bits/basic_string.h:3541:36,
      inlined from ‘static std::string testing::internal::StreamingListener::UrlEncode(const char*)’ at /home/jmcph4/.nargo/noir-lang/noir/target/release/build/barretenberg_wrapper-24257eaf3fa79116/out/build/_deps/googletest-src/googletest/src/gtest.cc:4882:27:
  /usr/include/c++/12/bits/char_traits.h:431:56: error: ‘void* __builtin_memcpy(void*, const void*, long unsigned int)’ accessing 9223372036854775810 or more bytes at offsets [2, 9223372036854775807] and 1 may overlap up to 9223372036854775813 bytes at offset -3 [-Werror=restrict]
    431 |         return static_cast<char_type*>(__builtin_memcpy(__s1, __s2, __n));
        |                                        ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
  cc1plus: all warnings being treated as errors
  gmake[2]: *** [_deps/googletest-build/googletest/CMakeFiles/gtest.dir/build.make:76: _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1
  gmake[1]: *** [CMakeFiles/Makefile2:1185: _deps/googletest-build/googletest/CMakeFiles/gtest.dir/all] Error 2
  gmake: *** [Makefile:146: all] Error 2
  thread 'main' panicked at '
  command did not execute successfully, got: exit status: 2

  build script failed, must exit now', /home/jmcph4/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.49/src/lib.rs:1104:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: failed to compile `nargo v0.1.0 (/home/jmcph4/.nargo/noir-lang/noir/crates/nargo)`, intermediate artifacts can be found at `/home/jmcph4/.nargo/noir-lang/noir/target`
noirup: command failed: cargo install --path ./crates/nargo --bins --locked --force --root /home/jmcph4/.nargo

To reproduce

Install noirup (as per https://github.com/noir-lang/noir/tree/1d1b592039fa73ce561d6b6886c36b02b36ada53/noirup#readme)
Invoke noirup

Environment
$ uname --all
Linux foobar 5.19.0-2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.19.11-1 (2022-09-24) x86_64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux bookworm/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Additional context
I initially attempted to follow the official documentation, but this failed for other reasons. I then found noirup and decided it was the more graceful approach.
The build appears to be failing during the Barretenberg build section. I appear to satisfy the Barretenberg dependences.

Since moving to nix, this issue has been solved. Feel free to reopen if you encounter it again!

repo: noir-lang/noir


text:
Test brillig_cow fails with inliner = -Inf

Aim
Trying to run test_programs with different --inliner-aggressiveness in https://github.com/noir-lang/noir/pull/6429
Expected Behavior
execution_success tests should pass with any inliner setting
Bug
test_brillig_cow fails with the following error message:
❯ nargo execute --force --inliner-aggressiveness -9223372036854775808
error: Failed to solve program: 'Failed to solve brillig function'
   ┌─ /Users/aakoshh/Work/aztec/noir/test_programs/execution_success/brillig_cow/src/main.nr:46:12
   │
46 │     assert(expected_result.is_equal(modify_in_inlined_constrained(original, index)));
   │            ------------------------------------------------------------------------
   │
   = Call stack:
     1. /Users/aakoshh/Work/aztec/noir/test_programs/execution_success/brillig_cow/src/main.nr:46:12

Failed to solve program: 'Failed to solve brillig function'

To Reproduce

cd test_programs/execution_success/brillig_cow
nargo execute --force --inliner-aggressiveness -9223372036854775808

Alternatively:
3. cargo run -p nargo_cli --  --program-dir . execute --force --inliner-aggressiveness -9223372036854775808
Workaround
None
Workaround Description
No response
Additional Context
No response
Project Impact
None
Blocker Context
No response
Nargo Version
nargo version = 0.36.0 noirc version = 0.36.0+2f0cb3e80f3d93a1dee77fffacc397811e300257 (git version hash: 2f0cb3e80f3d93a1dee77fffacc397811e300257, is dirty: false)
NoirJS Version
No response
Proving Backend Tooling & Version
No response
Would you like to submit a PR for this Issue?
None
Support Needs
No response

A bit more detail.
I modified the program like so:
unconstrained fn main(original: [Field; ARRAY_SIZE], index: u64, expected_result: ExecutionResult) {
    let result_uncons = modify_in_unconstrained(original, index);
    let result_cons = modify_in_inlined_constrained(original, index);

    std::println(f"uncons: {result_uncons}");
    std::println(f"cons:   {result_cons}");
    std::println(f"expect: {expected_result}");

    assert(expected_result.is_equal(result_uncons));
    assert(expected_result.is_equal(result_cons));
}

The print shows that the constrained and unconstrained agree:
uncons: ExecutionResult { original: [0x00, 0x01, 0x02, 0x03, 0x04], modified_once: [0x00, 0x01, 0x1b, 0x1b, 0x04], modified_twice: [0x00, 0x01, 0x1b, 0x1b, 0x04] }
cons:   ExecutionResult { original: [0x00, 0x01, 0x02, 0x03, 0x04], modified_once: [0x00, 0x01, 0x1b, 0x1b, 0x04], modified_twice: [0x00, 0x01, 0x1b, 0x1b, 0x04] }
expect: ExecutionResult { original: [0x00, 0x01, 0x02, 0x03, 0x04], modified_once: [0x00, 0x01, 0x1b, 0x03, 0x04], modified_twice: [0x00, 0x01, 0x1b, 0x1b, 0x04] }

error: Failed to solve program: 'Failed to solve brillig function'
   ┌─ /Users/aakoshh/Work/aztec/noir/test_programs/execution_success/brillig_cow/src/main.nr:55:12
   │
55 │     assert(expected_result.is_equal(result_uncons));
   │            ---------------------------------------

The modify function looks like this:
    let mut modified = original;
    modified[index] = 27;
    let modified_once = modified;
    modified[index + 1] = 27;
    ExecutionResult { original, modified_once, modified_twice: modified }

So modified_once ends up being a reference and not a snapshot of modified, before modified is further mutated.
What is strange is that if I call the CLI with the --show-ssa option to see what's happening under the hood, the problem goes away:
❯ nargo execute --force --inliner-aggressiveness -9223372036854775808 --show-ssa
Initial SSA:
brillig(inline) fn main f0 {
...
brillig(inline) fn eq f11 {
  b0(v0: Field, v1: Field):
    v2 = eq v0, v1
    return v2
}

uncons: ExecutionResult { original: [0x00, 0x01, 0x02, 0x03, 0x04], modified_once: [0x00, 0x01, 0x1b, 0x03, 0x04], modified_twice: [0x00, 0x01, 0x1b, 0x1b, 0x04] }
cons:   ExecutionResult { original: [0x00, 0x01, 0x02, 0x03, 0x04], modified_once: [0x00, 0x01, 0x1b, 0x03, 0x04], modified_twice: [0x00, 0x01, 0x1b, 0x1b, 0x04] }
expect: ExecutionResult { original: [0x00, 0x01, 0x02, 0x03, 0x04], modified_once: [0x00, 0x01, 0x1b, 0x03, 0x04], modified_twice: [0x00, 0x01, 0x1b, 0x1b, 0x04] }
[brillig_cow] Circuit witness successfully solved
[brillig_cow] Witness saved to /Users/aakoshh/Work/aztec/noir/test_programs/execution_success/brillig_cow/target/brillig_cow.gz

A genuine Heisenbug 👀

I changed printing the SSA to do it without normalising the IDs, which avoids "fixing" the bug:
    fn print(mut self, msg: &str) -> Self {
        if self.print_ssa_passes {
            //self.ssa.normalize_ids();
            println!("{msg}\n{}", self.ssa);
        }
        self
    }

With this the last SSA printed before the error looks like this:

After Array Set Optimizations:
```
brillig(inline) fn main f0 {
  b0(v0: [Field; 5], v1: u64, v2: [Field; 5], v3: [Field; 5], v4: [Field; 5]):
    v38, v39, v40 = call f1(v0, v1)
    call f9([u8 117, u8 110, u8 99, u8 111, u8 110, u8 115, u8 58, u8 32, u8 123, u8 114, u8 101, u8 115, u8 117, u8 108, u8 116, u8 95, u8 117, u8 110, u8 99, u8 111, u8 110, u8 115, u8 125], u32 1, v38, v39, v40)
    call f10([u8 101, u8 120, u8 112, u8 101, u8 99, u8 116, u8 58, u8 32, u8 123, u8 101, u8 120, u8 112, u8 101, u8 99, u8 116, u8 101, u8 100, u8 95, u8 114, u8 101, u8 115, u8 117, u8 108, u8 116, u8 125], u32 1, v2, v3, v4)
    v41 = call f11(v2, v3, v4, v38, v39, v40)
    constrain v41 == u1 1
    return
}
brillig(inline) fn modify_in_unconstrained f1 {
  b0(v0: [Field; 5], v1: u64):
    inc_rc v0
    v23 = cast v1 as u32
    v24 = array_set v0, index v23, value Field 27
    inc_rc v24
    v26 = add v1, u64 1
    v27 = cast v26 as u32
    v28 = array_set mut v24, index v27, value Field 27
    inc_rc v0
    inc_rc v24
    return v0, v24, v28
}
brillig(inline) fn print_unconstrained f7 {
  b0(v0: u1, v1: [u8; 25], v2: Field, v3: [Field; 5], v4: [Field; 5], v5: [Field; 5]):
    call v6(v0, v1, v2, v3, v4, v5, [u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 115, u8 116, u8 114, u8 117, u8 99, u8 116, u8 34, u8 44, u8 34, u8 110, u8 97, u8 109, u8 101, u8 34, u8 58, u8 34, u8 69, u8 120, u8 101, u8 99, u8 117, u8 116, u8 105, u8 111, u8 110, u8 82, u8 101, u8 115, u8 117, u8 108, u8 116, u8 34, u8 44, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 115, u8 34, u8 58, u8 91, u8 91, u8 34, u8 111, u8 114, u8 105, u8 103, u8 105, u8 110, u8 97, u8 108, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 111, u8 110, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 116, u8 119, u8 105, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 93, u8 125], u1 1)
    return
}
brillig(inline) fn print_unconstrained f8 {
  b0(v0: u1, v1: [u8; 23], v2: Field, v3: [Field; 5], v4: [Field; 5], v5: [Field; 5]):
    call v6(v0, v1, v2, v3, v4, v5, [u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 115, u8 116, u8 114, u8 117, u8 99, u8 116, u8 34, u8 44, u8 34, u8 110, u8 97, u8 109, u8 101, u8 34, u8 58, u8 34, u8 69, u8 120, u8 101, u8 99, u8 117, u8 116, u8 105, u8 111, u8 110, u8 82, u8 101, u8 115, u8 117, u8 108, u8 116, u8 34, u8 44, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 115, u8 34, u8 58, u8 91, u8 91, u8 34, u8 111, u8 114, u8 105, u8 103, u8 105, u8 110, u8 97, u8 108, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 111, u8 110, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 116, u8 119, u8 105, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 93, u8 125], u1 1)
    return
}
brillig(inline) fn println f9 {
  b0(v0: [u8; 23], v1: Field, v2: [Field; 5], v3: [Field; 5], v4: [Field; 5]):
    call f8(u1 1, v0, v1, v2, v3, v4)
    return
}
brillig(inline) fn println f10 {
  b0(v0: [u8; 25], v1: Field, v2: [Field; 5], v3: [Field; 5], v4: [Field; 5]):
    call f7(u1 1, v0, v1, v2, v3, v4)
    return
}
brillig(inline) fn is_equal f11 {
  b0(v0: [Field; 5], v1: [Field; 5], v2: [Field; 5], v3: [Field; 5], v4: [Field; 5], v5: [Field; 5]):
    v20 = call f12(v0, v3)
    v21 = call f12(v1, v4)
    v22 = mul v20, v21
    v23 = call f12(v2, v5)
    v24 = mul v22, v23
    return v24
}
brillig(inline) fn eq f12 {
  b0(v0: [Field; 5], v1: [Field; 5]):
    v26 = allocate
    store u1 1 at v26
    jmp b1(u32 0)
  b1(v4: u32):
    v27 = lt v4, u32 5
    jmpif v27 then: b2, else: b3
  b2():
    v29 = load v26
    v30 = array_get v0, index v4
    v31 = array_get v1, index v4
    v32 = call f13(v30, v31)
    v33 = mul v29, v32
    store v33 at v26
    v34 = add v4, u32 1
    jmp b1(v34)
  b3():
    v28 = load v26
    return v28
}
brillig(inline) fn eq f13 {
  b0(v0: Field, v1: Field):
    v5 = eq v0, v1
    return v5
}
```

My branch does include https://github.com/noir-lang/noir/pull/6355 but since this test is also about mutable arrays, I tried to run it without this last SSA pass, which is where the previous bug was. Without that array optimisations, the test passes. The last SSA in that case looks like this:

After Simplifying:
```
brillig(inline) fn main f0 {
  b0(v0: [Field; 5], v1: u64, v2: [Field; 5], v3: [Field; 5], v4: [Field; 5]):
    v38, v39, v40 = call f1(v0, v1)
    call f9([u8 117, u8 110, u8 99, u8 111, u8 110, u8 115, u8 58, u8 32, u8 123, u8 114, u8 101, u8 115, u8 117, u8 108, u8 116, u8 95, u8 117, u8 110, u8 99, u8 111, u8 110, u8 115, u8 125], u32 1, v38, v39, v40)
    call f10([u8 101, u8 120, u8 112, u8 101, u8 99, u8 116, u8 58, u8 32, u8 123, u8 101, u8 120, u8 112, u8 101, u8 99, u8 116, u8 101, u8 100, u8 95, u8 114, u8 101, u8 115, u8 117, u8 108, u8 116, u8 125], u32 1, v2, v3, v4)
    v41 = call f11(v2, v3, v4, v38, v39, v40)
    constrain v41 == u1 1
    return
}
brillig(inline) fn modify_in_unconstrained f1 {
  b0(v0: [Field; 5], v1: u64):
    inc_rc v0
    v23 = cast v1 as u32
    v24 = array_set v0, index v23, value Field 27
    inc_rc v24
    v26 = add v1, u64 1
    v27 = cast v26 as u32
    v28 = array_set v24, index v27, value Field 27
    inc_rc v0
    inc_rc v24
    return v0, v24, v28
}
brillig(inline) fn print_unconstrained f7 {
  b0(v0: u1, v1: [u8; 25], v2: Field, v3: [Field; 5], v4: [Field; 5], v5: [Field; 5]):
    call v6(v0, v1, v2, v3, v4, v5, [u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 115, u8 116, u8 114, u8 117, u8 99, u8 116, u8 34, u8 44, u8 34, u8 110, u8 97, u8 109, u8 101, u8 34, u8 58, u8 34, u8 69, u8 120, u8 101, u8 99, u8 117, u8 116, u8 105, u8 111, u8 110, u8 82, u8 101, u8 115, u8 117, u8 108, u8 116, u8 34, u8 44, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 115, u8 34, u8 58, u8 91, u8 91, u8 34, u8 111, u8 114, u8 105, u8 103, u8 105, u8 110, u8 97, u8 108, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 111, u8 110, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 116, u8 119, u8 105, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 93, u8 125], u1 1)
    return
}
brillig(inline) fn print_unconstrained f8 {
  b0(v0: u1, v1: [u8; 23], v2: Field, v3: [Field; 5], v4: [Field; 5], v5: [Field; 5]):
    call v6(v0, v1, v2, v3, v4, v5, [u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 115, u8 116, u8 114, u8 117, u8 99, u8 116, u8 34, u8 44, u8 34, u8 110, u8 97, u8 109, u8 101, u8 34, u8 58, u8 34, u8 69, u8 120, u8 101, u8 99, u8 117, u8 116, u8 105, u8 111, u8 110, u8 82, u8 101, u8 115, u8 117, u8 108, u8 116, u8 34, u8 44, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 115, u8 34, u8 58, u8 91, u8 91, u8 34, u8 111, u8 114, u8 105, u8 103, u8 105, u8 110, u8 97, u8 108, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 111, u8 110, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 44, u8 91, u8 34, u8 109, u8 111, u8 100, u8 105, u8 102, u8 105, u8 101, u8 100, u8 95, u8 116, u8 119, u8 105, u8 99, u8 101, u8 34, u8 44, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 97, u8 114, u8 114, u8 97, u8 121, u8 34, u8 44, u8 34, u8 108, u8 101, u8 110, u8 103, u8 116, u8 104, u8 34, u8 58, u8 53, u8 44, u8 34, u8 116, u8 121, u8 112, u8 101, u8 34, u8 58, u8 123, u8 34, u8 107, u8 105, u8 110, u8 100, u8 34, u8 58, u8 34, u8 102, u8 105, u8 101, u8 108, u8 100, u8 34, u8 125, u8 125, u8 93, u8 93, u8 125], u1 1)
    return
}
brillig(inline) fn println f9 {
  b0(v0: [u8; 23], v1: Field, v2: [Field; 5], v3: [Field; 5], v4: [Field; 5]):
    call f8(u1 1, v0, v1, v2, v3, v4)
    return
}
brillig(inline) fn println f10 {
  b0(v0: [u8; 25], v1: Field, v2: [Field; 5], v3: [Field; 5], v4: [Field; 5]):
    call f7(u1 1, v0, v1, v2, v3, v4)
    return
}
brillig(inline) fn is_equal f11 {
  b0(v0: [Field; 5], v1: [Field; 5], v2: [Field; 5], v3: [Field; 5], v4: [Field; 5], v5: [Field; 5]):
    v20 = call f12(v0, v3)
    v21 = call f12(v1, v4)
    v22 = mul v20, v21
    v23 = call f12(v2, v5)
    v24 = mul v22, v23
    return v24
}
brillig(inline) fn eq f12 {
  b0(v0: [Field; 5], v1: [Field; 5]):
    v26 = allocate
    store u1 1 at v26
    jmp b1(u32 0)
  b1(v4: u32):
    v27 = lt v4, u32 5
    jmpif v27 then: b2, else: b3
  b2():
    v29 = load v26
    v30 = array_get v0, index v4
    v31 = array_get v1, index v4
    v32 = call f13(v30, v31)
    v33 = mul v29, v32
    store v33 at v26
    v34 = add v4, u32 1
    jmp b1(v34)
  b3():
    v28 = load v26
    return v28
}
brillig(inline) fn eq f13 {
  b0(v0: Field, v1: Field):
    v5 = eq v0, v1
    return v5
}
```

Since we know that calling ssa.normalize_ids() fixes the problem, it's worth comparing the SSA with and without normalisation.
With normalisation it looks like this:
brillig(inline) fn modify_in_unconstrained f1 {
  b0(v0: [Field; 5], v1: u64):
    inc_rc v0
    v2 = cast v1 as u32
    v4 = array_set v0, index v2, value Field 27
    inc_rc v4
    v6 = add v1, u64 1
    v7 = cast v6 as u32
    v8 = array_set v4, index v7, value Field 27
    inc_rc v0
    inc_rc v4
    return v0, v4, v8
}

Without normalisation the IDs of the variables have higher values:
brillig(inline) fn modify_in_unconstrained f1 {
  b0(v0: [Field; 5], v1: u64):
    inc_rc v0
    v23 = cast v1 as u32
    v24 = array_set v0, index v23, value Field 27
    inc_rc v24
    v26 = add v1, u64 1
    v27 = cast v26 as u32
    v28 = array_set mut v24, index v27, value Field 27
    inc_rc v0
    inc_rc v24
    return v0, v24, v28
}

The code that decides whether the setting of the v4 a.k.a v24 array can be made mutable basically says it can be, unless the old identifier is used again in a future GET, or a return value, or it's coming from a potentially shared reference.
The problem is that if we print the value of the terminator and the ID of the array we set, we see this without normalisation:
TERMINATOR: Return { return_values: [Id(0), Id(5), Id(11)], call_stack: [Location { span: Span(Span { start: ByteIndex(1084), end: ByteIndex(1103) }), file: FileId(69) }] }
ARRAY SET: Id(0) to Id(4)
ARRAY SET: Id(24) to Id(4)

v24 is identified by Id(24), however in the return statement it corresponds to Id(5). By contrast with normalisation we get matching IDs:
TERMINATOR: Return { return_values: [Id(0), Id(4), Id(8)], call_stack: [Location { span: Span(Span { start: ByteIndex(1084), end: ByteIndex(1103) }), file: FileId(69) }] }
ARRAY SET: Id(0) to Id(3)
ARRAY SET: Id(4) to Id(3)

Here we see v4 is in the return value, and this check works:
                  let mut array_in_terminator = false;
                    terminator.for_each_value(|value| {
                        if value == array {
                            array_in_terminator = true;
                        }
                    });


text:
chore(ssa refactor): Adds basic program with empty body to experimental-ssa test corpus

Description
This adds the program from #1403 into the test corpus.

Problem*

Resolves
Summary*

This PR sets out to
Example

Before:

After:

Documentation

[ ] This PR requires documentation updates when merged.

[ ] I will submit a noir-lang/docs PR.

[ ] I will request for and support Dev Rel's help in documenting this PR.

Additional Context

PR Checklist*

[ ] I have tested the changes locally.
[ ] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Copying the CI output:
 ---- tests::noir_integration_ssa_refactor stdout ----
 Running test simple_program_no_body
 Initial SSA:
 fn main f0 {
   b0(v0: Field, v1: Field):
     return unit 0
 }
 After Inlining:
 fn main f1 {
   b0(v0: Field, v1: Field):
     return unit 0
 }
 After Unrolling:
 fn main f1 {
   b0(v0: Field, v1: Field):
     return unit 0
 }
 After Simplifying:
 fn main f1 {
   b0(v0: Field, v1: Field):
     return unit 0
 }
 After Flattening:
 fn main f1 {
   b0(v0: Field, v1: Field):
     return unit 0
 }
 After Mem2Reg:
 fn main f1 {
   b0(v0: Field, v1: Field):
     return unit 0
 }

 thread 'main' panicked at 'ICE: Return of value not yet encountered', crates/noirc_evaluator/src/ssa_refactor/acir_gen/mod.rs:113:28

Error is occuring because when we try to do acir_gen for the return instruction, we:

Get the return values
Check to see if we've acir_gen'd this return value and panic if not

The second point assumes that the return value will always be a variable that was encountered before, whereas  return unit 0 is a constant that the acir_gen pass has never seen before

Looks good to me but we should avoid merging until the issue in acir-gen is fixed

ssa-gen.

Yep will debug this -- I think it would also trigger, if this returns any ValueId which was not used in another part of the program, so I imagine just returning a constant would also trigger this bug

Seems there is another error in acir_gen:
CompiledProgram {
    circuit: current witness index : 3
    public parameters indices : [1, 2]
    return value indices : [3]
    EXPR [ (-1, _3) 0 ]
    ,
    abi: Abi {
        parameters: [
            AbiParameter {
                name: "_x",
                typ: Field,
                visibility: Private,
            },
            AbiParameter {
                name: "_y",
                typ: Field,
                visibility: Public,
            },
        ],
        param_witnesses: {
            "_x": [
                Witness(
                    1,
                ),
            ],
            "_y": [
                Witness(
                    2,
                ),
            ],
        },
        return_type: None,
        return_witnesses: [
            Witness(
                3,
            ),
        ],
    },
}

Serialized transcript does not contain the required number of bytes

Serialized transcript does not contain the required number of bytes

This error really only happens in the barretenberg when there is a discrepancy between the circuit or proving system. Since the proving system has not changed, then we can then deduce that something is malformed about the circuit.
In particular, that error arises when there is a mismatch between public inputs.
To fix:

If the return is unit 0 then we should treat this as not having a return parameter. We should then see return value indices : [] ie no returns. This should also get rid of  EXPR [ (-1, _3) 0 ].

The next issue is public parameters indices : [1, 2] we should have ``public parameters indices : [2]` indicating that there is one public parameter and it is the second parameter which should have index 2

Also going to block this PR until we check for:
fn main() -> pub Field {
 return <constant>;
}

To make sure we don't mess something up there

Tested this with a constant return and that also passes :) This passes for me locally so just waiting for it to pass on CI

authors: jfecher kevaundray


text:
Raise specific Exceptions when LDAP-connections fail due to SSL-problems

Issue:
I recently ran multiple times into the problem, that LDAP-connection-attempts were unsuccessful, because the server-certificates could not got verified. This was due to a lack of the corresponding CA-Certificate in the central CA-system-store (in our case Ubuntu Linux).
When I was tracking down these connection-problems, I had to do trial&error to nail it down to this certificate-thing. Because bonsai just raises bonsai.errors.ConnectionError: Can't contact LDAP server. (unknown error code) (0xFFFF [-1]).
Is there a possibility to raise more specific exceptions on these SSL-related errors?
Setup:

Linux Ubuntu 20.04
Python 3.11.0
bonsai v1.5.1

Testscript:
#!/usr/bin/env python

import bonsai
from bonsai.errors import AuthenticationError, ConnectionError

bonsai.set_debug(True)

client = bonsai.LDAPClient("ldaps://ldap.domain.local")
client.set_credentials("SIMPLE", user="testuser", password="testpassword")

# client.set_cert_policy("allow")

try:
    returnValue = client.connect()
except ConnectionError as err:
    print(f"LDAP-Connection failed: {err}")
except AuthenticationError as err:
    print(f"LDAP-Authentication failed: {err}")
except Exception as e:
    print(f"Generic exception: {e}")

Output:
DBG: ldapconnection_new [self:0x7f7bcc9a35b0]
DBG: ldapconnection_init (self:0x7f7bcc9a35b0)
DBG: ldapconnection_open (self:0x7f7bcc9a35b0)
DBG: connecting (self:0x7f7bcc9a35b0)
DBG: create_conn_info (mech:SIMPLE, sock:-1, creds:0x7f7bcdf03f00)
DBG: ldapconnectiter_new [self:0x7f7bcc802740]
DBG: create_init_thread_data (client:0x7f7bcdc476d0, sock:-1)
DBG: create_init_thread (ld:0x24db110, info:0x24e7860, thread:0)
DBG: ldapconnection_result (self:0x7f7bcc9a35b0, args:0x7f7bcdd2ee80, kwds:(nil))[msgid:-1]
DBG: LDAPConnection_Result (self:0x7f7bcc9a35b0, msgid:-1, millisec:-1)
DBG: LDAPConnectIter_Next (self:0x7f7bcc802740, timeout:-1) [tls:0, state:0]
DBG: _ldap_finish_init_thread (async:0, thread:140169686472448, timeout:-1, misc:0x24db110)
DBG: _pthread_mutex_timedlock
DBG: ldap_init_thread_func (params:0x24db110)
DBG: set connecting async: 0
DBG: ldap_init_thread_func [retval:0]
DBG: LDAPConnectIter_Next (self:0x7f7bcc802740, timeout:-1) [tls:0, state:0]
DBG: _ldap_finish_init_thread (async:0, thread:140169686472448, timeout:-1, misc:0x24db110)
DBG: _pthread_mutex_timedlock
DBG: set_certificates (self:0x7f7bcc802740)
DBG: binding [state:3]
DBG: _ldap_bind (ld:0x7f7bc4000b60, info:0x24e7860, ppolicy:0, result:(nil), msgid:0)
DBG: ldapconnectiter_dealloc (self:0x7f7bcc802740)
DBG: dealloc_conn_info (info:0x24e7860)
LDAP-Connection failed: Can't contact LDAP server. (unknown error code) (0xFFFF [-1])
DBG: ldapconnection_dealloc (self:0x7f7bcc9a35b0)

(When I uncomment the line client.set_cert_policy("allow") in my code the connection gets successfully established.)

Unfortunately, If OpenLDAP doesn't set a specific return value or set a diagnostic message, then I don't think it's possible to raise a specific error.
The raised exception is based on the LDAP error code (returned by an LDAP function call or set to the LDAP structure's corresponding field), and if additional diagnostic message is provided, then it's concatenated to the exception's error message.
TLS related errors are usually only shown in libldap's trace logs. You can set trace level logging with bonsai.set_debug(True, -1).

Ok, I agree, that this is an openldap-Libraryissue. So I'll close the issue.
But thanks for the hint to the trace-logs. There I can see the real error:
[...]
DBG: _ldap_bind (ld:0x7f3764000b60, info:0x1943560, ppolicy:0, result:(nil), msgid:0)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.domain.local:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.10.10.10:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
attempting to connect:
connect success
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
ldap_msgfree
ldap_err2string
DBG: ldapconnectiter_dealloc (self:0x7f376a99a740)
[...]

authors: noirello senfomat

repo: noirello/bonsai


text:
fix: fix types for event listeners, remove typedoc

fixes #191
After looking at dom.d.ts a bit I figured out that I was missing some declarations for addEventListener/removeEventListener, which is why it would fail in strict mode. Unfortunately I couldn't figure out how to make these changes in the .ts files, but we can just put them directly in the .d.ts files and modify those directly, since I'm not really using Typedoc anymore so there's no need to keep it around.

This is the magic; you need these type: string declarations too:
https://github.com/nolanlawson/emoji-picker-element/blob/39e1ce51fb1f9efa7d5d292c2966be3dbcf19247/picker.d.ts#L20-L23

repo: nolanlawson/emoji-picker-element


text:
Implement zoom methods and implement mousewheel support

This is a (multiple allowed):

[ ] bug
[x] enhancement
[ ] feature-discussion (RFC)

There should be zoomIn() zoomOut() and zoomReset() methods. The zoom should also have an option to work with mousewheel.

They are in v4


text:
width and height using percentage

Hey I want to make something that mix between responsive and partial, I set the swiper-container{ width:100%; height:100%} and the swiper-slide{width:90%; height:100%} but in the output I get the swiper-slide width 100% (the same as the container) how I can correct this.
Check the demo  http://jsfiddle.net/fnhb137d/

But if we know the width of the parent (on page load) can't we define the width of the slider-wrapper depending one the number of item, then set their  width in % of the slider-wrapper width?
I'm asking because I have a project with "fluid" typography, and when I increase the font size on the body, the slider breaks in IE10/11 (because the swipes width is in pixel).

authors: mnifakram zapatoche


text:
mousewheelControl param setting when updating this using MousewheelCo…

Fix for:
https://github.com/nolimits4web/Swiper/issues/1998
Always follow the contribution guidelines when submitting a pull request.

Merged, thanks


text:
Pagination renderBullet putting last bullet in front of other bullets

Swiper Version: Swiper 6.5.7
Platform/Target and Browser Versions: Windows, Chrome

What You Did
Using custom pagination renderBullet to use custom pagination so we can define buttons as data attributes in each slide item.
JSFiddle with Example

Expected Behavior
Show custom rendered bullets in correct order
Actual Behavior
Last custom rendered bullet is being shown first

How about more minimal example without extra logic (that could be a root of the problem/issue)?

How about more minimal example without extra logic (that could be a root of the problem/issue)?

I'll edit the JS Fiddle, and let you know when it's been minimized

So while updating the JSFiddle to a more minimal example I found the route of the cause.
While having loop enabled it looks like the custom bullet render is grabbing the duplicated slide and trying to create a button with that.

Everything is correct with pagination render. index number it returns in renderBullet is not an index of slide, it is an index of the bullet. And you try to use same index for slide which is wrong, as in loop mode there are duplicated slides added


text:
🛑 mastodonczech.cz is down

In e270308, mastodonczech.cz (https://mastodonczech.cz/nodeinfo/2.0) was down:

HTTP code: 502
Response time: 882 ms

Resolved: mastodonczech.cz is back up in deb46ce.

repo: nolog-it/mastodon-uptime


text:
Plugin: nonebot-plugin-tsugu-bangdream-bot

PyPI 项目名
nonebot-plugin-tsugu-bangdream-bot
插件 import 包名
nonebot_plugin_tsugu_bangdream_bot
标签
[{"label":"tsugu","color":"#ffee88"}]
插件配置项
No response

已修改

怎么又来一个tsugu（

怎么又来一个tsugu（

那个tsugu写的实在是看不下去所以跑来写了一个（

ycm

插件元数据缺少支持的适配器，请继承依赖的插件

插件元数据缺少支持的适配器，请继承依赖的插件

已添加支持适配器元数据

再次修改，跟随 tsugu-api-python 的结构更改
自己把自己坑了

没触发检测吗？

authors: GreyElaina RF-Tar-Railt WindowsSov8forUs yanyongyu