From 88f26cf527f4cd2f470fab5bdb24d8f5bbc867a0 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 24 May 2021 15:45:26 +0200 Subject: [PATCH 001/233] [skip-changelog] update label in close issue wf --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 43d6be22a..1acef114e 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -14,5 +14,5 @@ jobs: days-before-stale: 14 days-before-close: 7 days-before-pr-close: -1 - only-labels: 'waiting for feedback' + only-labels: 'status: waiting for information' debug-only: false From 3074d7a70e3f2bc20734742e3c887962d4491e67 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 12 Jul 2021 17:38:21 +0200 Subject: [PATCH 002/233] fix create-changelog action failing because it could not find a git repo (#648) introduced in #639 --- .github/workflows/release.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7107094f3..84716f5d4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -440,6 +440,11 @@ jobs: needs: code-sign-mac-installers steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 # fetch all history for the create changelog step to work properly + - name: Download artifact uses: actions/download-artifact@v2 # download all the artifacts From 556340871568929d8a4ec34b432a72b3664cb801 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 17:41:41 +0200 Subject: [PATCH 003/233] [skip-changelog] Upgrade to GitHub-native Dependabot (#636) Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- .github/dependabot.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..09622b43d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,20 @@ +version: 2 +updates: +- package-ecosystem: gomod + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + ignore: + - dependency-name: go.bug.st/serial + versions: + - 1.1.2 + - 1.1.3 + - dependency-name: github.com/sirupsen/logrus + versions: + - 1.7.1 +- package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 From fd5b22b914ed034d241d204ab6a94cbb14422292 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 17:37:13 +0200 Subject: [PATCH 004/233] [skip-changelog] bump dependencies --- go.mod | 9 +++--- go.sum | 99 +++++----------------------------------------------------- 2 files changed, 12 insertions(+), 96 deletions(-) diff --git a/go.mod b/go.mod index 9199eb3ee..e1f428aab 100644 --- a/go.mod +++ b/go.mod @@ -11,9 +11,8 @@ require ( github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect github.com/getlantern/systray v1.1.0 - github.com/gin-gonic/gin v1.6.3 + github.com/gin-gonic/gin v1.7.2 github.com/go-ini/ini v1.62.0 - github.com/go-playground/validator/v10 v10.4.1 // indirect github.com/golang/protobuf v1.4.3 // indirect github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect @@ -25,7 +24,7 @@ require ( github.com/kr/binarydist v0.1.0 github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b // indirect - github.com/mattn/go-shellwords v1.0.11 + github.com/mattn/go-shellwords v1.0.12 github.com/miekg/dns v1.1.35 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -34,14 +33,14 @@ require ( github.com/pkg/errors v0.9.1 github.com/pkg/sftp v1.12.0 // indirect github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c - github.com/sirupsen/logrus v1.8.0 + github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c github.com/stretchr/testify v1.7.0 github.com/ugorji/go v1.2.3 // indirect github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 - go.bug.st/serial v1.1.3 + go.bug.st/serial v1.3.0 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c diff --git a/go.sum b/go.sum index 8a434abea..43f085b20 100644 --- a/go.sum +++ b/go.sum @@ -9,24 +9,15 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZKpY1VU0VTxOv+jV6NVgJEZ/hMBVs= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/arduino/arduino-cli v0.0.0-20210413144851-088d4276190d h1:M/AWWjUQiY7SMoV2Ha0Sq+BzkIuBmusNe+l/XcRZsJA= -github.com/arduino/arduino-cli v0.0.0-20210413144851-088d4276190d/go.mod h1:5dWroFPvaWuBNVuYMV0X8osqIhyUG5otRgJlRHN831E= -github.com/arduino/arduino-cli v0.0.0-20210419093035-6ca680d235a3 h1:QTdhyXMl5coZIKxCh0yX0H5vj5XJ9zI2hLiFDHyTWbU= -github.com/arduino/arduino-cli v0.0.0-20210419093035-6ca680d235a3/go.mod h1:5dWroFPvaWuBNVuYMV0X8osqIhyUG5otRgJlRHN831E= github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 h1:YzxiXS2tBkotw65inAy9hYkXEHcCmszj9mRNQXNEEnU= github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026/go.mod h1:5dWroFPvaWuBNVuYMV0X8osqIhyUG5otRgJlRHN831E= -github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c h1:agh2JT96G8egU7FEb13L4dq3fnCN7lxXhJ86t69+W7s= github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1:HK7SpkEax/3P+0w78iRQx1sz1vCDYYw9RXwHjQTB5i8= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.2.0 h1:qDW93PR5IZUN/jzO4rCtexiwF8P4OIcOmcSgAYLZfY4= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.4.0 h1:ilnseAdxmN1bFnLxxXHRtcdmt9jBf3O4jtYfWfqule4= github.com/arduino/go-paths-helper v1.4.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= -github.com/arduino/go-properties-orderedmap v1.3.0 h1:4No/vQopB36e7WUIk6H6TxiSEJPiMrVOCZylYmua39o= github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= -github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b h1:9hDi4F2st6dbLC3y4i02zFT5quS4X6iioWifGlVwfy4= github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b/go.mod h1:uwGy5PpN4lqW97FiLnbcx+xx8jly5YuPMJWfVwwjJiQ= -github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b h1:3PjgYG5gVPA7cipp7vIR2lF96KkEJIFBJ+ANnuv6J20= github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b/go.mod h1:iIPnclBMYm1g32Q5kXoqng4jLhMStReIP7ZxaoUC2y8= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= @@ -37,11 +28,8 @@ github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cmaglie/go.rice v1.0.3 h1:ZBLmBdQp6ejc+n8eMNH0uuRSKkg6kKe6ORjXKnyHBYw= github.com/cmaglie/go.rice v1.0.3/go.mod h1:AF3bOWkvdOpp8/S3UL8qbQ4N7DiISIbJtj54GWFPAsc= -github.com/cmaglie/pb v1.0.27 h1:ynGj8vBXR+dtj4B7Q/W/qGt31771Ux5iFfRQBnwdQiA= github.com/cmaglie/pb v1.0.27/go.mod h1:GilkKZMXYjBA4NxItWFfO+lwkp59PLHQ+IOW/b/kmZI= -github.com/codeclysm/cc v1.2.2 h1:1ChS4EvWTjw6bH2sd6QiMcmih0itVVrWdh9MmOliX/I= github.com/codeclysm/cc v1.2.2/go.mod h1:XtW4ArCNgQwFphcRGG9+sPX5WM1J6/u0gMy5ZdV3obA= github.com/codeclysm/extract/v3 v3.0.2 h1:sB4LcE3Php7LkhZwN0n2p8GCwZe92PEQutdbGURf5xc= github.com/codeclysm/extract/v3 v3.0.2/go.mod h1:NKsw+hqua9H+Rlwy/w/3Qgt9jDonYEgB6wJu+25eOKw= @@ -50,14 +38,12 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/goselect v0.1.1/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0 h1:VSOgZtH418pH9L16hC/JrgSNJbbAL26pj7lmD1+CGdY= github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -70,18 +56,13 @@ github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZs github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4wg/adLLz5xh5CmpiCA= github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= -github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fluxio/iohelpers v0.0.0-20160419043813-3a4dd67a94d2 h1:C6sOwknxwWfLBEQ91zhmptlfxf7pVEs5s6wOnDxNpS4= github.com/fluxio/iohelpers v0.0.0-20160419043813-3a4dd67a94d2/go.mod h1:c7sGIpDbBo0JZZ1tKyC1p5smWf8QcUjK4bFtZjHAecg= -github.com/fluxio/multierror v0.0.0-20160419044231-9c68d39025e5 h1:R8jFW6G/bjoXjWPFrEfw9G5YQDlYhwV4AC+Eonu6wmk= github.com/fluxio/multierror v0.0.0-20160419044231-9c68d39025e5/go.mod h1:BEUDl7FG1cc76sM0J0x8dqr6RhiL4uqvk6oFkwuNyuM= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= @@ -100,8 +81,8 @@ github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1y github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gin-gonic/gin v1.7.2 h1:Tg03T9yM2xa8j6I3Z3oqLaQRSmKvxPd6g/2HJ6zICFA= +github.com/gin-gonic/gin v1.7.2/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= @@ -114,13 +95,10 @@ github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8c github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -130,7 +108,6 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= @@ -162,20 +139,15 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoA github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/h2non/filetype v1.0.6 h1:g84/+gdkAT1hnYO+tHpCLoikm13Ju55OkN4KCb1uGEQ= github.com/h2non/filetype v1.0.6/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/h2non/filetype v1.0.8/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/h2non/filetype v1.1.0 h1:Or/gjocJrJRNK/Cri/TDEKFjAR+cfG6eK65NGYB6gBA= github.com/h2non/filetype v1.1.0/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -183,11 +155,9 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/clock v0.0.0-20180524022203-d293bb356ca4/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA= github.com/juju/errors v0.0.0-20150916125642-1b5e39b83d18/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5 h1:rhqTjzJlm7EbkELJDKMTU7udov+Se0xZkWmugr6zGok= github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/errors v0.0.0-20200330140219-3fe23663418f h1:MCOvExGLpaSIzLYB4iQXEHP4jYVU6vmzLNQPdMVrxnM= github.com/juju/errors v0.0.0-20200330140219-3fe23663418f/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20170605014607-8232ab8918d9 h1:Y+lzErDTURqeXqlqYi4YBYbDd7ycU74gW1ADt57/bgY= github.com/juju/loggo v0.0.0-20170605014607-8232ab8918d9/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 h1:UUHMLvzt/31azWTN/ifGWef4WUqvXk0iRqdhdy/2uzI= github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= @@ -199,7 +169,6 @@ github.com/juju/version v0.0.0-20161031051906-1f41e27e54f2/go.mod h1:kE8gK5X0CIm github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 h1:PJPDf8OUfOK1bb/NeTKd4f1QXZItOX389VN3B6qC8ro= github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -212,34 +181,26 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leonelquinteros/gotext v1.4.0 h1:2NHPCto5IoMXbrT0bldPrxj0qM5asOCwtb1aUQZ1tys= github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2spuF/i/Qlsvz1Us= -github.com/magefile/mage v1.10.0 h1:3HiXzCUY12kh9bIuyXShaVe529fJfyqoVM42o/uom2g= -github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0ReT1eKt5QlKjwgi5AFm5mI6O1A2G4ChI0Ag= -github.com/marcinbor85/gohex v0.0.0-20210308104911-55fb1c624d84 h1:hyAgCuG5nqTMDeUD8KZs7HSPs6KprPgPP8QmGV8nyvk= github.com/marcinbor85/gohex v0.0.0-20210308104911-55fb1c624d84/go.mod h1:Pb6XcsXyropB9LNHhnqaknG/vEwYztLkQzVCHv8sQ3M= -github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-shellwords v1.0.11 h1:vCoR9VPpsk/TZFW2JwK5I9S0xdrtUq2bph6/YjEPnaw= -github.com/mattn/go-shellwords v1.0.11/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mdlayher/genetlink v0.0.0-20190313224034-60417448a851/go.mod h1:EsbsAEUEs15qC1cosAwxgCWV0Qhd8TmkxnA9Kw1Vhl4= github.com/mdlayher/netlink v0.0.0-20190313131330-258ea9dff42c/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= @@ -249,13 +210,10 @@ github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -269,7 +227,6 @@ github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228/go.mod h1:MGuVJ1 github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -279,7 +236,6 @@ github.com/pkg/sftp v1.12.0 h1:/f3b24xrDhkhddlaobPe2JgBqfdt+gC/NYl0QY9IOuI= github.com/pkg/sftp v1.12.0/go.mod h1:fUqqXB5vEgVCZ131L+9say31RAri6aF6KDViawhxKK8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583 h1:ogHi8YLNeIxABOaH6UgtbwkODheuAK+ErP8gWXYQVj0= github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583/go.mod h1:sFPiU/UgDcsQVu3vkqpZLCXWFwUoQRpHGu9ATihPAl0= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= @@ -291,29 +247,22 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/schollz/closestmatch v2.1.0+incompatible h1:Uel2GXEpJqOWBrlyI+oY9LTiyyjYS17cCYRqP13/SHk= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e h1:uO75wNGioszjmIzcY/tvdDYKRLVvzggtAmmJkn9j4GQ= github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e/go.mod h1:tm/wZFQ8e24NYaBGIlnO2WGCAi67re4HHuOm0sftE/M= github.com/segmentio/objconv v1.0.1/go.mod h1:auayaH5k3137Cl4SoXTgrzQcuQDmvuVtZgS0fb1Ahys= -github.com/segmentio/stats/v4 v4.5.3 h1:Y/DSUWZ4c8ICgqJ9rQohzKvGqGWbLPWad5zmxVoKN+Y= github.com/segmentio/stats/v4 v4.5.3/go.mod h1:LsaahUJR7iiSs8mnkvQvdQ/RLHAS5adGLxuntg0ydGo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c h1:7Q+2oF0uBoLEV+j13E3/xUkPkI7f+sFNPZOPo2jmrWk= github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c/go.mod h1:sB7d6wQapoRM+qx5MgQYB6JVHtel4YHRr0NXXCkXiwQ= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.8.0 h1:nfhvjKcUMhBMVqbKHJlk5RPrrfYr/NMo3692g0dwfWU= -github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c h1:fyKiXKO1/I/B6Y2U8T7WdQGWzwehOuGIrljPtt7YTTI= github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= @@ -322,46 +271,34 @@ github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIK github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.0.1-0.20200710201246-675ae5f5a98c h1:/dP/1GnfVIlWnB0YDImenSmneUCw3wjyq2RMgAG1e2o= github.com/spf13/cobra v1.0.1-0.20200710201246-675ae5f5a98c/go.mod h1:aeNIJzz/GSSVlS+gpCpQWZ83BKbsoW57mr90+YthtkQ= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E= github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= -github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.2.3 h1:WbFSXLxDFKVN69Sk8t+XHGzVCD7R8UoAATR8NqZgTbk= github.com/ugorji/go v1.2.3/go.mod h1:5l8GZ8hZvmL4uMdy+mhCO1LjswGRYco9Q3HfuisB21A= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.3 h1:/mVYEV+Jo3IZKeA5gBngN0AvNnQltEDkR+eQikkWQu0= github.com/ugorji/go/codec v1.2.3/go.mod h1:5FxzDJIgeiWJZslYHPj+LS1dq1ZBQVelZFnjsFGI/Uc= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= @@ -369,18 +306,14 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6Gj github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea h1:CyhwejzVGvZ3Q2PSbQ4NRRYn+ZWv5eS1vlaEusT+bAI= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea/go.mod h1:eNr558nEUjP8acGw8FFjTeWvSgU1stO7FAO6eknhHe4= -go.bug.st/cleanup v1.0.0 h1:XVj1HZxkBXeq3gMT7ijWUpHyIC1j8XAoNSyQ06CskgA= go.bug.st/cleanup v1.0.0/go.mod h1:EqVmTg2IBk4znLbPD28xne3abjsJftMdqqJEjhn70bk= go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 h1:8W/hwyrc25HrXxbtG8Ghiwgq/hDB8KCh7hKMf78gp90= go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87/go.mod h1:OUL7bexo6Ir+BRE5E7Cs3qUvO6ZgJL5Hjk/qwiy6Ze0= -go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= -go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18 h1:F1qxtaFuewctYc/SsHRn+Q7Dtwi+yJGPgVq8YLtQz98= go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18/go.mod h1:Cx1VqMtEhE9pIkEyUj3LVVVPkv89dgW8aCKrRPDR/uE= go.bug.st/serial v1.1.2/go.mod h1:VmYBeyJWp5BnJ0tw2NUJHZdJTGl2ecBGABHlzRK1knY= -go.bug.st/serial v1.1.3 h1:YEBxJa9pKS9Wdg46B/jiaKbvvbUrjhZZZITfJHEJhaE= -go.bug.st/serial v1.1.3/go.mod h1:8TT7u/SwwNIpJ8QaG4s+HTjFt9ReXs2cdOU7ZEk50Dk= -go.bug.st/serial.v1 v0.0.0-20180827123349-5f7892a7bb45 h1:mACY1anK6HNCZtm/DK2Rf2ZPHggVqeB0+7rY9Gl6wyI= +go.bug.st/serial v1.3.0 h1:liPN6f/Xk0qaUByg0H2LOSns+2RuAuNXmXZyQOLVwVE= +go.bug.st/serial v1.3.0/go.mod h1:8TT7u/SwwNIpJ8QaG4s+HTjFt9ReXs2cdOU7ZEk50Dk= go.bug.st/serial.v1 v0.0.0-20180827123349-5f7892a7bb45/go.mod h1:dRSl/CVCTf56CkXgJMDOdSwNfo2g1orOGE/gBGdvjZw= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -393,10 +326,8 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 h1:xYJJ3S178yv++9zXV/hnr29plCAGO9vAFG9dorqaFQc= @@ -417,10 +348,8 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= @@ -443,7 +372,6 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -453,7 +381,6 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -464,7 +391,6 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425 h1:VvQyQJN0tSuecqgcIxMWnnfG5kSmgy9KZR9sW3W5QeA= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= @@ -473,12 +399,10 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -486,7 +410,6 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= @@ -503,25 +426,19 @@ gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20160818015218-f2b6f6c918c4 h1:hILp2hNrRnYjZpmIbx70psAHbBSEcQ1NIzDcUbJ1b6g= gopkg.in/mgo.v2 v2.0.0-20160818015218-f2b6f6c918c4/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170712054546-1be3d31502d6/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= From ab53e5bf914fbcd606d8b5bac4dbab14103c5f85 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 13 Jul 2021 09:24:42 +0200 Subject: [PATCH 005/233] [skip-changelog] switch to using the major version ref of the `rtCamp/action-slack-notify` action (#650) --- .github/workflows/check-certificates.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 8776ee28b..5185912ac 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -54,7 +54,7 @@ jobs: # See: https://github.com/rtCamp/action-slack-notify - name: Slack notification of certificate verification failure if: failure() - uses: rtCamp/action-slack-notify@v2.1.0 + uses: rtCamp/action-slack-notify@v2 env: SLACK_WEBHOOK: ${{ secrets.TEAM_CREATE_CHANNEL_SLACK_WEBHOOK }} SLACK_MESSAGE: | @@ -103,7 +103,7 @@ jobs: - name: Slack notification of pending certificate expiration # Don't send spurious expiration notification if verification fails if: failure() && steps.check-expiration.outcome == 'failure' - uses: rtCamp/action-slack-notify@v2.1.0 + uses: rtCamp/action-slack-notify@v2 env: SLACK_WEBHOOK: ${{ secrets.TEAM_CREATE_CHANNEL_SLACK_WEBHOOK }} SLACK_MESSAGE: | From c455e65df3c7acd337f049b0803905569874e3cc Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 13 Jul 2021 15:17:33 +0200 Subject: [PATCH 006/233] bump installbuilder container to the latest version (#642) * bump installbuilder container to the latest available version * bump installbuilder to 21.6.0 --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84716f5d4..5947ea68e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -231,7 +231,7 @@ jobs: env: # vars used by installbuilder - INSTALLBUILDER_PATH: "/opt/installbuilder-20.9.0/bin/builder" + INSTALLBUILDER_PATH: "/opt/installbuilder-21.6.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" # vars passed to installbuilder to install https certs automatically CERT_INSTALL: "ask_certificates_install=CI" # win(edge),mac(safari) @@ -273,7 +273,7 @@ jobs: installer-extension: .app container: - image: floydpink/ubuntu-install-builder:20.9.0 + image: floydpink/ubuntu-install-builder:21.6.0 steps: - name: Checkout From 44614b3f33c8bb11e5b811fdc79bd379ee8a1632 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:59:46 +0200 Subject: [PATCH 007/233] fix multi-line strings not being parsed correctly in `config.ini` (#651) * fix multi-line strings not being parsed correctly in `config.ini` * add tests --- main.go | 2 +- main_test.go | 25 +++++++++++++++++++++++++ systray/systray_real.go | 2 +- test/testdata/test.ini | 9 +++++++++ 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 main_test.go create mode 100644 test/testdata/test.ini diff --git a/main.go b/main.go index bdfa8af87..db0ab47d2 100755 --- a/main.go +++ b/main.go @@ -644,7 +644,7 @@ body { ` func parseIni(filename string) (args []string, err error) { - cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false}, filename) + cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename) if err != nil { return nil, err } diff --git a/main_test.go b/main_test.go new file mode 100644 index 000000000..2bd292562 --- /dev/null +++ b/main_test.go @@ -0,0 +1,25 @@ +package main + +import ( + "crypto/x509" + "encoding/pem" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestValidSignatureKey(t *testing.T) { + testfile := filepath.Join("test", "testdata", "test.ini") + args, err := parseIni(testfile) + require.NoError(t, err) + require.NotNil(t, args) + err = iniConf.Parse(args) + require.NoError(t, err) + print(*signatureKey) + block, _ := pem.Decode([]byte(*signatureKey)) + require.NotNil(t, block) + key, err := x509.ParsePKIXPublicKey(block.Bytes) + require.NoError(t, err) + require.NotNil(t, key) +} diff --git a/systray/systray_real.go b/systray/systray_real.go index 9c7d5d4bc..de8a50cc1 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -182,7 +182,7 @@ func getConfigs() []configIni { err := filepath.Walk(dest, func(path string, f os.FileInfo, _ error) error { if !f.IsDir() { if filepath.Ext(path) == ".ini" { - cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true}, filepath.Join(dest, f.Name())) + cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true, AllowPythonMultilineValues: true}, filepath.Join(dest, f.Name())) if err != nil { return err } diff --git a/test/testdata/test.ini b/test/testdata/test.ini new file mode 100644 index 000000000..c9629a110 --- /dev/null +++ b/test/testdata/test.ini @@ -0,0 +1,9 @@ +signatureKey = -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF + IE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1 + ZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1 + pFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z + CeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn + 2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9 + twIDAQAB + -----END PUBLIC KEY----- From c387f5d1050bd8b2fdf93098955b0b99a6ef3b1c Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:28:06 -0700 Subject: [PATCH 008/233] Use standardized name for certificate check workflow This is the naming convention established in the standardized template workflow. --- .github/workflows/check-certificates.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 5185912ac..386b246e8 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -1,4 +1,4 @@ -name: Check for issues with signing certificates +name: Check Certificates on: schedule: From 8d3193b631b9413d6dc7fd99e2774edba0c63f34 Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:32:49 -0700 Subject: [PATCH 009/233] Add API trigger to "Check Certificates" workflow The `repository_dispatch` event allows triggering workflows via the GitHub API. This might be useful for triggering an immediate check in multiple relevant repositories after an external change, or some automated process. Although we don't have any specific need for this event at the moment, the event has no impact on the workflow, so there is no reason against having it. It is the sort of thing that can end up being useful if it is already in consistently in place, but not worth setting up on demand, since the effort to set it up is greater than the effort to trigger all the workflows manually. --- .github/workflows/check-certificates.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 386b246e8..36c7d2229 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -1,13 +1,12 @@ name: Check Certificates +# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows on: schedule: # run every 10 hours - cron: "0 */10 * * *" - # workflow_dispatch event allows the workflow to be triggered manually. - # This could be used to run an immediate check after updating certificate secrets. - # See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch workflow_dispatch: + repository_dispatch: env: # Begin notifications when there are less than this many days remaining before expiration From 1bf6d271b99654a54578ab12488c613e5ee42588 Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:36:00 -0700 Subject: [PATCH 010/233] Run "Check Certificates" workflow on modification This will facilitate testing and review of modifications to the workflow. Because the workflow requires access to repository secrets, and so will fail whenever triggered by an event from a fork, a conditional is added to make it only run when the modifications are made within the `arduino/arduino-create-agent` repository. --- .github/workflows/check-certificates.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 36c7d2229..8a9a4d444 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -2,6 +2,12 @@ name: Check Certificates # See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows on: + push: + paths: + - ".github/workflows/check-certificates.ya?ml" + pull_request: + paths: + - ".github/workflows/check-certificates.ya?ml" schedule: # run every 10 hours - cron: "0 */10 * * *" @@ -14,6 +20,10 @@ env: jobs: check-certificates: + # Only run when the workflow will have access to the certificate secrets. + if: > + (github.event_name != 'pull_request' && github.repository == 'arduino/arduino-create-agent') || + (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'arduino/arduino-create-agent') runs-on: ubuntu-18.04 strategy: From c645955e67b373f926f9352c75b6183107fbc59c Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:42:06 -0700 Subject: [PATCH 011/233] Make trivial adjustments to comments in "Check Certificates" workflow No functional change, and neither is necessarily superior, but this is how it is in the "template", and so it must be here as well. --- .github/workflows/check-certificates.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 8a9a4d444..b4a658d59 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -9,13 +9,13 @@ on: paths: - ".github/workflows/check-certificates.ya?ml" schedule: - # run every 10 hours + # Run every 10 hours. - cron: "0 */10 * * *" workflow_dispatch: repository_dispatch: env: - # Begin notifications when there are less than this many days remaining before expiration + # Begin notifications when there are less than this many days remaining before expiration. EXPIRATION_WARNING_PERIOD: 30 jobs: @@ -31,9 +31,10 @@ jobs: matrix: certificate: - - identifier: macOS signing certificate # Text used to identify the certificate in notifications - certificate-secret: INSTALLER_CERT_MAC_P12 # The name of the secret that contains the certificate - password-secret: INSTALLER_CERT_MAC_PASSWORD # The name of the secret that contains the certificate password + # Additional certificate definitions can be added to this list. + - identifier: macOS signing certificate # Text used to identify certificate in notifications. + certificate-secret: INSTALLER_CERT_MAC_P12 # Name of the secret that contains the certificate. + password-secret: INSTALLER_CERT_MAC_PASSWORD # Name of the secret that contains the certificate password. - identifier: Windows signing certificate certificate-secret: INSTALLER_CERT_WINDOWS_PFX password-secret: INSTALLER_CERT_WINDOWS_PASSWORD @@ -41,7 +42,7 @@ jobs: steps: - name: Set certificate path environment variable run: | - # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable + # See: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable echo "CERTIFICATE_PATH=${{ runner.temp }}/certificate.p12" >> "$GITHUB_ENV" - name: Decode certificate env: @@ -60,7 +61,6 @@ jobs: echo "::error::Verification of ${{ matrix.certificate.identifier }} failed!!!" exit 1 ) - # See: https://github.com/rtCamp/action-slack-notify - name: Slack notification of certificate verification failure if: failure() uses: rtCamp/action-slack-notify@v2 @@ -98,7 +98,7 @@ jobs: ) )" DAYS_BEFORE_EXPIRATION="$((($(date --utc --date="$EXPIRATION_DATE" +%s) - $(date --utc +%s)) / 60 / 60 / 24))" - # Display the expiration information in the log + # Display the expiration information in the log. echo "Certificate expiration date: $EXPIRATION_DATE" echo "Days remaining before expiration: $DAYS_BEFORE_EXPIRATION" echo "::set-output name=days::$DAYS_BEFORE_EXPIRATION" @@ -110,7 +110,7 @@ jobs: exit 1 fi - name: Slack notification of pending certificate expiration - # Don't send spurious expiration notification if verification fails + # Don't send spurious expiration notification if verification fails. if: failure() && steps.check-expiration.outcome == 'failure' uses: rtCamp/action-slack-notify@v2 env: From 743c46a54ed1931f3aaa9f3ac55c4db9749fd984 Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:44:20 -0700 Subject: [PATCH 012/233] Use the matrix identifier to name the "Check Certificates" workflow jobs When no name is provided for a matrix job, the workflow job is named according to the contents of `jobs[]..strategy.matrix[]`. That can result in some fairly cryptic job names when the matrix contains a complex data structure as is the case here. We already have a string to uniquely identify each certificate to humans, which is exactly what the `jobs[]..name` property does for jobs, so it will be an improvement to name the jobs according to that identifier. --- .github/workflows/check-certificates.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index b4a658d59..8eaf271b1 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -20,6 +20,7 @@ env: jobs: check-certificates: + name: ${{ matrix.certificate.identifier }} # Only run when the workflow will have access to the certificate secrets. if: > (github.event_name != 'pull_request' && github.repository == 'arduino/arduino-create-agent') || From c331f12e336c77679f33f2fc655fdb5013142ba0 Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:45:51 -0700 Subject: [PATCH 013/233] Make trivial formatting changes to "Check Certificates" workflow No functional change, and neither is necessarily superior, but this is how it is in the "template", and so it must be here as well. --- .github/workflows/check-certificates.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 8eaf271b1..05e00ffed 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -45,11 +45,13 @@ jobs: run: | # See: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable echo "CERTIFICATE_PATH=${{ runner.temp }}/certificate.p12" >> "$GITHUB_ENV" + - name: Decode certificate env: CERTIFICATE: ${{ secrets[matrix.certificate.certificate-secret] }} run: | echo "${{ env.CERTIFICATE }}" | base64 --decode > "${{ env.CERTIFICATE_PATH }}" + - name: Verify certificate env: CERTIFICATE_PASSWORD: ${{ secrets[matrix.certificate.password-secret] }} @@ -62,9 +64,9 @@ jobs: echo "::error::Verification of ${{ matrix.certificate.identifier }} failed!!!" exit 1 ) + - name: Slack notification of certificate verification failure if: failure() - uses: rtCamp/action-slack-notify@v2 env: SLACK_WEBHOOK: ${{ secrets.TEAM_CREATE_CHANNEL_SLACK_WEBHOOK }} SLACK_MESSAGE: | @@ -73,6 +75,7 @@ jobs: :warning::warning::warning::warning: SLACK_COLOR: danger MSG_MINIMAL: true + uses: rtCamp/action-slack-notify@v2 - name: Get days remaining before certificate expiration date env: @@ -98,11 +101,15 @@ jobs: 'notAfter=(\K.*)' ) )" + DAYS_BEFORE_EXPIRATION="$((($(date --utc --date="$EXPIRATION_DATE" +%s) - $(date --utc +%s)) / 60 / 60 / 24))" + # Display the expiration information in the log. echo "Certificate expiration date: $EXPIRATION_DATE" echo "Days remaining before expiration: $DAYS_BEFORE_EXPIRATION" + echo "::set-output name=days::$DAYS_BEFORE_EXPIRATION" + - name: Check if expiration notification period has been reached id: check-expiration run: | @@ -110,10 +117,10 @@ jobs: echo "::error::${{ matrix.certificate.identifier }} will expire in ${{ steps.get-days-before-expiration.outputs.days }} days!!!" exit 1 fi + - name: Slack notification of pending certificate expiration # Don't send spurious expiration notification if verification fails. if: failure() && steps.check-expiration.outcome == 'failure' - uses: rtCamp/action-slack-notify@v2 env: SLACK_WEBHOOK: ${{ secrets.TEAM_CREATE_CHANNEL_SLACK_WEBHOOK }} SLACK_MESSAGE: | @@ -121,4 +128,5 @@ jobs: WARNING: ${{ github.repository }} ${{ matrix.certificate.identifier }} will expire in ${{ steps.get-days-before-expiration.outputs.days }} days!!! :warning::warning::warning::warning: SLACK_COLOR: danger - MSG_MINIMAL: true \ No newline at end of file + MSG_MINIMAL: true + uses: rtCamp/action-slack-notify@v2 From 3bdd07d8074cff022a7afeaead66831b388ee16a Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 13 Aug 2021 15:47:43 -0700 Subject: [PATCH 014/233] Add source URL comment to "Check Certificates" workflow This will make it easier for the maintainers to sync fixes and improvements in either direction between the upstream "template" workflow and its installation in this repository. --- .github/workflows/check-certificates.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 05e00ffed..92dec0148 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -1,3 +1,4 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-certificates.md name: Check Certificates # See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows From 250b17c5d5a319c7ffc5700f9457a775e01cacde Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Wed, 18 Aug 2021 10:32:49 +0200 Subject: [PATCH 015/233] Add serial binary communication (#653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update bufferflow_timedraw as bufferflow_timed * remove old commands * remove utf8 decoding with timedraw buffer type * binary support (WIP) * use switch case * fixed test deps * socketio test connection is working 🎉 (with the correct python-socketio version) * add callback to capture returned message, add new test for serial * fix tests: "socketio.exceptions.ConnectionError: Connection refused by the server" * minor optimizations: data and buf are already an array of bytes * enhanced a bit how the logic of the serial works * enhance a lot test on serial communication (with different buffer types) The tests should be skipped on the CI (no board connected) * update and enhance commands output (the space in front of `<` and `>` is required) 🤷‍♂️ * increased sleeptime, remove harcoded message[i]: should work on different systems * generalize the tests * Apply suggestions from code review Co-authored-by: per1234 * add sketch used for testing * Fix panic closing closed channel * apply suggestions * Partially revert #e80400b7ddbbc2e8f34f1e6701b55102c3a99289 * 🧹(cleanup) and 🛠️(refactoring) of bufferflow stuff * extract code in helper function and uniform the code reintroduce the closing of input channel (it's required) * optimize the handling of data coming from the serial port * uniform default bufferflow and 🧹 * forgot to fix this in #621 * apply suggestions from code review ✨ * remove timedbinary: it's the same as timedraw except for the casting * Escape html commands string * forgot to remove timed_binary * remove useless id field (was unused) * remove useless channel done & other stuff * make sendNoBuf more general: will be used later 😏 * add `sendraw` command to send base64 encoded bytes, add tests (for send raw and for open/close port) * forgot to skip test_sendraw_serial on CI * update comments * refactor tests * remove BlockUntilReady because it was unused Co-authored-by: per1234 Co-authored-by: Silvano Cerza --- bufferflow.go | 46 +---- bufferflow_default.go | 81 ++++----- bufferflow_timed.go | 129 +++++--------- bufferflow_timedraw.go | 121 +++++-------- go.sum | 1 + hub.go | 94 +++++----- poetry.lock | 136 +++++++++++---- pyproject.toml | 9 +- serial.go | 33 ++-- serialport.go | 223 ++++++++++-------------- test/common.py | 7 + test/conftest.py | 41 ++++- test/test_ws.py | 187 ++++++++++++++++++++ test/testdata/SerialEcho/SerialEcho.ino | 18 ++ 14 files changed, 644 insertions(+), 482 deletions(-) create mode 100644 test/common.py create mode 100644 test/test_ws.py create mode 100644 test/testdata/SerialEcho/SerialEcho.ino diff --git a/bufferflow.go b/bufferflow.go index 42ee9e9b4..07d34698b 100644 --- a/bufferflow.go +++ b/bufferflow.go @@ -1,49 +1,7 @@ package main -import ( -//"log" -//"time" -) - -var availableBufferAlgorithms = []string{"default", "timed", "timedraw"} - -type BufferMsg struct { - Cmd string - Port string - TriggeringResponse string - //Desc string - //Desc string -} - type Bufferflow interface { Init() - BlockUntilReady(cmd string, id string) (bool, bool) // implement this method - //JustQueue(cmd string, id string) bool // implement this method - OnIncomingData(data string) // implement this method - ClearOutSemaphore() // implement this method - BreakApartCommands(cmd string) []string // implement this method - Pause() // implement this method - Unpause() // implement this method - SeeIfSpecificCommandsShouldSkipBuffer(cmd string) bool // implement this method - SeeIfSpecificCommandsShouldPauseBuffer(cmd string) bool // implement this method - SeeIfSpecificCommandsShouldUnpauseBuffer(cmd string) bool // implement this method - SeeIfSpecificCommandsShouldWipeBuffer(cmd string) bool // implement this method - SeeIfSpecificCommandsReturnNoResponse(cmd string) bool // implement this method - ReleaseLock() // implement this method - IsBufferGloballySendingBackIncomingData() bool // implement this method - Close() // implement this method -} - -/*data packets returned to client*/ -type DataCmdComplete struct { - Cmd string - Id string - P string - BufSize int `json:"-"` - D string `json:"-"` -} - -type DataPerLine struct { - P string - D string + OnIncomingData(data string) // implement this method + Close() // implement this method } diff --git a/bufferflow_default.go b/bufferflow_default.go index 7f37ac3d2..2d6d6d281 100644 --- a/bufferflow_default.go +++ b/bufferflow_default.go @@ -1,71 +1,52 @@ package main import ( + "encoding/json" + log "github.com/sirupsen/logrus" ) type BufferflowDefault struct { - Name string - Port string + port string + output chan<- []byte + input chan string + done chan bool } -var () +func NewBufferflowDefault(port string, output chan<- []byte) *BufferflowDefault { + return &BufferflowDefault{ + port: port, + output: output, + input: make(chan string), + done: make(chan bool), + } +} func (b *BufferflowDefault) Init() { log.Println("Initting default buffer flow (which means no buffering)") + go b.consumeInput() } -func (b *BufferflowDefault) BlockUntilReady(cmd string, id string) (bool, bool) { - //log.Printf("BlockUntilReady() start\n") - return true, false +func (b *BufferflowDefault) consumeInput() { +Loop: + for { + select { + case data := <-b.input: + m := SpPortMessage{b.port, data} + message, _ := json.Marshal(m) + b.output <- message + case <-b.done: + break Loop //this is required, a simple break statement would only exit the innermost switch statement + } + } + close(b.input) // close the input channel at the end of the computation } func (b *BufferflowDefault) OnIncomingData(data string) { - //log.Printf("OnIncomingData() start. data:%v\n", data) -} - -// Clean out b.sem so it can truly block -func (b *BufferflowDefault) ClearOutSemaphore() { -} - -func (b *BufferflowDefault) BreakApartCommands(cmd string) []string { - return []string{cmd} -} - -func (b *BufferflowDefault) Pause() { - return -} - -func (b *BufferflowDefault) Unpause() { - return -} - -func (b *BufferflowDefault) SeeIfSpecificCommandsShouldSkipBuffer(cmd string) bool { - return false -} - -func (b *BufferflowDefault) SeeIfSpecificCommandsShouldPauseBuffer(cmd string) bool { - return false -} - -func (b *BufferflowDefault) SeeIfSpecificCommandsShouldUnpauseBuffer(cmd string) bool { - return false -} - -func (b *BufferflowDefault) SeeIfSpecificCommandsShouldWipeBuffer(cmd string) bool { - return false -} - -func (b *BufferflowDefault) SeeIfSpecificCommandsReturnNoResponse(cmd string) bool { - return false -} - -func (b *BufferflowDefault) ReleaseLock() { -} - -func (b *BufferflowDefault) IsBufferGloballySendingBackIncomingData() bool { - return false + b.input <- data } func (b *BufferflowDefault) Close() { + b.done <- true + close(b.done) } diff --git a/bufferflow_timed.go b/bufferflow_timed.go index d0be90227..b89427f37 100644 --- a/bufferflow_timed.go +++ b/bufferflow_timed.go @@ -8,104 +8,57 @@ import ( ) type BufferflowTimed struct { - Name string - Port string - Output chan []byte - Input chan string - done chan bool - ticker *time.Ticker + port string + output chan<- []byte + input chan string + done chan bool + ticker *time.Ticker + sPort string + bufferedOutput string } -var ( - bufferedOutput string - sPort string -) +func NewBufferflowTimed(port string, output chan<- []byte) *BufferflowTimed { + return &BufferflowTimed{ + port: port, + output: output, + input: make(chan string), + done: make(chan bool), + ticker: time.NewTicker(16 * time.Millisecond), + sPort: "", + bufferedOutput: "", + } +} func (b *BufferflowTimed) Init() { log.Println("Initting timed buffer flow (output once every 16ms)") - bufferedOutput = "" - sPort = "" - - go func() { - b.ticker = time.NewTicker(16 * time.Millisecond) - b.done = make(chan bool) - Loop: - for { - select { - case data := <-b.Input: - bufferedOutput = bufferedOutput + data - sPort = b.Port - case <-b.ticker.C: - if bufferedOutput != "" { - m := SpPortMessage{sPort, bufferedOutput} - buf, _ := json.Marshal(m) - // data is now encoded in base64 format - // need a decoder on the other side - b.Output <- []byte(buf) - bufferedOutput = "" - sPort = "" - } - case <-b.done: - break Loop + go b.consumeInput() +} + +func (b *BufferflowTimed) consumeInput() { +Loop: + for { + select { + case data := <-b.input: // use the buffer and append data to it + b.bufferedOutput = b.bufferedOutput + data + b.sPort = b.port + case <-b.ticker.C: // after 16ms send the buffered output message + if b.bufferedOutput != "" { + m := SpPortMessage{b.sPort, b.bufferedOutput} + buf, _ := json.Marshal(m) + b.output <- buf + // reset the buffer and the port + b.bufferedOutput = "" + b.sPort = "" } + case <-b.done: + break Loop //this is required, a simple break statement would only exit the innermost switch statement } - - close(b.Input) - - }() - -} - -func (b *BufferflowTimed) BlockUntilReady(cmd string, id string) (bool, bool) { - //log.Printf("BlockUntilReady() start\n") - return true, false + } + close(b.input) } func (b *BufferflowTimed) OnIncomingData(data string) { - b.Input <- data -} - -// Clean out b.sem so it can truly block -func (b *BufferflowTimed) ClearOutSemaphore() { -} - -func (b *BufferflowTimed) BreakApartCommands(cmd string) []string { - return []string{cmd} -} - -func (b *BufferflowTimed) Pause() { - return -} - -func (b *BufferflowTimed) Unpause() { - return -} - -func (b *BufferflowTimed) SeeIfSpecificCommandsShouldSkipBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimed) SeeIfSpecificCommandsShouldPauseBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimed) SeeIfSpecificCommandsShouldUnpauseBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimed) SeeIfSpecificCommandsShouldWipeBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimed) SeeIfSpecificCommandsReturnNoResponse(cmd string) bool { - return false -} - -func (b *BufferflowTimed) ReleaseLock() { -} - -func (b *BufferflowTimed) IsBufferGloballySendingBackIncomingData() bool { - return true + b.input <- data } func (b *BufferflowTimed) Close() { diff --git a/bufferflow_timedraw.go b/bufferflow_timedraw.go index b20f27f48..ab238bfe8 100644 --- a/bufferflow_timedraw.go +++ b/bufferflow_timedraw.go @@ -8,95 +8,62 @@ import ( ) type BufferflowTimedRaw struct { - Name string - Port string - Output chan []byte - Input chan string - ticker *time.Ticker + port string + output chan<- []byte + input chan string + done chan bool + ticker *time.Ticker + bufferedOutputRaw []byte + sPortRaw string } -var ( - bufferedOutputRaw []byte -) +func NewBufferflowTimedRaw(port string, output chan<- []byte) *BufferflowTimedRaw { + return &BufferflowTimedRaw{ + port: port, + output: output, + input: make(chan string), + done: make(chan bool), + ticker: time.NewTicker(16 * time.Millisecond), + bufferedOutputRaw: nil, + sPortRaw: "", + } +} func (b *BufferflowTimedRaw) Init() { - log.Println("Initting timed buffer flow (output once every 16ms)") - - go func() { - for data := range b.Input { - bufferedOutputRaw = append(bufferedOutputRaw, []byte(data)...) - } - }() - - go func() { - b.ticker = time.NewTicker(16 * time.Millisecond) - for _ = range b.ticker.C { - if len(bufferedOutputRaw) != 0 { - m := SpPortMessageRaw{b.Port, bufferedOutputRaw} + log.Println("Initting timed buffer raw flow (output once every 16ms)") + go b.consumeInput() +} + +func (b *BufferflowTimedRaw) consumeInput() { +Loop: + for { + select { + case data := <-b.input: // use the buffer and append data to it + b.bufferedOutputRaw = append(b.bufferedOutputRaw, []byte(data)...) + b.sPortRaw = b.port + case <-b.ticker.C: // after 16ms send the buffered output message + if b.bufferedOutputRaw != nil { + m := SpPortMessageRaw{b.sPortRaw, b.bufferedOutputRaw} buf, _ := json.Marshal(m) - // data is now encoded in base64 format - // need a decoder on the other side - b.Output <- []byte(buf) - bufferedOutputRaw = nil + // since bufferedOutputRaw is a []byte is base64-encoded by json.Marshal() function automatically + b.output <- buf + // reset the buffer and the port + b.bufferedOutputRaw = nil + b.sPortRaw = "" } + case <-b.done: + break Loop //this is required, a simple break statement would only exit the innermost switch statement } - }() - -} - -func (b *BufferflowTimedRaw) BlockUntilReady(cmd string, id string) (bool, bool) { - //log.Printf("BlockUntilReady() start\n") - return true, false + } + close(b.input) } func (b *BufferflowTimedRaw) OnIncomingData(data string) { - b.Input <- data -} - -// Clean out b.sem so it can truly block -func (b *BufferflowTimedRaw) ClearOutSemaphore() { -} - -func (b *BufferflowTimedRaw) BreakApartCommands(cmd string) []string { - return []string{cmd} -} - -func (b *BufferflowTimedRaw) Pause() { - return -} - -func (b *BufferflowTimedRaw) Unpause() { - return -} - -func (b *BufferflowTimedRaw) SeeIfSpecificCommandsShouldSkipBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimedRaw) SeeIfSpecificCommandsShouldPauseBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimedRaw) SeeIfSpecificCommandsShouldUnpauseBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimedRaw) SeeIfSpecificCommandsShouldWipeBuffer(cmd string) bool { - return false -} - -func (b *BufferflowTimedRaw) SeeIfSpecificCommandsReturnNoResponse(cmd string) bool { - return false -} - -func (b *BufferflowTimedRaw) ReleaseLock() { -} - -func (b *BufferflowTimedRaw) IsBufferGloballySendingBackIncomingData() bool { - return true + b.input <- data } func (b *BufferflowTimedRaw) Close() { b.ticker.Stop() - close(b.Input) + b.done <- true + close(b.done) } diff --git a/go.sum b/go.sum index 43f085b20..786092344 100644 --- a/go.sum +++ b/go.sum @@ -391,6 +391,7 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425 h1:VvQyQJN0tSuecqgcIxMWnnfG5kSmgy9KZR9sW3W5QeA= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= diff --git a/hub.go b/hub.go index 46aa9f679..c141a6cd8 100755 --- a/hub.go +++ b/hub.go @@ -2,6 +2,8 @@ package main import ( "encoding/json" + "fmt" + "html" "io" "os" "runtime" @@ -38,60 +40,64 @@ var h = hub{ connections: make(map[*connection]bool), } +const commands = `{ + "Commands": [ + "list", + "open [bufferAlgorithm: ({default}, timed, timedraw)]", + "(send, sendnobuf, sendraw) ", + "close ", + "restart", + "exit", + "killupload", + "downloadtool ", + "log", + "memorystats", + "gc", + "hostname", + "version" + ] +}` + +func (h *hub) unregisterConnection(c *connection) { + if _, contains := h.connections[c]; !contains { + return + } + delete(h.connections, c) + close(c.send) +} + +func (h *hub) sendToRegisteredConnections(data []byte) { + for c := range h.connections { + select { + case c.send <- data: + //log.Print("did broadcast to ") + //log.Print(c.ws.RemoteAddr()) + //c.send <- []byte("hello world") + default: + h.unregisterConnection(c) + } + } +} + func (h *hub) run() { for { select { case c := <-h.register: h.connections[c] = true // send supported commands - c.send <- []byte("{\"Version\" : \"" + version + "\"} ") - c.send <- []byte("{\"Commands\" : [\"list\", \"open [portName] [baud] [bufferAlgorithm (optional)]\", \"send [portName] [cmd]\", \"sendnobuf [portName] [cmd]\", \"close [portName]\", \"bufferalgorithms\", \"baudrates\", \"restart\", \"exit\", \"program [portName] [board:name] [$path/to/filename/without/extension]\", \"programfromurl [portName] [board:name] [urlToHexFile]\"]} ") - c.send <- []byte("{\"Hostname\" : \"" + *hostname + "\"} ") - c.send <- []byte("{\"OS\" : \"" + runtime.GOOS + "\"} ") + c.send <- []byte(fmt.Sprintf(`{"Version" : "%s"} `, version)) + c.send <- []byte(html.EscapeString(commands)) + c.send <- []byte(fmt.Sprintf(`{"Hostname" : "%s"} `, *hostname)) + c.send <- []byte(fmt.Sprintf(`{"OS" : "%s"} `, runtime.GOOS)) case c := <-h.unregister: - delete(h.connections, c) - // put close in func cuz it was creating panics and want - // to isolate - func() { - // this method can panic if websocket gets disconnected - // from users browser and we see we need to unregister a couple - // of times, i.e. perhaps from incoming data from serial triggering - // an unregister. (NOT 100% sure why seeing c.send be closed twice here) - defer func() { - if e := recover(); e != nil { - log.Println("Got panic: ", e) - } - }() - close(c.send) - }() + h.unregisterConnection(c) case m := <-h.broadcast: if len(m) > 0 { checkCmd(m) - - for c := range h.connections { - select { - case c.send <- m: - //log.Print("did broadcast to ") - //log.Print(c.ws.RemoteAddr()) - //c.send <- []byte("hello world") - default: - delete(h.connections, c) - close(c.send) - } - } + h.sendToRegisteredConnections(m) } case m := <-h.broadcastSys: - for c := range h.connections { - select { - case c.send <- m: - //log.Print("did broadcast to ") - //log.Print(c.ws.RemoteAddr()) - //c.send <- []byte("hello world") - default: - delete(h.connections, c) - close(c.send) - } - } + h.sendToRegisteredConnections(m) } } } @@ -127,7 +133,7 @@ func checkCmd(m []byte) { } // pass in buffer type now as string. if user does not // ask for a buffer type pass in empty string - bufferAlgorithm := "" + bufferAlgorithm := "default" // use the default buffer if none is specified if len(args) > 3 { // cool. we got a buffer type request buftype := strings.Replace(args[3], "\n", "", -1) @@ -153,7 +159,7 @@ func checkCmd(m []byte) { }() } else if strings.HasPrefix(sl, "send") { - // will catch send and sendnobuf + // will catch send and sendnobuf and sendraw go spWrite(s) } else if strings.HasPrefix(sl, "list") { go spList(false) diff --git a/poetry.lock b/poetry.lock index 0d51c0ae4..1261fb68e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,8 +1,16 @@ +[[package]] +name = "asyncio" +version = "3.4.3" +description = "reference implementation of PEP 3156" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "atomicwrites" version = "1.4.0" description = "Atomic file writes." -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -10,7 +18,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" name = "attrs" version = "20.3.0" description = "Classes Without Boilerplate" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -24,23 +32,23 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> name = "certifi" version = "2020.12.5" description = "Python package for providing Mozilla's CA Bundle." -category = "dev" +category = "main" optional = false python-versions = "*" [[package]] name = "chardet" -version = "4.0.0" +version = "3.0.4" description = "Universal encoding detector for Python 2 and 3" -category = "dev" +category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = "*" [[package]] name = "colorama" version = "0.4.4" description = "Cross-platform colored terminal text." -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -48,7 +56,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" name = "idna" version = "2.10" description = "Internationalized Domain Names in Applications (IDNA)" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -56,7 +64,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" +category = "main" optional = false python-versions = "*" @@ -64,26 +72,34 @@ python-versions = "*" name = "invoke" version = "1.5.0" description = "Pythonic task execution" -category = "dev" +category = "main" optional = false python-versions = "*" [[package]] name = "packaging" -version = "20.8" +version = "20.9" description = "Core utilities for Python packages" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] pyparsing = ">=2.0.2" +[[package]] +name = "pathlib" +version = "1.0.1" +description = "Object-oriented filesystem paths" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "pluggy" version = "0.13.1" description = "plugin and hook calling mechanisms for python" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -105,7 +121,7 @@ test = ["ipaddress", "mock", "unittest2", "enum34", "pywin32", "wmi"] name = "py" version = "1.10.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -113,15 +129,15 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" name = "pyparsing" version = "2.4.7" description = "Python parsing module" -category = "dev" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "pytest" -version = "6.2.1" +version = "6.2.2" description = "pytest: simple powerful testing with Python" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" @@ -138,11 +154,42 @@ toml = "*" [package.extras] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +[[package]] +name = "python-engineio" +version = "3.14.2" +description = "Engine.IO server" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +asyncio_client = ["aiohttp (>=3.4)"] +client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] + +[[package]] +name = "python-socketio" +version = "4.6.1" +description = "Socket.IO server" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +python-engineio = ">=3.13.0,<4" +six = ">=1.9.0" + +[package.extras] +asyncio_client = ["aiohttp (>=3.4)", "websockets (>=7.0)"] +client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] + [[package]] name = "requests" version = "2.25.1" description = "Python HTTP for Humans." -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" @@ -156,19 +203,27 @@ urllib3 = ">=1.21.1,<1.27" security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + [[package]] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "urllib3" -version = "1.26.2" +version = "1.26.3" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" @@ -180,9 +235,15 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "d4024a50235f771811ce457845b6cfef87950b8eb07a8a6e3ad10005482c8a05" +content-hash = "168545733833f6a77146c9976e6ead33d1d85eefa70685180b7c7843671b8db0" [metadata.files] +asyncio = [ + {file = "asyncio-3.4.3-cp33-none-win32.whl", hash = "sha256:b62c9157d36187eca799c378e572c969f0da87cd5fc42ca372d92cdb06e7e1de"}, + {file = "asyncio-3.4.3-cp33-none-win_amd64.whl", hash = "sha256:c46a87b48213d7464f22d9a497b9eef8c1928b68320a2fa94240f969f6fec08c"}, + {file = "asyncio-3.4.3-py3-none-any.whl", hash = "sha256:c4d18b22701821de07bd6aea8b53d21449ec0ec5680645e5317062ea21817d2d"}, + {file = "asyncio-3.4.3.tar.gz", hash = "sha256:83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41"}, +] atomicwrites = [ {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, @@ -196,8 +257,8 @@ certifi = [ {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, ] chardet = [ - {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, - {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, + {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, + {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, ] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, @@ -217,8 +278,11 @@ invoke = [ {file = "invoke-1.5.0.tar.gz", hash = "sha256:f0c560075b5fb29ba14dad44a7185514e94970d1b9d57dcd3723bec5fed92650"}, ] packaging = [ - {file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"}, - {file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"}, + {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, + {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, +] +pathlib = [ + {file = "pathlib-1.0.1.tar.gz", hash = "sha256:6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f"}, ] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, @@ -263,18 +327,30 @@ pyparsing = [ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, ] pytest = [ - {file = "pytest-6.2.1-py3-none-any.whl", hash = "sha256:1969f797a1a0dbd8ccf0fecc80262312729afea9c17f1d70ebf85c5e76c6f7c8"}, - {file = "pytest-6.2.1.tar.gz", hash = "sha256:66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306"}, + {file = "pytest-6.2.2-py3-none-any.whl", hash = "sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"}, + {file = "pytest-6.2.2.tar.gz", hash = "sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9"}, +] +python-engineio = [ + {file = "python-engineio-3.14.2.tar.gz", hash = "sha256:eab4553f2804c1ce97054c8b22cf0d5a9ab23128075248b97e1a5b2f29553085"}, + {file = "python_engineio-3.14.2-py2.py3-none-any.whl", hash = "sha256:5a9e6086d192463b04a1428ff1f85b6ba631bbb19d453b144ffc04f530542b84"}, +] +python-socketio = [ + {file = "python-socketio-4.6.1.tar.gz", hash = "sha256:cd1f5aa492c1eb2be77838e837a495f117e17f686029ebc03d62c09e33f4fa10"}, + {file = "python_socketio-4.6.1-py2.py3-none-any.whl", hash = "sha256:5a21da53fdbdc6bb6c8071f40e13d100e0b279ad997681c2492478e06f370523"}, ] requests = [ {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, ] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] toml = [ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] urllib3 = [ - {file = "urllib3-1.26.2-py2.py3-none-any.whl", hash = "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"}, - {file = "urllib3-1.26.2.tar.gz", hash = "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08"}, + {file = "urllib3-1.26.3-py2.py3-none-any.whl", hash = "sha256:1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80"}, + {file = "urllib3-1.26.3.tar.gz", hash = "sha256:de3eedaad74a2683334e282005cd8d7f22f4d55fa690a2a1020a416cb0a47e73"}, ] diff --git a/pyproject.toml b/pyproject.toml index c3d576b7c..ca7672636 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,11 +8,14 @@ license = "GPLv2" [tool.poetry.dependencies] python = "^3.9" psutil = "^5.8.0" - -[tool.poetry.dev-dependencies] -pytest = "^6.2.1" +pytest = "^6.2.2" requests = "^2.25.1" invoke = "^1.5.0" +pathlib = "^1.0.1" +asyncio = "^3.4.3" +python-socketio = "^4" + +[tool.poetry.dev-dependencies] [build-system] requires = ["poetry-core>=1.0.0"] diff --git a/serial.go b/serial.go index 38057ff6c..0bfd77873 100755 --- a/serial.go +++ b/serial.go @@ -14,8 +14,7 @@ import ( type writeRequest struct { p *serport d string - buffer bool - id string + buffer string } type serialhub struct { @@ -84,19 +83,21 @@ func (sh *serialhub) run() { close(p.sendNoBuf) case wr := <-sh.write: // if user sent in the commands as one text mode line - write(wr, "") + write(wr) } } } -func write(wr writeRequest, id string) { - if wr.buffer { - //log.Println("Send was normal send, so sending to wr.p.sendBuffered") +func write(wr writeRequest) { + switch wr.buffer { + case "send": wr.p.sendBuffered <- wr.d - } else { - //log.Println("Send was sendnobuf, so sending to wr.p.sendNoBuf") - wr.p.sendNoBuf <- wr.d + case "sendnobuf": + wr.p.sendNoBuf <- []byte(wr.d) + case "sendraw": + wr.p.sendRaw <- wr.d } + // no default since we alredy verified in spWrite() } // spList broadcasts a Json representation of the ports found @@ -275,13 +276,13 @@ func spWrite(arg string) { var wr writeRequest wr.p = myport - // see if args[0] is send or sendnobuf - if args[0] != "sendnobuf" { - // we were just given a "send" so buffer it - wr.buffer = true - } else { - //log.Println("sendnobuf specified so wr.buffer is false") - wr.buffer = false + // see if args[0] is send or sendnobuf or sendraw + switch args[0] { + case "send", "sendnobuf", "sendraw": + wr.buffer = args[0] + default: + spErr("Unsupported send command:" + args[0] + ". Please specify a valid one") + return } // include newline or not in the write? that is the question. diff --git a/serialport.go b/serialport.go index c7e574a7a..b427e1d2e 100755 --- a/serialport.go +++ b/serialport.go @@ -2,7 +2,7 @@ package main import ( "bytes" - "encoding/json" + "encoding/base64" "io" "strconv" "time" @@ -13,19 +13,8 @@ import ( ) type SerialConfig struct { - Name string - Baud int - - // Size int // 0 get translated to 8 - // Parity SomeNewTypeToGetCorrectDefaultOf_None - // StopBits SomeNewTypeToGetCorrectDefaultOf_1 - - // RTSFlowControl bool - // DTRFlowControl bool - // XONFlowControl bool - - // CRLFTranslate bool - // TimeoutStuff int + Name string + Baud int RtsOn bool DtrOn bool } @@ -35,8 +24,6 @@ type serport struct { portConf *SerialConfig portIo io.ReadWriteCloser - done chan bool // signals the end of this request - // Keep track of whether we're being actively closed // just so we don't show scary error messages isClosing bool @@ -50,7 +37,10 @@ type serport struct { sendBuffered chan string // unbuffered channel of outbound messages that bypass internal serial port buffer - sendNoBuf chan string + sendNoBuf chan []byte + + // channel containing raw base64 encoded binary data (outbound messages) + sendRaw chan string // Do we have an extra channel/thread to watch our buffer? BufferType string @@ -58,30 +48,6 @@ type serport struct { bufferwatcher Bufferflow } -type Cmd struct { - data string - id string - skippedBuffer bool - willHandleCompleteResponse bool -} - -type CmdComplete struct { - Cmd string - Id string - P string - BufSize int `json:"-"` - D string `json:"-"` -} - -type qwReport struct { - Cmd string - QCnt int - Id string - D string `json:"-"` - Buf string `json:"-"` - P string -} - type SpPortMessage struct { P string // the port, i.e. com22 D string // the data, i.e. G0 X0 Y0 @@ -92,18 +58,17 @@ type SpPortMessageRaw struct { D []byte // the data, i.e. G0 X0 Y0 } -func (p *serport) reader() { +func (p *serport) reader(buftype string) { - //var buf bytes.Buffer - ch := make([]byte, 1024) timeCheckOpen := time.Now() var buffered_ch bytes.Buffer + serialBuffer := make([]byte, 1024) for { + n, err := p.portIo.Read(serialBuffer) + bufferPart := serialBuffer[:n] - n, err := p.portIo.Read(ch) - - //if we detect that port is closing, break out o this for{} loop. + //if we detect that port is closing, break out of this for{} loop. if p.isClosing { strmsg := "Shutting down reader on " + p.portConf.Name log.Println(strmsg) @@ -111,67 +76,41 @@ func (p *serport) reader() { break } - if err == nil { - ch = append(buffered_ch.Bytes(), ch[:n]...) - n += len(buffered_ch.Bytes()) - buffered_ch.Reset() - } - // read can return legitimate bytes as well as an error - // so process the bytes if n > 0 - if n > 0 { - //log.Print("Read " + strconv.Itoa(n) + " bytes ch: " + string(ch)) - - data := "" + // so process the n bytes red, if n > 0 + if n > 0 && err == nil { - for i, w := 0, 0; i < n; i += w { - runeValue, width := utf8.DecodeRune(ch[i:n]) - if runeValue == utf8.RuneError { - buffered_ch.Write(append(ch[i:n])) - break - } - if i == n { - buffered_ch.Reset() - } - data += string(runeValue) - w = width - } + log.Print("Read " + strconv.Itoa(n) + " bytes ch: " + string(bufferPart[:n])) - //log.Print("The data i will convert to json is:") - //log.Print(data) - - // give the data to our bufferflow so it can do it's work - // to read/translate the data to see if it wants to block - // writes to the serialport. each bufferflow type will decide - // this on its own based on its logic, i.e. tinyg vs grbl vs others - //p.b.bufferwatcher..OnIncomingData(data) - p.bufferwatcher.OnIncomingData(data) - - // see if the OnIncomingData handled the broadcast back - // to the user. this option was added in case the OnIncomingData wanted - // to do something fancier or implementation specific, i.e. TinyG Buffer - // actually sends back data on a perline basis rather than our method - // where we just send the moment we get it. the reason for this is that - // the browser was sometimes getting back packets out of order which - // of course would screw things up when parsing - - if p.bufferwatcher.IsBufferGloballySendingBackIncomingData() == false { - //m := SpPortMessage{"Alice", "Hello"} - m := SpPortMessage{p.portConf.Name, data} - //log.Print("The m obj struct is:") - //log.Print(m) - - //b, err := json.MarshalIndent(m, "", "\t") - b, err := json.Marshal(m) - if err != nil { - log.Println(err) - h.broadcastSys <- []byte("Error creating json on " + p.portConf.Name + " " + - err.Error() + " The data we were trying to convert is: " + string(ch[:n])) - break + data := "" + switch buftype { + case "timedraw", "timed": + data = string(bufferPart[:n]) + // give the data to our bufferflow so it can do it's work + // to read/translate the data to see if it wants to block + // writes to the serialport. each bufferflow type will decide + // this on its own based on its logic + p.bufferwatcher.OnIncomingData(data) + case "default": // the bufferbuftype is actually called default 🤷‍♂️ + // save the left out bytes for the next iteration due to UTF-8 encoding + bufferPart = append(buffered_ch.Bytes(), bufferPart[:n]...) + n += len(buffered_ch.Bytes()) + buffered_ch.Reset() + for i, w := 0, 0; i < n; i += w { + runeValue, width := utf8.DecodeRune(bufferPart[i:n]) // try to decode the first i bytes in the buffer (UTF8 runes do not have a fixed length) + if runeValue == utf8.RuneError { + buffered_ch.Write(bufferPart[i:n]) + break + } + if i == n { + buffered_ch.Reset() + } + data += string(runeValue) + w = width } - //log.Print("Printing out json byte data...") - //log.Print(string(b)) - h.broadcastSys <- b + p.bufferwatcher.OnIncomingData(data) + default: + log.Panicf("unknown buffer type %s", buftype) } } @@ -235,18 +174,10 @@ func (p *serport) writerBuffered() { // sees something come in for data := range p.sendBuffered { - // we want to block here if we are being asked to pause. - goodToGo, _ := p.bufferwatcher.BlockUntilReady(string(data), "") - - if goodToGo == false { - log.Println("We got back from BlockUntilReady() but apparently we must cancel this cmd") - // since we won't get a buffer decrement in p.sendNoBuf, we must do it here - p.itemsInBuffer-- - } else { - // send to the non-buffered serial port writer - //log.Println("About to send to p.sendNoBuf channel") - p.sendNoBuf <- data - } + // send to the non-buffered serial port writer + //log.Println("About to send to p.sendNoBuf channel") + p.sendNoBuf <- []byte(data) + } msgstr := "writerBuffered just got closed. make sure you make a new one. port:" + p.portConf.Name log.Println(msgstr) @@ -269,7 +200,7 @@ func (p *serport) writerNoBuf() { // FINALLY, OF ALL THE CODE IN THIS PROJECT // WE TRULY/FINALLY GET TO WRITE TO THE SERIAL PORT! - n2, err := p.portIo.Write([]byte(data)) + n2, err := p.portIo.Write(data) log.Print("Just wrote ", n2, " bytes to serial: ", string(data)) if err != nil { @@ -287,6 +218,38 @@ func (p *serport) writerNoBuf() { spList(false) } +// this method runs as its own thread because it's instantiated +// as a "go" method. so if it blocks inside, it is ok +func (p *serport) writerRaw() { + // this method can panic if user closes serial port and something is + // in BlockUntilReady() and then a send occurs on p.sendNoBuf + + defer func() { + if e := recover(); e != nil { + log.Println("Got panic: ", e) + } + }() + + // this for loop blocks on p.sendRaw until that channel + // sees something come in + for data := range p.sendRaw { + + // Decode stuff + sDec, err := base64.StdEncoding.DecodeString(data) + if err != nil { + log.Println("Decoding error:", err) + } + log.Println(string(sDec)) + + // send to the non-buffered serial port writer + p.sendNoBuf <- sDec + + } + msgstr := "writerRaw just got closed. make sure you make a new one. port:" + p.portConf.Name + log.Println(msgstr) + h.broadcastSys <- []byte(msgstr) +} + func spHandlerOpen(portname string, baud int, buftype string) { log.Print("Inside spHandler") @@ -319,16 +282,19 @@ func spHandlerOpen(portname string, baud int, buftype string) { log.Print("Opened port successfully") //p := &serport{send: make(chan []byte, 256), portConf: conf, portIo: sp} // we can go up to 256,000 lines of gcode in the buffer - p := &serport{sendBuffered: make(chan string, 256000), sendNoBuf: make(chan string), portConf: conf, portIo: sp, BufferType: buftype} + p := &serport{sendBuffered: make(chan string, 256000), sendNoBuf: make(chan []byte), sendRaw: make(chan string), portConf: conf, portIo: sp, BufferType: buftype} var bw Bufferflow - if buftype == "timed" { - bw = &BufferflowTimed{Name: "timed", Port: portname, Output: h.broadcastSys, Input: make(chan string)} - } else if buftype == "timedraw" { - bw = &BufferflowTimedRaw{Name: "timedraw", Port: portname, Output: h.broadcastSys, Input: make(chan string)} - } else { - bw = &BufferflowDefault{Port: portname} + switch buftype { + case "timed": + bw = NewBufferflowTimed(portname, h.broadcastSys) + case "timedraw": + bw = NewBufferflowTimedRaw(portname, h.broadcastSys) + case "default": + bw = NewBufferflowDefault(portname, h.broadcastSys) + default: + log.Panicf("unknown buffer type: %s", buftype) } bw.Init() @@ -344,14 +310,13 @@ func spHandlerOpen(portname string, baud int, buftype string) { go p.writerBuffered() // this is thread to send to serial port regardless of block go p.writerNoBuf() - p.reader() + // this is thread to send to serial port but with base64 decoding + go p.writerRaw() + + p.reader(buftype) spListDual(false) spList(false) - - //go p.reader() - //p.done = make(chan bool) - //<-p.done } func spHandlerClose(p *serport) { diff --git a/test/common.py b/test/common.py new file mode 100644 index 000000000..34e16b523 --- /dev/null +++ b/test/common.py @@ -0,0 +1,7 @@ +import os + +def running_on_ci(): + """ + Returns whether the program is running on a CI environment + """ + return 'GITHUB_WORKFLOW' in os.environ diff --git a/test/conftest.py b/test/conftest.py index fd50856ec..3f1b185f2 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -7,7 +7,7 @@ import pytest from invoke import Local from invoke.context import Context - +import socketio as io @pytest.fixture(scope="function") def agent(pytestconfig): @@ -43,3 +43,42 @@ def agent(pytestconfig): @pytest.fixture(scope="session") def base_url(): return "http://127.0.0.1:8991" + +@pytest.fixture(scope="function") +def socketio(base_url, agent): + sio = io.Client() + sio.connect(base_url) + yield sio + sio.disconnect() + +@pytest.fixture(scope="session") +def serial_port(): + return "/dev/ttyACM0" # maybe this could be enhanced by calling arduino-cli + +@pytest.fixture(scope="session") +def baudrate(): + return "9600" + +# open_port cannot be coced as a fixture because of the buffertype parameter + +# at the end of the test closes the serial port +@pytest.fixture(scope="function") +def close_port(socketio, serial_port): + yield socketio + socketio.emit('command', 'close ' + serial_port) + time.sleep(.5) + + +@pytest.fixture(scope="function") +def message(socketio): + global message + message = [] + #in message var we will find the "response" + socketio.on('message', message_handler) + return message + +# callback called by socketio when a message is received +def message_handler(msg): + # print('Received message: ', msg) + global message + message.append(msg) \ No newline at end of file diff --git a/test/test_ws.py b/test/test_ws.py new file mode 100644 index 000000000..8a7143e74 --- /dev/null +++ b/test/test_ws.py @@ -0,0 +1,187 @@ +import time +import json +import base64 +import pytest + +from common import running_on_ci +message = [] + + +def test_ws_connection(socketio): + print('my sid is', socketio.sid) + assert socketio.sid is not None + + +def test_list(socketio, message): + socketio.emit('command', 'list') + time.sleep(.2) + print (message) + assert any("list" in i for i in message) + assert any("Ports" in i for i in message) + assert any("Network" in i for i in message) + + +# NOTE run the following tests with a board connected to the PC +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_open_serial_default(socketio, serial_port, baudrate, message): + general_open_serial(socketio, serial_port, baudrate, message, "default") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_open_serial_timed(socketio, serial_port, baudrate, message): + general_open_serial(socketio, serial_port, baudrate, message, "timed") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_open_serial_timedraw(socketio, serial_port, baudrate, message): + general_open_serial(socketio, serial_port, baudrate, message, "timedraw") + + +# NOTE run the following tests with a board connected to the PC and with the sketch found in test/testdata/SerialEcho.ino on it be sure to change serial_address in conftest.py +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_send_serial_default(socketio, close_port, serial_port, baudrate, message): + general_send_serial(socketio, close_port, serial_port, baudrate, message, "default") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_send_serial_timed(socketio, close_port, serial_port, baudrate, message): + general_send_serial(socketio, close_port, serial_port, baudrate, message, "timed") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_send_serial_timedraw(socketio, close_port, serial_port, baudrate, message): + general_send_serial(socketio, close_port, serial_port, baudrate, message, "timedraw") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_send_emoji_serial_default(socketio, close_port, serial_port, baudrate, message): + general_send_emoji_serial(socketio, close_port, serial_port, baudrate, message, "default") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_send_emoji_serial_timed(socketio, close_port, serial_port, baudrate, message): + general_send_emoji_serial(socketio, close_port, serial_port, baudrate, message, "timed") + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_send_emoji_serial_timedraw(socketio, close_port, serial_port, baudrate, message): + general_send_emoji_serial(socketio, close_port, serial_port, baudrate, message, "timedraw") + + +def general_open_serial(socketio, serial_port, baudrate, message, buffertype): + open_serial_port(socketio, serial_port, baudrate, message, buffertype) + # test the closing of the serial port, we are gonna use close_port for the other tests + socketio.emit('command', 'close ' + serial_port) + time.sleep(.2) + print (message) + #check if port has been closed + assert any("\"IsOpen\": false," in i for i in message) + + +def general_send_serial(socketio, close_port, serial_port, baudrate, message, buffertype): + open_serial_port(socketio, serial_port, baudrate, message, buffertype) + # send the string "ciao" using the serial connection + socketio.emit('command', 'send ' + serial_port + ' ciao') + time.sleep(1) + print(message) + # check if the send command has been registered + assert any("send " + serial_port + " ciao" in i for i in message) + #check if message has been sent back by the connected board + if buffertype == "timedraw": + output = decode_output(extract_serial_data(message)) + elif buffertype in ("default", "timed"): + output = extract_serial_data(message) + assert "ciao" in output + # the serial connection is closed by close_port() fixture: even if in case of test failure + + +def general_send_emoji_serial(socketio, close_port, serial_port, baudrate, message, buffertype): + open_serial_port(socketio, serial_port, baudrate, message, buffertype) + # send a lot of emoji: they can be messed up + socketio.emit('command', 'send ' + serial_port + ' /"🧀🧀🧀🧀🧀🧀🧀🧀🧀🧀/"') + time.sleep(1) + print(message) + # check if the send command has been registered + assert any("send " + serial_port + " /\"🧀🧀🧀🧀🧀🧀🧀🧀🧀🧀/\"" in i for i in message) + if buffertype == "timedraw": + output = decode_output(extract_serial_data(message)) + elif buffertype in ("default", "timed"): + output = extract_serial_data(message) + assert "/\"🧀🧀🧀🧀🧀🧀🧀🧀🧀🧀/\"" in output + # the serial connection is closed by close_port() fixture: even if in case of test failure + + +def open_serial_port(socketio, serial_port, baudrate, message, buffertype): + #open a new serial connection with the specified buffertype + socketio.emit('command', 'open ' + serial_port + ' ' + baudrate + ' ' + buffertype) + # give time to the message var to be filled + time.sleep(.5) + print(message) + # the serial connection should be open now + assert any("\"IsOpen\": true" in i for i in message) + + +@pytest.mark.skipif( + running_on_ci(), + reason="VMs have no serial ports", +) +def test_sendraw_serial(socketio, close_port, serial_port, baudrate, message): + open_serial_port(socketio, serial_port, baudrate, message, "timedraw") + #test with bytes + integers = [1, 2, 3, 4, 5] + bytes_array=bytearray(integers) + encoded_integers = base64.b64encode(bytes_array).decode('ascii') + socketio.emit('command', 'sendraw ' + serial_port + ' ' + encoded_integers) + time.sleep(1) + print(message) + # check if the send command has been registered + assert any(("sendraw " + serial_port + ' ' + encoded_integers) in i for i in message) + #check if message has been sent back by the connected board + output = extract_serial_data(message) # TODO use decode_output() + print (output) + assert encoded_integers in output + + +# helper function used to extract serial data from its JSON representation +# NOTE make sure to pass a clean message (maybe reinitialize the message global var before populating it) +def extract_serial_data(msg): + serial_data = "" + for i in msg: + if "{\"P\"" in i: + print (json.loads(i)["D"]) + serial_data+=json.loads(i)["D"] + print("serialdata:"+serial_data) + return serial_data + +def decode_output(raw_output): + # print(raw_output) + base64_bytes = raw_output.encode('ascii') #encode rawoutput message into a bytes-like object + output_bytes = base64.b64decode(base64_bytes) + return output_bytes.decode('utf-8') diff --git a/test/testdata/SerialEcho/SerialEcho.ino b/test/testdata/SerialEcho/SerialEcho.ino new file mode 100644 index 000000000..efb7c59b7 --- /dev/null +++ b/test/testdata/SerialEcho/SerialEcho.ino @@ -0,0 +1,18 @@ +int incomingByte = 0; // for incoming serial data + +void setup() { + Serial.begin(9600); // opens serial port, sets data rate to 9600 bps +} + +void loop() { + // send data only when you receive data: + if (Serial.available() > 0) { + + // read the incoming byte: + incomingByte = Serial.read(); + + // say what you got: + Serial.print((char)incomingByte); + } + +} From 714ffce5d32b3532e15a4b4b0b749d2d2e2d8f4e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 2 Sep 2021 10:31:54 +0200 Subject: [PATCH 016/233] Add CI workflow to run integration tests and to test Go code (#659) * Add CI workflow to test Go code On every push and pull request that affects relevant files, run the project's Go code tests. * rename test dir to tests (for uniformity with other tooling team repos) * Add CI workflow to run integration tests On every push and pull request that affects relevant files, run the integration tests. * add again step to install dependencies (used by systray) * disable actions/checkout action conversion of LF line endings to CRLF when checking out on a Windows runner. * remove testing from the release workflow, since it's already done in `test-go-task` and `test-go-integration-task` workflows * update release CI to use the new `task go:build` --- .github/workflows/release.yml | 26 +--- .../workflows/test-go-integration-task.yml | 106 ++++++++++++++++ .github/workflows/test-go-task.yml | 110 +++++++++++++++++ .github/workflows/test.yml | 115 ------------------ README.md | 3 + Taskfile.yml | 64 +++++++--- main_test.go | 2 +- {test => tests}/common.py | 0 {test => tests}/conftest.py | 2 +- {test => tests}/test_certs.py | 0 {test => tests}/test_info.py | 0 {test => tests}/test_update.py | 0 {test => tests}/test_v2.py | 0 {test => tests}/test_ws.py | 2 +- .../testdata/SerialEcho/SerialEcho.ino | 0 {test => tests}/testdata/test.ini | 0 16 files changed, 277 insertions(+), 153 deletions(-) create mode 100644 .github/workflows/test-go-integration-task.yml create mode 100644 .github/workflows/test-go-task.yml delete mode 100644 .github/workflows/test.yml rename {test => tests}/common.py (100%) rename {test => tests}/conftest.py (99%) rename {test => tests}/test_certs.py (100%) rename {test => tests}/test_info.py (100%) rename {test => tests}/test_update.py (100%) rename {test => tests}/test_v2.py (100%) rename {test => tests}/test_ws.py (98%) rename {test => tests}/testdata/SerialEcho/SerialEcho.ino (100%) rename {test => tests}/testdata/test.ini (100%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5947ea68e..c3bd31b9e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -85,16 +85,13 @@ jobs: - name: Check the code is good run: task check - - name: Run unit tests - run: task test-unit - - name: Build the Agent for linux - run: task build + run: task go:build if: matrix.os == 'ubuntu-18.04' # build the agent without GUI support (no tray icon) - name: Build the Agent-cli - run: task build-cli + run: task go:build-cli if: matrix.os == 'ubuntu-18.04' # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) @@ -108,11 +105,11 @@ jobs: env: GOARCH: 386 # 32bit architecture (for support) GO386: 387 # support old instruction sets without MMX (used in the Pentium 4) (will be deprecated in GO > 1.15 https://golang.org/doc/go1.15) - run: task build-win + run: task go:build-win if: matrix.os == 'windows-2019' && matrix.arch == '-386' - name: Build the Agent for win64 - run: task build-win # GOARCH=amd64 by default on the runners + run: task go:build-win # GOARCH=amd64 by default on the runners if: matrix.os == 'windows-2019' && matrix.arch == '-amd64' - name: Build the Agent for macos @@ -120,20 +117,7 @@ jobs: MACOSX_DEPLOYMENT_TARGET: 10.11 # minimum supported version for mac CGO_CFLAGS: -mmacosx-version-min=10.11 CGO_LDFLAGS: -mmacosx-version-min=10.11 - run: task build - if: matrix.os == 'macos-10.15' - - - name: Install Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - architecture: 'x64' - if: matrix.os == 'macos-10.15' - - - name: Run e2e tests - run: | - pip install poetry - task test-e2e + run: task go:build if: matrix.os == 'macos-10.15' # this will create `public/` dir with compressed full bin (/-.gz) and a json file diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml new file mode 100644 index 000000000..9502a756b --- /dev/null +++ b/.github/workflows/test-go-integration-task.yml @@ -0,0 +1,106 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/test-go-integration-task.md +name: Test Integration + +env: + # See: https://github.com/actions/setup-go/tree/v2#readme + GO_VERSION: "1.14" + # See: https://github.com/actions/setup-python/tree/v2#available-versions-of-python + PYTHON_VERSION: "3.9" + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + create: + push: + paths: + - ".github/workflows/test-go-integration-task.ya?ml" + - "Taskfile.ya?ml" + - "**.go" + - "go.mod" + - "go.sum" + - "poetry.lock" + - "pyproject.toml" + - "tests/**" + pull_request: + paths: + - ".github/workflows/test-go-integration-task.ya?ml" + - "Taskfile.ya?ml" + - "**.go" + - "go.mod" + - "go.sum" + - "poetry.lock" + - "pyproject.toml" + - "tests/**" + workflow_dispatch: + repository_dispatch: + +jobs: + run-determination: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.determination.outputs.result }} + steps: + - name: Determine if the rest of the workflow should run + id: determination + run: | + RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" + # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. + if [[ \ + "${{ github.event_name }}" != "create" || \ + "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX \ + ]]; then + # Run the other jobs. + RESULT="true" + else + # There is no need to run the other jobs. + RESULT="false" + fi + + echo "::set-output name=result::$RESULT" + + test: + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + + strategy: + matrix: + operating-system: + - ubuntu-latest + - windows-latest + - macos-latest + + runs-on: ${{ matrix.operating-system }} + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Python + uses: actions/setup-python@v2 + with: + python-version: ${{ env.PYTHON_VERSION }} + + - name: Install Poetry + run: pip install poetry + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + # build the agent without GUI support (no tray icon) for integration testing + - name: Build the Agent-cli + run: task go:build-cli + if: matrix.operating-system != 'windows-latest' + + - name: Build the Agent-cli for win + run: task go:build-win-cli + if: matrix.operating-system == 'windows-latest' + + - name: Run integration tests + run: task go:test-integration diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml new file mode 100644 index 000000000..c88772d36 --- /dev/null +++ b/.github/workflows/test-go-task.yml @@ -0,0 +1,110 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/test-go-task.md +name: Test Go + +env: + # See: https://github.com/actions/setup-go/tree/v2#readme + GO_VERSION: "1.14" + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + create: + push: + paths: + - ".github/workflows/test-go-task.ya?ml" + - "codecov.ya?ml" + - "**/go.mod" + - "**/go.sum" + - "Taskfile.ya?ml" + - "**.go" + - "**/testdata/**" + pull_request: + paths: + - ".github/workflows/test-go-task.ya?ml" + - "codecov.ya?ml" + - "**/go.mod" + - "**/go.sum" + - "Taskfile.ya?ml" + - "**.go" + - "**/testdata/**" + workflow_dispatch: + repository_dispatch: + +jobs: + run-determination: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.determination.outputs.result }} + steps: + - name: Determine if the rest of the workflow should run + id: determination + run: | + RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" + # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. + if [[ \ + "${{ github.event_name }}" != "create" || \ + "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX \ + ]]; then + # Run the other jobs. + RESULT="true" + else + # There is no need to run the other jobs. + RESULT="false" + fi + + echo "::set-output name=result::$RESULT" + + test: + name: test (${{ matrix.module.path }} - ${{ matrix.operating-system }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + + strategy: + fail-fast: false + + matrix: + operating-system: + - ubuntu-latest + - windows-latest + - macos-latest + module: + - path: ./ + codecov-flags: unit + + runs-on: ${{ matrix.operating-system }} + + steps: + # By default, actions/checkout converts the repo's LF line endings to CRLF on the Windows runner. + - name: Disable EOL conversions + run: git config --global core.autocrlf false + + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + # https://github.com/getlantern/systray#linux + - name: Install Dependencies (Linux) + run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev + if: matrix.operating-system == 'ubuntu-latest' + + - name: Run tests + env: + GO_MODULE_PATH: ${{ matrix.module.path }} + run: task go:test + + - name: Send unit tests coverage to Codecov + if: runner.os == 'Linux' + uses: codecov/codecov-action@v2 + with: + file: ${{ matrix.module.path }}coverage_unit.txt + flags: ${{ matrix.module.codecov-flags }} + fail_ci_if_error: ${{ github.repository == 'arduino/arduino-create-agent' }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 3c29107fb..000000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,115 +0,0 @@ -name: test - -on: - pull_request: - -jobs: - test-matrix: - strategy: - matrix: - os: [ubuntu-18.04, windows-2019, macos-10.15] - arch: [-amd64] - include: - - os: windows-2019 - arch: -386 - - defaults: - run: - shell: bash - - runs-on: ${{ matrix.os }} - - steps: - - name: Disable EOL conversions - run: git config --global core.autocrlf false - - - name: Checkout - uses: actions/checkout@v2 - - - name: Install Go - uses: actions/setup-go@v2 - with: - go-version: "1.14" - - # dependencies used for compiling the GUI - - name: Install Dependencies (Linux) - run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev - if: matrix.os == 'ubuntu-18.04' - - - name: Install Go deps - # Since 10/23/2019 pwsh is the default shell - # on Windows, but pwsh fails to install protoc-gen-go so - # we force bash as default shell for all OSes in this task - run: | - go get github.com/golangci/govet - go get golang.org/x/lint/golint - - - name: Install Taskfile - uses: arduino/setup-task@v1 - with: - version: '3.x' - repo-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Check the code is good - run: task check - - - name: Run unit tests - run: task test-unit - - - name: Build the Agent for linux - run: task build - if: matrix.os == 'ubuntu-18.04' - - # build the agent without GUI support (no tray icon) - - name: Build the Agent-cli - run: task build-cli - if: matrix.os == 'ubuntu-18.04' - - # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) - # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. - - name: Download tool to embed manifest in win binary - run: go get github.com/akavel/rsrc - if: matrix.os == 'windows-2019' - - # building the agent for win requires a different task because of an extra flag - - name: Build the Agent for win32 - env: - GOARCH: 386 # 32bit architecture (for support) - GO386: 387 # support old instruction sets without MMX (used in the Pentium 4) (will be deprecated in GO > 1.15 https://golang.org/doc/go1.15) - run: task build-win - if: matrix.os == 'windows-2019' && matrix.arch == '-386' - - - name: Build the Agent for win64 - run: task build-win # GOARCH=amd64 by default on the runners - if: matrix.os == 'windows-2019' && matrix.arch == '-amd64' - - - name: Build the Agent for macos - env: - MACOSX_DEPLOYMENT_TARGET: 10.11 # minimum supported version for mac - CGO_CFLAGS: -mmacosx-version-min=10.11 - CGO_LDFLAGS: -mmacosx-version-min=10.11 - run: task build - if: matrix.os == 'macos-10.15' - - - name: Install Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - architecture: 'x64' - if: matrix.os == 'macos-10.15' - - - name: Run e2e tests - run: | - pip install poetry - task test-e2e - if: matrix.os == 'macos-10.15' - - # config.ini is required by the executable when it's run - - name: Upload artifacts - uses: actions/upload-artifact@v2 - with: - name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} - path: | - arduino-create-agent* - config.ini - if-no-files-found: error diff --git a/README.md b/README.md index e6b456c22..3fa8dd07d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ [![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) +[![Test Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml) +[![Codecov](https://codecov.io/gh/arduino/arduino-create-agent/branch/main/graph/badge.svg)](https://codecov.io/gh/arduino/arduino-create-agent) +[![Test Integration status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml) arduino-create-agent ==================== diff --git a/Taskfile.yml b/Taskfile.yml index 48c6fb534..c1f70e5ec 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -1,43 +1,76 @@ version: '3' tasks: - - build: + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/go-task/Taskfile.yml + go:build: desc: Build the project, to use a specific version use `task build TAG_VERSION=x.x.x` + dir: "{{.DEFAULT_GO_MODULE_PATH}}" cmds: - go build -v -i {{default "" .ADDITIONAL_FLAGS}} -o {{default "arduino-create-agent" .APP_NAME}} -ldflags '-X main.version={{default .TAG_TEST .TAG_VERSION}} -X main.git_revision={{.COMMIT}} {{default "" .WIN_FLAGS}}' vars: COMMIT: sh: git log -n 1 --format=%h - build-cli: - desc: Build the project without tray support + go:build-cli: + desc: Build the project without tray icon support cmds: - - task: build + - task: go:build vars: APP_NAME: arduino-create-agent_cli ADDITIONAL_FLAGS: -tags cli - build-win: + go:build-win: desc: Build the project for win, to build 32bit `export GOARCH=386` and for 64 bit `export GOARCH=amd64` before `task build-win` cmds: - rsrc -arch {{.GOARCH}} -manifest manifest.xml # GOARCH shoud be either amd64 or 386 - - task: build + - task: go:build vars: APP_NAME: arduino-create-agent.exe WIN_FLAGS: -H=windowsgui - rm *.syso # rm file to avoid compilation problems on other platforms - test-unit: - desc: Run unit tests only + go:build-win-cli: + desc: Build the project fow win without tray icon support + cmds: + - task: go:build + vars: + APP_NAME: arduino-create-agent_cli.exe + ADDITIONAL_FLAGS: -tags cli + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-go-task/Taskfile.yml + go:test: + desc: Run unit tests + dir: "{{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}}" cmds: - - go test -short -run '{{ default ".*" .TEST_REGEX }}' {{ default "-v" .GOFLAGS }} -coverprofile=coverage_unit.txt {{ default .DEFAULT_TARGETS .TARGETS }} {{.TEST_LDFLAGS}} + - | + go test \ + -v \ + -short \ + -run '{{default ".*" .GO_TEST_REGEX}}' \ + {{default "-timeout 10m -coverpkg=./... -covermode=atomic" .GO_TEST_FLAGS}} \ + -coverprofile=coverage_unit.txt \ + {{default .DEFAULT_GO_PACKAGES .GO_PACKAGES}} - test-e2e: - desc: Run end 2 end tests + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-go-integration-task/Taskfile.yml + go:test-integration: + desc: Run integration tests + deps: + # - task: go:build # we build it in the CI and not in the task because _cli version is required and build procedure is different on win + - task: poetry:install-deps + cmds: + - poetry run pytest tests + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml + poetry:install-deps: + desc: Install dependencies managed by Poetry cmds: - poetry install --no-root - - poetry run pytest test + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml + poetry:update-deps: + desc: Update all dependencies managed by Poetry to their newest versions + cmds: + - poetry update check: desc: Check fmt and lint @@ -63,7 +96,10 @@ vars: # all modules of this project except for "gen/..." module DEFAULT_TARGETS: sh: echo `go list ./... | grep -v 'arduino-create-agent/gen/' | tr '\n' ' '` - GOFLAGS: "-timeout 10m -v -coverpkg=./... -covermode=atomic" + DEFAULT_GO_MODULE_PATH: ./ + DEFAULT_GO_PACKAGES: + sh: | + echo $(cd {{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}} && go list ./... | tr '\n' ' ' || echo '"ERROR: Unable to discover Go packages"') # check-lint vars GOLINTBIN: sh: go list -f {{"{{"}}".Target{{"}}"}}" golang.org/x/lint/golint diff --git a/main_test.go b/main_test.go index 2bd292562..46ba1bcf1 100644 --- a/main_test.go +++ b/main_test.go @@ -10,7 +10,7 @@ import ( ) func TestValidSignatureKey(t *testing.T) { - testfile := filepath.Join("test", "testdata", "test.ini") + testfile := filepath.Join("tests", "testdata", "test.ini") args, err := parseIni(testfile) require.NoError(t, err) require.NotNil(t, args) diff --git a/test/common.py b/tests/common.py similarity index 100% rename from test/common.py rename to tests/common.py diff --git a/test/conftest.py b/tests/conftest.py similarity index 99% rename from test/conftest.py rename to tests/conftest.py index 3f1b185f2..a5d7f1018 100644 --- a/test/conftest.py +++ b/tests/conftest.py @@ -12,7 +12,7 @@ @pytest.fixture(scope="function") def agent(pytestconfig): - agent_cli = str(Path(pytestconfig.rootdir) / "arduino-create-agent") + agent_cli = str(Path(pytestconfig.rootdir) / "arduino-create-agent_cli") env = { # "ARDUINO_DATA_DIR": data_dir, # "ARDUINO_DOWNLOADS_DIR": downloads_dir, diff --git a/test/test_certs.py b/tests/test_certs.py similarity index 100% rename from test/test_certs.py rename to tests/test_certs.py diff --git a/test/test_info.py b/tests/test_info.py similarity index 100% rename from test/test_info.py rename to tests/test_info.py diff --git a/test/test_update.py b/tests/test_update.py similarity index 100% rename from test/test_update.py rename to tests/test_update.py diff --git a/test/test_v2.py b/tests/test_v2.py similarity index 100% rename from test/test_v2.py rename to tests/test_v2.py diff --git a/test/test_ws.py b/tests/test_ws.py similarity index 98% rename from test/test_ws.py rename to tests/test_ws.py index 8a7143e74..52c83867d 100644 --- a/test/test_ws.py +++ b/tests/test_ws.py @@ -46,7 +46,7 @@ def test_open_serial_timedraw(socketio, serial_port, baudrate, message): general_open_serial(socketio, serial_port, baudrate, message, "timedraw") -# NOTE run the following tests with a board connected to the PC and with the sketch found in test/testdata/SerialEcho.ino on it be sure to change serial_address in conftest.py +# NOTE run the following tests with a board connected to the PC and with the sketch found in tests/testdata/SerialEcho.ino on it be sure to change serial_address in conftest.py @pytest.mark.skipif( running_on_ci(), reason="VMs have no serial ports", diff --git a/test/testdata/SerialEcho/SerialEcho.ino b/tests/testdata/SerialEcho/SerialEcho.ino similarity index 100% rename from test/testdata/SerialEcho/SerialEcho.ino rename to tests/testdata/SerialEcho/SerialEcho.ino diff --git a/test/testdata/test.ini b/tests/testdata/test.ini similarity index 100% rename from test/testdata/test.ini rename to tests/testdata/test.ini From ccfa7ae2820c78357d0c7bf572ac74219607b692 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 14 Oct 2021 09:39:05 +0200 Subject: [PATCH 017/233] Add CI workflow to publish tester builds (#669) * Add CI workflow to publish tester builds On every commit to a pull request or the repository: - Build the project for all supported platforms. - Upload the builds as workflow artifacts. This makes it possible for any interested party to participate in beta testing without setting up a build system locally. * Apply suggestions from code review Co-authored-by: per1234 Co-authored-by: per1234 --- .github/workflows/publish-go-tester-task.yml | 150 +++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 .github/workflows/publish-go-tester-task.yml diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml new file mode 100644 index 000000000..0fdcc8a98 --- /dev/null +++ b/.github/workflows/publish-go-tester-task.yml @@ -0,0 +1,150 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/publish-go-tester-task.md +name: Publish Tester Build + +# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows +on: + create: + push: + paths: + - ".github/workflows/publish-go-tester-task.ya?ml" + - "go.mod" + - "go.sum" + - "Taskfile.ya?ml" + - "DistTasks.ya?ml" + - "**.go" + - "icon/**" + - "config.ini" + - "manifest.xml" + pull_request: + paths: + - ".github/workflows/publish-go-tester-task.ya?ml" + - "go.mod" + - "go.sum" + - "Taskfile.ya?ml" + - "DistTasks.ya?ml" + - "**.go" + - "icon/**" + - "config.ini" + - "manifest.xml" + workflow_dispatch: + repository_dispatch: + +env: + GO_VERSION: "1.14" + +jobs: + run-determination: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.determination.outputs.result }} + steps: + - name: Determine if the rest of the workflow should run + id: determination + run: | + RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" + # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. + if [[ \ + "${{ github.event_name }}" != "create" || \ + "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX \ + ]]; then + # Run the other jobs. + RESULT="true" + else + # There is no need to run the other jobs. + RESULT="false" + fi + + echo "::set-output name=result::$RESULT" + + #this job is heavily customized because the build is quite a bit different from other tooling team projects + build: + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + + #use the strategy instead because we still use the native build + strategy: + matrix: + os: [ubuntu-18.04, windows-2019, macos-10.15] + arch: [-amd64] + include: + - os: windows-2019 + arch: -386 + + defaults: + run: + shell: bash + + runs-on: ${{ matrix.os }} + + steps: + + - name: Set env vars + run: | + echo $(go env GOPATH)/bin >> $GITHUB_PATH + + - name: Disable EOL conversions + run: git config --global core.autocrlf false + + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install Go + uses: actions/setup-go@v2 + with: + go-version: ${{ env.GO_VERSION }} + + # dependencies used for compiling the GUI + - name: Install Dependencies (Linux) + run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev + if: runner.os == 'Linux' + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Build the Agent for linux + run: task go:build + if: runner.os == 'Linux' + + # build the agent without GUI support (no tray icon) + - name: Build the Agent-cli + run: task go:build-cli + if: runner.os == 'Linux' + + # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) + # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. + - name: Download tool to embed manifest in win binary + run: go get github.com/akavel/rsrc + if: runner.os == 'Windows' + + # building the agent for win requires a different task because of an extra flag + - name: Build the Agent for win32 + env: + GOARCH: 386 # 32bit architecture (for support) + GO386: 387 # support old instruction sets without MMX (used in the Pentium 4) (will be deprecated in GO > 1.15 https://golang.org/doc/go1.15) + run: task go:build-win + if: runner.os == 'Windows' && matrix.arch == '-386' + + - name: Build the Agent for win64 + run: task go:build-win # GOARCH=amd64 by default on the runners + if: runner.os == 'Windows' && matrix.arch == '-amd64' + + - name: Build the Agent for macos + env: + MACOSX_DEPLOYMENT_TARGET: 10.11 # minimum supported version for mac + CGO_CFLAGS: -mmacosx-version-min=10.11 + CGO_LDFLAGS: -mmacosx-version-min=10.11 + run: task go:build + if: runner.os == 'macOS' + + # config.ini is required by the executable when it's run + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} + path: | + arduino-create-agent* + config.ini + if-no-files-found: error From c9f790eebab6691b5c5b72db7e143c2c10ec02b8 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 18 Oct 2021 11:40:21 +0200 Subject: [PATCH 018/233] remove pkgs.html because of dangerous eval (#670) --- design/docs.go | 10 ---- docs/pkgs.html | 123 ------------------------------------------------- 2 files changed, 133 deletions(-) delete mode 100644 design/docs.go delete mode 100644 docs/pkgs.html diff --git a/design/docs.go b/design/docs.go deleted file mode 100644 index d86fd9065..000000000 --- a/design/docs.go +++ /dev/null @@ -1,10 +0,0 @@ -package design - -import . "goa.design/goa/dsl" - -var _ = Service("docs", func() { - HTTP(func() { - Path("/docs") - }) - Files("/pkgs", "docs/pkgs.html") -}) diff --git a/docs/pkgs.html b/docs/pkgs.html deleted file mode 100644 index c505805f5..000000000 --- a/docs/pkgs.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Interactive docs for pkgs api - - - -

pkgs api manage the indexes and tools installed on the system.

- -

Indexes

-

An index file contains the info about a core and its tools. You can see an example at https://downloads.arduino.cc/packages/package_index.json

- -

index files are saved (with an urlencoded filename) in the folder ~/.arduino-create/indexes

- -

List Indexes

-

You can list the indexes installed in the system with this simple GET

-
-
- - -

Add Indexes

-

You can add a new index with a POST request

-
-
- - -

You can now check if the new package_index was downloaded by repeating List Indexes.

- -

Remove Indexes

-

You can add a new index with a POST request

-
-
- - -

You can now check if the new package_index was removed by repeating List Indexes.

- - -

Tools

-

A tool is an executable that can be used to program a board.

- -

tools are saved in the folder ~/.arduino-create with a structure like {packager}/{name}/{version}

- -

List Available Tools

-

You can list the available tools that could be installed from an index with this simple GET. (Remember to add - indexes)

-
-
- - -

List Installed Tools

-

You can list the tools installed in the system with this simple GET

-
-
- - - -

Install a tool from an index file

-

You can install one of the available tools with a PUT request

-
-
- - - -

Remove an installed tool

-

You can remove one of the installed tools with a DELETE request

-
-
- - - - - - - \ No newline at end of file From 6d599e1d206ec8c0e73830b32df66b07efc67a89 Mon Sep 17 00:00:00 2001 From: per1234 Date: Fri, 24 Sep 2021 08:05:08 -0700 Subject: [PATCH 019/233] [skip changelog] Add CI workflow to synchronize with shared repository labels On every push that changes relevant files, and periodically, configure the repository's issue and pull request labels according to the universal, shared, and local label configuration files. --- .github/dependabot.yml | 4 + .github/label-configuration-files/labels.yml | 13 ++ .github/workflows/close-stale-issues.yml | 4 +- .github/workflows/sync-labels.yml | 139 +++++++++++++++++++ 4 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 .github/label-configuration-files/labels.yml create mode 100644 .github/workflows/sync-labels.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 09622b43d..a596de422 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -13,8 +13,12 @@ updates: - dependency-name: github.com/sirupsen/logrus versions: - 1.7.1 + labels: + - "topic: infrastructure" - package-ecosystem: github-actions directory: "/" schedule: interval: daily open-pull-requests-limit: 10 + labels: + - "topic: infrastructure" diff --git a/.github/label-configuration-files/labels.yml b/.github/label-configuration-files/labels.yml new file mode 100644 index 000000000..69c4dfa52 --- /dev/null +++ b/.github/label-configuration-files/labels.yml @@ -0,0 +1,13 @@ +# Used by the "Sync Labels" workflow +# See: https://github.com/Financial-Times/github-label-sync#label-config-file + +- name: "conclusion: stale" + color: "940404" + description: Closed due to lack of activity + notes: | + Added by the "Close stale issues" workflow. +- name: "status: stale" + color: "940404" + description: Pending closure due to lack of activity + notes: | + Added by the "Close stale issues" workflow. diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 1acef114e..3261e030d 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -9,8 +9,10 @@ jobs: steps: - uses: actions/stale@v3 with: - stale-issue-message: 'This issue has been marked as stale because it has been open 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' + stale-issue-message: 'This issue has been marked as stale because it has been open 14 days with no activity. Remove **status: stale** label or comment, otherwise it will be closed in 7 days ' + close-issue-label: 'status: stale' close-issue-message: 'This issue has been closed becasue has been stale for 7 days. If you think this issue deserves some attention feel free to reopen it' + close-issue-label: 'conclusion: stale' days-before-stale: 14 days-before-close: 7 days-before-pr-close: -1 diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml new file mode 100644 index 000000000..f4c245eaf --- /dev/null +++ b/.github/workflows/sync-labels.yml @@ -0,0 +1,139 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/sync-labels.md +name: Sync Labels + +# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows +on: + push: + paths: + - ".github/workflows/sync-labels.ya?ml" + - ".github/label-configuration-files/*.ya?ml" + pull_request: + paths: + - ".github/workflows/sync-labels.ya?ml" + - ".github/label-configuration-files/*.ya?ml" + schedule: + # Run daily at 8 AM UTC to sync with changes to shared label configurations. + - cron: "0 8 * * *" + workflow_dispatch: + repository_dispatch: + +env: + CONFIGURATIONS_FOLDER: .github/label-configuration-files + CONFIGURATIONS_ARTIFACT: label-configuration-files + +jobs: + check: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Download JSON schema for labels configuration file + id: download-schema + uses: carlosperate/download-file-action@v1.0.3 + with: + file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/arduino-tooling-gh-label-configuration-schema.json + location: ${{ runner.temp }}/label-configuration-schema + + - name: Install JSON schema validator + run: | + sudo npm install \ + --global \ + ajv-cli \ + ajv-formats + + - name: Validate local labels configuration + run: | + # See: https://github.com/ajv-validator/ajv-cli#readme + ajv validate \ + --all-errors \ + -c ajv-formats \ + -s "${{ steps.download-schema.outputs.file-path }}" \ + -d "${{ env.CONFIGURATIONS_FOLDER }}/*.{yml,yaml}" + + download: + needs: check + runs-on: ubuntu-latest + + strategy: + matrix: + filename: + # Filenames of the shared configurations to apply to the repository in addition to the local configuration. + # https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/sync-labels + - universal.yml + - tooling.yml + + steps: + - name: Download + uses: carlosperate/download-file-action@v1.0.3 + with: + file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} + + - name: Pass configuration files to next job via workflow artifact + uses: actions/upload-artifact@v2 + with: + path: | + *.yaml + *.yml + if-no-files-found: error + name: ${{ env.CONFIGURATIONS_ARTIFACT }} + + sync: + needs: download + runs-on: ubuntu-latest + + steps: + - name: Set environment variables + run: | + # See: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable + echo "MERGED_CONFIGURATION_PATH=${{ runner.temp }}/labels.yml" >> "$GITHUB_ENV" + + - name: Determine whether to dry run + id: dry-run + if: > + github.event_name == 'pull_request' || + ( + ( + github.event_name == 'push' || + github.event_name == 'workflow_dispatch' + ) && + github.ref != format('refs/heads/{0}', github.event.repository.default_branch) + ) + run: | + # Use of this flag in the github-label-sync command will cause it to only check the validity of the + # configuration. + echo "::set-output name=flag::--dry-run" + + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Download configuration files artifact + uses: actions/download-artifact@v2 + with: + name: ${{ env.CONFIGURATIONS_ARTIFACT }} + path: ${{ env.CONFIGURATIONS_FOLDER }} + + - name: Remove unneeded artifact + uses: geekyeggo/delete-artifact@v1 + with: + name: ${{ env.CONFIGURATIONS_ARTIFACT }} + + - name: Merge label configuration files + run: | + # Merge all configuration files + shopt -s extglob + cat "${{ env.CONFIGURATIONS_FOLDER }}"/*.@(yml|yaml) > "${{ env.MERGED_CONFIGURATION_PATH }}" + + - name: Install github-label-sync + run: sudo npm install --global github-label-sync + + - name: Sync labels + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # See: https://github.com/Financial-Times/github-label-sync + github-label-sync \ + --labels "${{ env.MERGED_CONFIGURATION_PATH }}" \ + ${{ steps.dry-run.outputs.flag }} \ + ${{ github.repository }} From 320f7de334005f309fd8487ec3b3c11d235ba191 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 30 Nov 2021 18:16:56 +0100 Subject: [PATCH 020/233] Pin task version in workflows running on windows (#677) --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 0fdcc8a98..18ce268a5 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -102,7 +102,7 @@ jobs: uses: arduino/setup-task@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: 3.x + version: 3.9.0 - name: Build the Agent for linux run: task go:build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c3bd31b9e..fcbbfa6cb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,7 @@ jobs: - name: Install Taskfile uses: arduino/setup-task@v1 with: - version: '3.x' + version: 3.9.0 repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Check the code is good diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 9502a756b..e4141e739 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -91,7 +91,7 @@ jobs: uses: arduino/setup-task@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: 3.x + version: 3.9.0 # build the agent without GUI support (no tray icon) for integration testing - name: Build the Agent-cli diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index c88772d36..760af6cb8 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -89,7 +89,7 @@ jobs: uses: arduino/setup-task@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: 3.x + version: 3.9.0 # https://github.com/getlantern/systray#linux - name: Install Dependencies (Linux) From d27fa24b9057f6177d1dae003d29b8239076b573 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Wed, 1 Dec 2021 12:03:28 +0100 Subject: [PATCH 021/233] [skip-changelog] fix and update Close stale issue workflow (#680) --- .github/workflows/close-stale-issues.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 3261e030d..d62341f3a 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -1,17 +1,21 @@ name: Close stale issues on: + workflow_dispatch: schedule: - cron: '30 8 * * mon' +permission: + issues: write + jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3 + - uses: actions/stale@v4 with: - stale-issue-message: 'This issue has been marked as stale because it has been open 14 days with no activity. Remove **status: stale** label or comment, otherwise it will be closed in 7 days ' - close-issue-label: 'status: stale' - close-issue-message: 'This issue has been closed becasue has been stale for 7 days. If you think this issue deserves some attention feel free to reopen it' + stale-issue-message: 'This issue has been marked as stale because it has been open for more than 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' + stale-issue-label: 'status: stale' + close-issue-message: 'This issue has been closed becasue has been stale for more than 7 days. If you think this issue deserves some attention feel free to reopen it' close-issue-label: 'conclusion: stale' days-before-stale: 14 days-before-close: 7 From 5b6c9315789efc99e13c7d7358becd111455cfc9 Mon Sep 17 00:00:00 2001 From: per1234 Date: Wed, 1 Dec 2021 03:12:13 -0800 Subject: [PATCH 022/233] Correct key name in "Close stale issues" workflow The previous incorrect key name `permission` caused the workflow run to error: ``` Invalid workflow file : .github/workflows/close-stale-issues.yml#L7 The workflow is not valid. .github/workflows/close-stale-issues.yml (Line: 7, Col: 1): Unexpected value 'permission' ``` The correct key name is `permissions`: https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#permissions --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index d62341f3a..6b83f9472 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -4,7 +4,7 @@ on: schedule: - cron: '30 8 * * mon' -permission: +permissions: issues: write jobs: From 625189f495bfa88ad2665512fd75c66821eda42a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Dec 2021 12:26:13 +0100 Subject: [PATCH 023/233] Bump github.com/gin-gonic/gin from 1.7.2 to 1.7.7 (#675) * Bump github.com/gin-gonic/gin from 1.7.2 to 1.7.7 Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.7.2 to 1.7.7. - [Release notes](https://github.com/gin-gonic/gin/releases) - [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md) - [Commits](https://github.com/gin-gonic/gin/compare/v1.7.2...v1.7.7) --- updated-dependencies: - dependency-name: github.com/gin-gonic/gin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix go.sum Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index e1f428aab..246faa3a0 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect github.com/getlantern/systray v1.1.0 - github.com/gin-gonic/gin v1.7.2 + github.com/gin-gonic/gin v1.7.7 github.com/go-ini/ini v1.62.0 github.com/golang/protobuf v1.4.3 // indirect github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect diff --git a/go.sum b/go.sum index 786092344..e2981e160 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,8 @@ github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1y github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.7.2 h1:Tg03T9yM2xa8j6I3Z3oqLaQRSmKvxPd6g/2HJ6zICFA= -github.com/gin-gonic/gin v1.7.2/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= +github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs= +github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= @@ -391,7 +391,6 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425 h1:VvQyQJN0tSuecqgcIxMWnnfG5kSmgy9KZR9sW3W5QeA= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= From 1eefbc4fa690c1ab3f8f2874728ad4f0693e235a Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 3 Dec 2021 10:58:38 +0100 Subject: [PATCH 024/233] Bump installbuilder container to the latest version (#678) --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fcbbfa6cb..47dc4a849 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -215,7 +215,7 @@ jobs: env: # vars used by installbuilder - INSTALLBUILDER_PATH: "/opt/installbuilder-21.6.0/bin/builder" + INSTALLBUILDER_PATH: "/opt/installbuilder-21.9.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" # vars passed to installbuilder to install https certs automatically CERT_INSTALL: "ask_certificates_install=CI" # win(edge),mac(safari) @@ -257,7 +257,7 @@ jobs: installer-extension: .app container: - image: floydpink/ubuntu-install-builder:21.6.0 + image: floydpink/ubuntu-install-builder:21.9.0 steps: - name: Checkout From cd193820be598449ffc0fd405f2be2a0a7b5e0c5 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 3 Dec 2021 11:59:07 +0100 Subject: [PATCH 025/233] Revert "Pin task version in workflows running on windows (#677)" (#683) This reverts commit 320f7de334005f309fd8487ec3b3c11d235ba191. --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 18ce268a5..0fdcc8a98 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -102,7 +102,7 @@ jobs: uses: arduino/setup-task@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: 3.9.0 + version: 3.x - name: Build the Agent for linux run: task go:build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 47dc4a849..ea51c4276 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,7 @@ jobs: - name: Install Taskfile uses: arduino/setup-task@v1 with: - version: 3.9.0 + version: '3.x' repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Check the code is good diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index e4141e739..9502a756b 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -91,7 +91,7 @@ jobs: uses: arduino/setup-task@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: 3.9.0 + version: 3.x # build the agent without GUI support (no tray icon) for integration testing - name: Build the Agent-cli diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 760af6cb8..c88772d36 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -89,7 +89,7 @@ jobs: uses: arduino/setup-task@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: 3.9.0 + version: 3.x # https://github.com/getlantern/systray#linux - name: Install Dependencies (Linux) From 1c27a333d268e26e19981ffa829ea5727260d44f Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 19 Dec 2021 20:34:30 -0800 Subject: [PATCH 026/233] Use major version ref of `carlosperate/download-file-action` The `carlosperate/download-file-action` action is used by GitHub Actions workflows as a convenient way to download external resources. A major version ref has been added to that repository. It will always point to the latest release of the "1" major version series. This means it is no longer necessary to do a full pin of the action version in use as before. Use of the major version ref will cause the workflow to use a stable version of the action, while also benefiting from ongoing development to the action up until such time as a new major release of an action is made. At that time we would need to evaluate whether any changes to the workflow are required by the breaking change that triggered the major release before manually updating the major ref (e.g., uses: `carlosperate/download-file-action@v2`). I think this approach strikes the right balance between stability and maintainability for these workflows. --- .github/workflows/sync-labels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index f4c245eaf..0273232ae 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -31,7 +31,7 @@ jobs: - name: Download JSON schema for labels configuration file id: download-schema - uses: carlosperate/download-file-action@v1.0.3 + uses: carlosperate/download-file-action@v1 with: file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/arduino-tooling-gh-label-configuration-schema.json location: ${{ runner.temp }}/label-configuration-schema @@ -66,7 +66,7 @@ jobs: steps: - name: Download - uses: carlosperate/download-file-action@v1.0.3 + uses: carlosperate/download-file-action@v1 with: file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} From e73b4bbad23e91eefef9a05dcbc063db1ce75e03 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 24 Jan 2022 17:10:17 +0100 Subject: [PATCH 027/233] fix the listing of the boards (#668) * add sync mechanism for discovered ports and optimize a bit the code * fix CI and make go-staticcheck happy * remove unused function * add mutex also to sh global var --- serial.go | 42 +++++++++++++++++++++++++++++++----------- seriallist.go | 13 ++----------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/serial.go b/serial.go index 0bfd77873..743cbfa1f 100755 --- a/serial.go +++ b/serial.go @@ -6,6 +6,7 @@ import ( "encoding/json" "strconv" "strings" + "sync" "time" "github.com/arduino/arduino-create-agent/upload" @@ -29,11 +30,14 @@ type serialhub struct { // Unregister requests from connections. unregister chan *serport + + mu sync.Mutex } type SpPortList struct { Ports []SpPortItem Network bool + mu sync.Mutex `json:"-"` } type SpPortItem struct { @@ -72,15 +76,19 @@ func (sh *serialhub) run() { for { select { case p := <-sh.register: + sh.mu.Lock() //log.Print("Registering a port: ", p.portConf.Name) h.broadcastSys <- []byte("{\"Cmd\":\"Open\",\"Desc\":\"Got register/open on port.\",\"Port\":\"" + p.portConf.Name + "\",\"Baud\":" + strconv.Itoa(p.portConf.Baud) + ",\"BufferType\":\"" + p.BufferType + "\"}") sh.ports[p] = true + sh.mu.Unlock() case p := <-sh.unregister: + sh.mu.Lock() //log.Print("Unregistering a port: ", p.portConf.Name) h.broadcastSys <- []byte("{\"Cmd\":\"Close\",\"Desc\":\"Got unregister/close on port.\",\"Port\":\"" + p.portConf.Name + "\",\"Baud\":" + strconv.Itoa(p.portConf.Baud) + "}") delete(sh.ports, p) close(p.sendBuffered) close(p.sendNoBuf) + sh.mu.Unlock() case wr := <-sh.write: // if user sent in the commands as one text mode line write(wr) @@ -102,13 +110,17 @@ func write(wr writeRequest) { // spList broadcasts a Json representation of the ports found func spList(network bool) { - var list SpPortList + var ls []byte + var err error if network { - list = NetworkPorts + NetworkPorts.mu.Lock() + ls, err = json.MarshalIndent(NetworkPorts, "", "\t") + NetworkPorts.mu.Unlock() } else { - list = SerialPorts + SerialPorts.mu.Lock() + ls, err = json.MarshalIndent(SerialPorts, "", "\t") + SerialPorts.mu.Unlock() } - ls, err := json.MarshalIndent(list, "", "\t") if err != nil { //log.Println(err) h.broadcastSys <- []byte("Error creating json on port list " + @@ -120,10 +132,14 @@ func spList(network bool) { // discoverLoop periodically update the list of ports found func discoverLoop() { + SerialPorts.mu.Lock() SerialPorts.Network = false SerialPorts.Ports = make([]SpPortItem, 0) + SerialPorts.mu.Unlock() + NetworkPorts.mu.Lock() NetworkPorts.Network = true NetworkPorts.Ports = make([]SpPortItem, 0) + NetworkPorts.mu.Unlock() go func() { for { @@ -184,13 +200,13 @@ func spListDual(network bool) { // to append the open/close state, baud rates, etc to make // a super clean nice list to send back to browser n := len(list) - spl := SpPortList{make([]SpPortItem, n, n), network} + spl := make([]SpPortItem, n) ctr := 0 for _, item := range list { - spl.Ports[ctr] = SpPortItem{ + spl[ctr] = SpPortItem{ Name: item.Name, SerialNumber: item.ISerial, DeviceClass: item.DeviceClass, @@ -209,17 +225,21 @@ func spListDual(network bool) { if isFound { // we found our port - spl.Ports[ctr].IsOpen = true - spl.Ports[ctr].Baud = myport.portConf.Baud - spl.Ports[ctr].BufferAlgorithm = myport.BufferType + spl[ctr].IsOpen = true + spl[ctr].Baud = myport.portConf.Baud + spl[ctr].BufferAlgorithm = myport.BufferType } ctr++ } if network { - NetworkPorts = spl + NetworkPorts.mu.Lock() + NetworkPorts.Ports = spl + NetworkPorts.mu.Unlock() } else { - SerialPorts = spl + SerialPorts.mu.Lock() + SerialPorts.Ports = spl + SerialPorts.mu.Unlock() } } diff --git a/seriallist.go b/seriallist.go index 4e26f4dee..fc02295dc 100755 --- a/seriallist.go +++ b/seriallist.go @@ -71,6 +71,8 @@ func GetList(network bool) ([]OsSerialPort, error) { func findPortByName(portname string) (*serport, bool) { portnamel := strings.ToLower(portname) + sh.mu.Lock() + defer sh.mu.Unlock() for port := range sh.ports { if strings.ToLower(port.portConf.Name) == portnamel { // we found our port @@ -80,14 +82,3 @@ func findPortByName(portname string) (*serport, bool) { } return nil, false } - -func findPortByNameRerun(portname string, network bool) (OsSerialPort, bool) { - portnamel := strings.ToLower(portname) - list, _ := GetList(network) - for _, item := range list { - if strings.ToLower(item.Name) == portnamel { - return item, true - } - } - return OsSerialPort{}, false -} From 4946a1aee9b1e7926a9ee5ef145c4522ec5067ec Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Wed, 16 Feb 2022 11:32:32 +0100 Subject: [PATCH 028/233] Update README.md with info regarding M1 support (#692) * Update README.md * Update README.md Co-authored-by: per1234 Co-authored-by: per1234 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3fa8dd07d..b842d8308 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ The Arduino Create Agent is a single binary that will sit on the traybar and wor Get the [latest version](https://github.com/arduino/arduino-create-agent/releases) of the Agent for all supported platforms or complete the [Getting Started](https://create.arduino.cc/getting-started/plugin/welcome). ## Apple M1 support -At the moment the new Apple Silicon Macs released in November 2020, like the new [MacBook Pro 13"](https://www.apple.com/macbook-pro-13/), [MacBook Air](https://www.apple.com/macbook-air/) and [Mac mini](https://www.apple.com/mac-mini/) models with the [Apple M1](https://www.apple.com/mac/m1/) chip are currently NOT supported by the Create Agent. +At the moment the new Apple Silicon Macs released in November 2020, like the [MacBook Pro 13"](https://www.apple.com/macbook-pro-13/), [MacBook Air](https://www.apple.com/macbook-air/) and [Mac mini](https://www.apple.com/mac-mini/) models with the [Apple M1](https://www.apple.com/mac/m1/) chip do not have native builds. But the Arduino Agent performs well in [Rosetta 2 mode](https://support.apple.com/en-us/HT211861). ## Documentation The documentation has been moved to the [wiki](https://github.com/arduino/arduino-create-agent/wiki) page. There you can find: From 75b42b9e40b6465ae9954719da553c8ad2bcefe0 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Wed, 23 Feb 2022 11:56:53 +0100 Subject: [PATCH 029/233] fix `go vet` failing, followup of #668 (#693) --- serial.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serial.go b/serial.go index 743cbfa1f..59b80e8cf 100755 --- a/serial.go +++ b/serial.go @@ -114,11 +114,11 @@ func spList(network bool) { var err error if network { NetworkPorts.mu.Lock() - ls, err = json.MarshalIndent(NetworkPorts, "", "\t") + ls, err = json.MarshalIndent(&NetworkPorts, "", "\t") NetworkPorts.mu.Unlock() } else { SerialPorts.mu.Lock() - ls, err = json.MarshalIndent(SerialPorts, "", "\t") + ls, err = json.MarshalIndent(&SerialPorts, "", "\t") SerialPorts.mu.Unlock() } if err != nil { From dbfbb1b1a792729ff0821164e0f8a1c57c275214 Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 23 Feb 2022 12:36:52 +0100 Subject: [PATCH 030/233] fix (again) `go vet` failing, followup of #668 and #693 --- serial.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/serial.go b/serial.go index 59b80e8cf..2c8d824a1 100755 --- a/serial.go +++ b/serial.go @@ -37,7 +37,7 @@ type serialhub struct { type SpPortList struct { Ports []SpPortItem Network bool - mu sync.Mutex `json:"-"` + Mu sync.Mutex `json:"-"` } type SpPortItem struct { @@ -113,13 +113,13 @@ func spList(network bool) { var ls []byte var err error if network { - NetworkPorts.mu.Lock() + NetworkPorts.Mu.Lock() ls, err = json.MarshalIndent(&NetworkPorts, "", "\t") - NetworkPorts.mu.Unlock() + NetworkPorts.Mu.Unlock() } else { - SerialPorts.mu.Lock() + SerialPorts.Mu.Lock() ls, err = json.MarshalIndent(&SerialPorts, "", "\t") - SerialPorts.mu.Unlock() + SerialPorts.Mu.Unlock() } if err != nil { //log.Println(err) @@ -132,14 +132,14 @@ func spList(network bool) { // discoverLoop periodically update the list of ports found func discoverLoop() { - SerialPorts.mu.Lock() + SerialPorts.Mu.Lock() SerialPorts.Network = false SerialPorts.Ports = make([]SpPortItem, 0) - SerialPorts.mu.Unlock() - NetworkPorts.mu.Lock() + SerialPorts.Mu.Unlock() + NetworkPorts.Mu.Lock() NetworkPorts.Network = true NetworkPorts.Ports = make([]SpPortItem, 0) - NetworkPorts.mu.Unlock() + NetworkPorts.Mu.Unlock() go func() { for { @@ -233,13 +233,13 @@ func spListDual(network bool) { } if network { - NetworkPorts.mu.Lock() + NetworkPorts.Mu.Lock() NetworkPorts.Ports = spl - NetworkPorts.mu.Unlock() + NetworkPorts.Mu.Unlock() } else { - SerialPorts.mu.Lock() + SerialPorts.Mu.Lock() SerialPorts.Ports = spl - SerialPorts.mu.Unlock() + SerialPorts.Mu.Unlock() } } From c3abaacda26792ea0cee35844848d329f2d00c7d Mon Sep 17 00:00:00 2001 From: per1234 Date: Thu, 31 Mar 2022 01:18:59 -0700 Subject: [PATCH 031/233] Remove `notes` field from label configuration file At the time the reference configuration file was developed, it was in JSON, which does not support comments. I found the need to add some internal explanatory commentary to some of the labels, so I added an arbitrary `notes` key as a container for this information, and our JSON schema was also configured to accept this field. I later decided to convert the files to YAML, since that is the language used by the majority of the asset configuration files. At this point it became possible to use comments, but the `notes` field was already in place so it seemed pointless to change it. Validation of the configuration file was added to the "GitHub Label Sync" tool in the recent 2.1.0 release. Before 2.1.0, the tool ignored any additional properties in the label configuration objects. It now errors if there are any unexpected properties. This `notes` field now causes the configuration files that contain it to be considered invalid by the tool, and by our custom JSON schema: ``` .github/label-configuration-files/labels.yml invalid [ { instancePath: '/0', schemaPath: '#/items/additionalProperties', keyword: 'additionalProperties', params: { additionalProperty: 'notes' }, message: 'must NOT have additional properties' }, { instancePath: '/1', schemaPath: '#/items/additionalProperties', keyword: 'additionalProperties', params: { additionalProperty: 'notes' }, message: 'must NOT have additional properties' } ] ``` So the `notes` field is hereby removed, with the contents moved to comments. --- .github/label-configuration-files/labels.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/label-configuration-files/labels.yml b/.github/label-configuration-files/labels.yml index 69c4dfa52..2942afd63 100644 --- a/.github/label-configuration-files/labels.yml +++ b/.github/label-configuration-files/labels.yml @@ -1,13 +1,11 @@ # Used by the "Sync Labels" workflow # See: https://github.com/Financial-Times/github-label-sync#label-config-file +# Added by the "Close stale issues" workflow. - name: "conclusion: stale" color: "940404" description: Closed due to lack of activity - notes: | - Added by the "Close stale issues" workflow. +# Added by the "Close stale issues" workflow. - name: "status: stale" color: "940404" description: Pending closure due to lack of activity - notes: | - Added by the "Close stale issues" workflow. From 03c5d341214ae769cfa45286443ee04e378e906c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:42:34 +0200 Subject: [PATCH 032/233] Bump actions/stale from 4 to 5 (#705) Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 6b83f9472..1c81c5055 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v4 + - uses: actions/stale@v5 with: stale-issue-message: 'This issue has been marked as stale because it has been open for more than 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' stale-issue-label: 'status: stale' From 44850159cec48bf3cf04521183fe6398d0451382 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:43:27 +0200 Subject: [PATCH 033/233] Bump actions/download-artifact from 2 to 3 (#704) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 8 ++++---- .github/workflows/sync-labels.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea51c4276..456c26692 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -157,7 +157,7 @@ jobs: steps: - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} path: arduino-create-agent @@ -267,7 +267,7 @@ jobs: token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} path: ${{ matrix.executable-path }} # path expected by installbuilder @@ -362,7 +362,7 @@ jobs: runs-on: macos-10.15 steps: - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: ArduinoCreateAgent-osx${{ matrix.arch }} path: ArduinoCreateAgent-osx @@ -430,7 +430,7 @@ jobs: fetch-depth: 0 # fetch all history for the create changelog step to work properly - name: Download artifact - uses: actions/download-artifact@v2 # download all the artifacts + uses: actions/download-artifact@v3 # download all the artifacts - name: Identify Prerelease # This is a workaround while waiting for create-release action to implement auto pre-release based on tag diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 0273232ae..c1ca6ca8c 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -109,7 +109,7 @@ jobs: uses: actions/checkout@v2 - name: Download configuration files artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: ${{ env.CONFIGURATIONS_ARTIFACT }} path: ${{ env.CONFIGURATIONS_FOLDER }} From 45f1c4b3dbae52798a1d64484dc2fb4009dbb285 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:45:10 +0200 Subject: [PATCH 034/233] Bump codecov/codecov-action from 2 to 3 (#701) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2...v3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test-go-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index c88772d36..711e7b195 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -103,7 +103,7 @@ jobs: - name: Send unit tests coverage to Codecov if: runner.os == 'Linux' - uses: codecov/codecov-action@v2 + uses: codecov/codecov-action@v3 with: file: ${{ matrix.module.path }}coverage_unit.txt flags: ${{ matrix.module.codecov-flags }} From 041f18d74448f574971e9f3423fb552b9f856c53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 09:47:34 +0200 Subject: [PATCH 035/233] Bump actions/upload-artifact from 2 to 3 (#703) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 8 ++++---- .github/workflows/sync-labels.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 0fdcc8a98..5e35112c9 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -141,7 +141,7 @@ jobs: # config.ini is required by the executable when it's run - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} path: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 456c26692..2946877b5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -137,7 +137,7 @@ jobs: # config.ini is required by the executable when it's run - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} path: | @@ -200,7 +200,7 @@ jobs: # This step will overwrite the non signed mac artifact (arduino-create-agent-${{ env.RUNS_ON }}) - name: Upload artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} path: | @@ -345,7 +345,7 @@ jobs: if: matrix.os == 'ubuntu-18.04' - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ArduinoCreateAgent-${{ matrix.install-builder-name }}${{ matrix.arch }} path: ArduinoCreateAgent* @@ -413,7 +413,7 @@ jobs: run: tar -cvf ArduinoCreateAgent-${GITHUB_REF##*/}-osx${{ matrix.arch }}-installer-${{ matrix.browser }}.tar ArduinoCreateAgent-${GITHUB_REF##*/}-osx${{ matrix.arch }}-installer-${{ matrix.browser }}.dmg - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ArduinoCreateAgent-osx${{ matrix.arch }} path: ArduinoCreateAgent*.tar diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index c1ca6ca8c..b9be5ab26 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -71,7 +71,7 @@ jobs: file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} - name: Pass configuration files to next job via workflow artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: path: | *.yaml From be179049c439b707ad2f687583e5e8f31eef08bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 10:53:36 +0200 Subject: [PATCH 036/233] Bump actions/setup-go from 2 to 3 (#706) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 3. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 5e35112c9..5fe33e915 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -89,7 +89,7 @@ jobs: uses: actions/checkout@v2 - name: Install Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2946877b5..bbfcda368 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,7 +58,7 @@ jobs: uses: actions/checkout@v2 - name: Install Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: "1.14" diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 9502a756b..b7b75d141 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -75,7 +75,7 @@ jobs: uses: actions/checkout@v2 - name: Install Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 711e7b195..ef9aa9227 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -81,7 +81,7 @@ jobs: uses: actions/checkout@v2 - name: Install Go - uses: actions/setup-go@v2 + uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} From 7c9d2c65282eb940f849d82da9634d0ac33ca3bd Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 11 Apr 2022 11:15:59 +0200 Subject: [PATCH 037/233] fix tests failing: (#707) - https://github.com/python-poetry/poetry/discussions/4830 - https://github.com/pytest-dev/pytest/issues/8539 --- poetry.lock | 21 +++++---------------- pyproject.toml | 1 - 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1261fb68e..8d932e078 100644 --- a/poetry.lock +++ b/poetry.lock @@ -87,14 +87,6 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] pyparsing = ">=2.0.2" -[[package]] -name = "pathlib" -version = "1.0.1" -description = "Object-oriented filesystem paths" -category = "main" -optional = false -python-versions = "*" - [[package]] name = "pluggy" version = "0.13.1" @@ -135,7 +127,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "pytest" -version = "6.2.2" +version = "6.2.5" description = "pytest: simple powerful testing with Python" category = "main" optional = false @@ -147,7 +139,7 @@ attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<1.0.0a1" +pluggy = ">=0.12,<2.0" py = ">=1.8.2" toml = "*" @@ -235,7 +227,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "168545733833f6a77146c9976e6ead33d1d85eefa70685180b7c7843671b8db0" +content-hash = "d0635b74687a82bc83a3454d4ebc35c19a80d49cc28a6c632b47a54596ab31a3" [metadata.files] asyncio = [ @@ -281,9 +273,6 @@ packaging = [ {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, ] -pathlib = [ - {file = "pathlib-1.0.1.tar.gz", hash = "sha256:6940718dfc3eff4258203ad5021090933e5c04707d5ca8cc9e73c94a7894ea9f"}, -] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, @@ -327,8 +316,8 @@ pyparsing = [ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, ] pytest = [ - {file = "pytest-6.2.2-py3-none-any.whl", hash = "sha256:b574b57423e818210672e07ca1fa90aaf194a4f63f3ab909a2c67ebb22913839"}, - {file = "pytest-6.2.2.tar.gz", hash = "sha256:9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9"}, + {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, + {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, ] python-engineio = [ {file = "python-engineio-3.14.2.tar.gz", hash = "sha256:eab4553f2804c1ce97054c8b22cf0d5a9ab23128075248b97e1a5b2f29553085"}, diff --git a/pyproject.toml b/pyproject.toml index ca7672636..9e087f2fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,6 @@ psutil = "^5.8.0" pytest = "^6.2.2" requests = "^2.25.1" invoke = "^1.5.0" -pathlib = "^1.0.1" asyncio = "^3.4.3" python-socketio = "^4" From 911b67611b01ec8b5af439dcf2a3187ee546b5c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 12:10:54 +0200 Subject: [PATCH 038/233] Bump actions/setup-python from 2 to 3.1.1 (#702) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.1.1. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test-go-integration-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index b7b75d141..e4c4941c7 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -80,7 +80,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: python-version: ${{ env.PYTHON_VERSION }} From 36ec8f189b3101ad85ba97601ebaf817943218ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 15:20:49 +0200 Subject: [PATCH 039/233] Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#698) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 246faa3a0..8f5330aaa 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/stretchr/testify v1.7.0 + github.com/stretchr/testify v1.7.1 github.com/ugorji/go v1.2.3 // indirect github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect diff --git a/go.sum b/go.sum index e2981e160..5d4e52a50 100644 --- a/go.sum +++ b/go.sum @@ -286,8 +286,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -335,7 +335,6 @@ golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= From 1ae558490b7982e73dd9695fc381fb869067ab8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 15:22:15 +0200 Subject: [PATCH 040/233] Bump actions/checkout from 2 to 3 (#696) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 6 +++--- .github/workflows/sync-labels.yml | 4 ++-- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 5fe33e915..7272e2c10 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -86,7 +86,7 @@ jobs: run: git config --global core.autocrlf false - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bbfcda368..210e2623b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,7 @@ jobs: run: git config --global core.autocrlf false - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v3 @@ -261,7 +261,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: 'bcmi-labs/arduino-create-agent-installer' # the repo which contains install.xml token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} @@ -425,7 +425,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 0 # fetch all history for the create changelog step to work properly diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index b9be5ab26..9ce51aa09 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Download JSON schema for labels configuration file id: download-schema @@ -106,7 +106,7 @@ jobs: echo "::set-output name=flag::--dry-run" - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Download configuration files artifact uses: actions/download-artifact@v3 diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index e4c4941c7..15210d6a9 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -72,7 +72,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v3 diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index ef9aa9227..eec30beaa 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -78,7 +78,7 @@ jobs: run: git config --global core.autocrlf false - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v3 From 9fc3c4da4228a6149525432492f6a26965b414fe Mon Sep 17 00:00:00 2001 From: per1234 Date: Tue, 30 Nov 2021 04:23:49 -0800 Subject: [PATCH 041/233] Use appropriate file extension for license The file is not written in Markdown, so `.md` is not an appropriate file extension. --- LICENSE.md => LICENSE.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LICENSE.md => LICENSE.txt (100%) diff --git a/LICENSE.md b/LICENSE.txt similarity index 100% rename from LICENSE.md rename to LICENSE.txt From 5327ff567c13d47027c399d3131724909a26d27b Mon Sep 17 00:00:00 2001 From: per1234 Date: Tue, 30 Nov 2021 04:44:37 -0800 Subject: [PATCH 042/233] Relicense project as AGPL-3.0-or-later This changes the licensing of Arduino Create Agent from GNU General Public License v2.0 to GNU Affero General Public License v3.0. The "or any later version" clause is provided (SPDX license identifier AGPL-3.0-or-later). I did my best to assess the intellectual property of this codebase and make sure all contributors and copyright owners granted us permission to relicense their code. For any inquiry, report or claim please contact us at license@arduino.cc. --- LICENSE.txt | 916 +++++++++++++++++++---------- README.md | 2 +- bufferflow.go | 15 + bufferflow_default.go | 15 + bufferflow_timed.go | 15 + bufferflow_timedraw.go | 15 + conn.go | 15 + design/design.go | 15 + design/pkgs.go | 15 + hub.go | 15 + info.go | 15 + killbrowser.go | 15 + killbrowser/killbrowser_darwin.go | 15 + killbrowser/killbrowser_linux.go | 15 + killbrowser/killbrowser_windows.go | 15 + main.go | 15 + main_test.go | 15 + redirect_stderr_unix.go | 15 + serial.go | 15 + seriallist.go | 15 + serialport.go | 15 + systray/systray.go | 15 + systray/systray_fake.go | 15 + systray/systray_real.go | 15 + tests/conftest.py | 15 + tests/test_certs.py | 15 + tests/test_info.py | 15 + tests/test_update.py | 15 + tests/test_v2.py | 15 + tests/test_ws.py | 15 + tools/download.go | 15 + tools/download_test.go | 15 + tools/hidefile_darwin.go | 15 + tools/hidefile_linux.go | 15 + tools/hidefile_windows.go | 15 + tools/tools.go | 15 + updater/updater.go | 15 + upload/doc.go | 15 + upload/upload.go | 15 + upload/upload_test.go | 15 + upload/utils.go | 15 + upload/utils_test.go | 15 + utilities/utilities.go | 15 + utilities/utilities_darwin.go | 15 + utilities/utilities_linux.go | 15 + utilities/utilities_windows.go | 15 + v2/http.go | 15 + v2/log.go | 15 + v2/pkgs/indexes.go | 15 + v2/pkgs/indexes_test.go | 15 + v2/pkgs/pkgs.go | 15 + v2/pkgs/tools.go | 15 + v2/pkgs/tools_test.go | 15 + 53 files changed, 1385 insertions(+), 298 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 23cb79033..0ad25db4b 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,281 +1,620 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. The precise terms and conditions for copying, distribution and modification follow. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of this License. - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. END OF TERMS AND CONDITIONS @@ -287,53 +626,36 @@ free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least +state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - {description} - Copyright (C) {year} {fullname} + + Copyright (C) - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Affero General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - {signature of Ty Coon}, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md index b842d8308..d5d3783ad 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) +[![License: AGPL v3.0](https://img.shields.io/badge/License-AGPL%20v3.0-blue)](https://www.gnu.org/licenses/agpl-3.0.html) [![Test Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml) [![Codecov](https://codecov.io/gh/arduino/arduino-create-agent/branch/main/graph/badge.svg)](https://codecov.io/gh/arduino/arduino-create-agent) [![Test Integration status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml) diff --git a/bufferflow.go b/bufferflow.go index 07d34698b..840196104 100644 --- a/bufferflow.go +++ b/bufferflow.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main type Bufferflow interface { diff --git a/bufferflow_default.go b/bufferflow_default.go index 2d6d6d281..db8f3e083 100644 --- a/bufferflow_default.go +++ b/bufferflow_default.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/bufferflow_timed.go b/bufferflow_timed.go index b89427f37..22a7e7f9c 100644 --- a/bufferflow_timed.go +++ b/bufferflow_timed.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/bufferflow_timedraw.go b/bufferflow_timedraw.go index ab238bfe8..ee0f6e308 100644 --- a/bufferflow_timedraw.go +++ b/bufferflow_timedraw.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/conn.go b/conn.go index 87d11e841..aa8e63d6d 100644 --- a/conn.go +++ b/conn.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Supports Windows, Linux, Mac, and Raspberry Pi package main diff --git a/design/design.go b/design/design.go index d65793916..f2c07ecf5 100644 --- a/design/design.go +++ b/design/design.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package design import . "goa.design/goa/dsl" diff --git a/design/pkgs.go b/design/pkgs.go index 2e566fdbe..081af2ec5 100644 --- a/design/pkgs.go +++ b/design/pkgs.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package design import . "goa.design/goa/dsl" diff --git a/hub.go b/hub.go index c141a6cd8..75642391d 100755 --- a/hub.go +++ b/hub.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/info.go b/info.go index e7bad1b7e..fd8596525 100644 --- a/info.go +++ b/info.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/killbrowser.go b/killbrowser.go index e46b6f5cb..a3a1dc6ee 100644 --- a/killbrowser.go +++ b/killbrowser.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/killbrowser/killbrowser_darwin.go b/killbrowser/killbrowser_darwin.go index 4b36295b0..28ca5e321 100644 --- a/killbrowser/killbrowser_darwin.go +++ b/killbrowser/killbrowser_darwin.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package browser func Find(process string) ([]byte, error) { diff --git a/killbrowser/killbrowser_linux.go b/killbrowser/killbrowser_linux.go index badb596bd..393a5e979 100644 --- a/killbrowser/killbrowser_linux.go +++ b/killbrowser/killbrowser_linux.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package browser import ( diff --git a/killbrowser/killbrowser_windows.go b/killbrowser/killbrowser_windows.go index f2d238453..89b45ce38 100644 --- a/killbrowser/killbrowser_windows.go +++ b/killbrowser/killbrowser_windows.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package browser import "os/exec" diff --git a/main.go b/main.go index db0ab47d2..83346846d 100755 --- a/main.go +++ b/main.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Version 1.82 // Supports Windows, Linux, Mac, and Raspberry Pi, Beagle Bone Black diff --git a/main_test.go b/main_test.go index 46ba1bcf1..0f84ff42a 100644 --- a/main_test.go +++ b/main_test.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/redirect_stderr_unix.go b/redirect_stderr_unix.go index e3a5ff819..fead4e3ea 100644 --- a/redirect_stderr_unix.go +++ b/redirect_stderr_unix.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Log the panic under unix to the log file // +build !windows diff --git a/serial.go b/serial.go index 2c8d824a1..a7504f9e4 100755 --- a/serial.go +++ b/serial.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Supports Windows, Linux, Mac, BeagleBone Black, and Raspberry Pi package main diff --git a/seriallist.go b/seriallist.go index fc02295dc..04c09c36b 100755 --- a/seriallist.go +++ b/seriallist.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Supports Windows, Linux, Mac, and Raspberry Pi package main diff --git a/serialport.go b/serialport.go index b427e1d2e..2ab8e7a90 100755 --- a/serialport.go +++ b/serialport.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package main import ( diff --git a/systray/systray.go b/systray/systray.go index 7b3f9f5db..7b6b0b99a 100644 --- a/systray/systray.go +++ b/systray/systray.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package systray import ( diff --git a/systray/systray_fake.go b/systray/systray_fake.go index 59a85b490..d2bb6002c 100644 --- a/systray/systray_fake.go +++ b/systray/systray_fake.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // +build cli // Systray_fake gets compiled when the tag 'cli' is present. This is useful to build an agent without trayicon functionalities diff --git a/systray/systray_real.go b/systray/systray_real.go index de8a50cc1..5ea8fe986 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // +build !cli // Systray_real gets compiled when the tag 'cli' is missing. This is the default case diff --git a/tests/conftest.py b/tests/conftest.py index a5d7f1018..b39bbeb47 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,18 @@ +# Copyright 2022 Arduino SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import os import platform import signal diff --git a/tests/test_certs.py b/tests/test_certs.py index 513208da3..aec25b491 100644 --- a/tests/test_certs.py +++ b/tests/test_certs.py @@ -1,3 +1,18 @@ +# Copyright 2022 Arduino SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import requests diff --git a/tests/test_info.py b/tests/test_info.py index 7e79b7a07..6982ca352 100644 --- a/tests/test_info.py +++ b/tests/test_info.py @@ -1,3 +1,18 @@ +# Copyright 2022 Arduino SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import re import requests diff --git a/tests/test_update.py b/tests/test_update.py index 481cb655e..6655286d6 100644 --- a/tests/test_update.py +++ b/tests/test_update.py @@ -1,3 +1,18 @@ +# Copyright 2022 Arduino SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + # import json import psutil import requests diff --git a/tests/test_v2.py b/tests/test_v2.py index 9815571cb..9a3778027 100644 --- a/tests/test_v2.py +++ b/tests/test_v2.py @@ -1,3 +1,18 @@ +# Copyright 2022 Arduino SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import requests diff --git a/tests/test_ws.py b/tests/test_ws.py index 52c83867d..109f899be 100644 --- a/tests/test_ws.py +++ b/tests/test_ws.py @@ -1,3 +1,18 @@ +# Copyright 2022 Arduino SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import time import json import base64 diff --git a/tools/download.go b/tools/download.go index 6c9ced87b..48cf37b79 100644 --- a/tools/download.go +++ b/tools/download.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package tools import ( diff --git a/tools/download_test.go b/tools/download_test.go index d13ef9bb7..320590eae 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package tools import ( diff --git a/tools/hidefile_darwin.go b/tools/hidefile_darwin.go index 8b031dd00..a0fb6df90 100644 --- a/tools/hidefile_darwin.go +++ b/tools/hidefile_darwin.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package tools import ( diff --git a/tools/hidefile_linux.go b/tools/hidefile_linux.go index 8b031dd00..a0fb6df90 100644 --- a/tools/hidefile_linux.go +++ b/tools/hidefile_linux.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package tools import ( diff --git a/tools/hidefile_windows.go b/tools/hidefile_windows.go index 657de9ae8..e5c76a1f7 100644 --- a/tools/hidefile_windows.go +++ b/tools/hidefile_windows.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package tools import ( diff --git a/tools/tools.go b/tools/tools.go index 53892b22a..df56a10c6 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package tools import ( diff --git a/updater/updater.go b/updater/updater.go index 0d339bf59..ff42f4bfd 100644 --- a/updater/updater.go +++ b/updater/updater.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package updater import ( diff --git a/upload/doc.go b/upload/doc.go index db6963d28..9358ac84f 100644 --- a/upload/doc.go +++ b/upload/doc.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Package upload allows to upload sketches into a board connected to the computer // It can do it via serial port or via network // diff --git a/upload/upload.go b/upload/upload.go index ffc2631b6..3cc4fe990 100644 --- a/upload/upload.go +++ b/upload/upload.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package upload import ( diff --git a/upload/upload_test.go b/upload/upload_test.go index 3289e2ca4..ff38fe025 100644 --- a/upload/upload_test.go +++ b/upload/upload_test.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package upload_test import ( diff --git a/upload/utils.go b/upload/utils.go index 910a37324..984a951d8 100644 --- a/upload/utils.go +++ b/upload/utils.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package upload // Logger is an interface implemented by most loggers (like logrus) diff --git a/upload/utils_test.go b/upload/utils_test.go index 335ab498f..c92d0a151 100644 --- a/upload/utils_test.go +++ b/upload/utils_test.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package upload import "testing" diff --git a/utilities/utilities.go b/utilities/utilities.go index 617d4fafa..95bc008a8 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package utilities import ( diff --git a/utilities/utilities_darwin.go b/utilities/utilities_darwin.go index e78badbed..ab30cd777 100644 --- a/utilities/utilities_darwin.go +++ b/utilities/utilities_darwin.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package utilities import "os/exec" diff --git a/utilities/utilities_linux.go b/utilities/utilities_linux.go index e78badbed..ab30cd777 100644 --- a/utilities/utilities_linux.go +++ b/utilities/utilities_linux.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package utilities import "os/exec" diff --git a/utilities/utilities_windows.go b/utilities/utilities_windows.go index 9b25828ca..716b00f20 100644 --- a/utilities/utilities_windows.go +++ b/utilities/utilities_windows.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package utilities import ( diff --git a/v2/http.go b/v2/http.go index 535faf72e..89cb7201b 100644 --- a/v2/http.go +++ b/v2/http.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package v2 import ( diff --git a/v2/log.go b/v2/log.go index 4f22b20e0..dc6502b2c 100644 --- a/v2/log.go +++ b/v2/log.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package v2 import ( diff --git a/v2/pkgs/indexes.go b/v2/pkgs/indexes.go index 9b9f5ee54..1f482917b 100644 --- a/v2/pkgs/indexes.go +++ b/v2/pkgs/indexes.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package pkgs import ( diff --git a/v2/pkgs/indexes_test.go b/v2/pkgs/indexes_test.go index 4d3b8dd78..d75571994 100644 --- a/v2/pkgs/indexes_test.go +++ b/v2/pkgs/indexes_test.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package pkgs_test import ( diff --git a/v2/pkgs/pkgs.go b/v2/pkgs/pkgs.go index 271264bf8..997bbb207 100644 --- a/v2/pkgs/pkgs.go +++ b/v2/pkgs/pkgs.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + // Package pkgs implements the functions from // github.com/arduino-create-agent/gen/indexes // and github.com/arduino-create-agent/gen/tools. diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index ce2050436..b7624a465 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package pkgs import ( diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index 5f923a34d..81eab181a 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -1,3 +1,18 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package pkgs_test import ( From b8c5eceddff7a48ab667ccd76075e2cad669239a Mon Sep 17 00:00:00 2001 From: per1234 Date: Tue, 30 Nov 2021 04:46:29 -0800 Subject: [PATCH 043/233] Add CI workflow to check the license file Whenever one of the recognized license file names are modified in the repository, the workflow runs to check whether the license can be recognized and whether it is of the expected type. GitHub has a useful automated license detection system that determines the license type used by a repository, and surfaces that information in the repository home page, the search web interface, and the GitHub API. This license detection system requires that the license be defined by a dedicated file with one of several standardized filenames and paths. GitHub's license detection system uses the popular licensee tool, so this file also serves to define the license type for any other usages of licensee, as well as to human readers of the file. For this reason, and to ensure it remains a valid legal instrument, it's important that there be no non-standard modifications to the license file or collisions with other supported licence files. This workflow ensures that any changes which would change the license type or which license file is used by the detection are caught automatically. --- .github/workflows/check-license.yml | 96 +++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 97 insertions(+) create mode 100644 .github/workflows/check-license.yml diff --git a/.github/workflows/check-license.yml b/.github/workflows/check-license.yml new file mode 100644 index 000000000..79baf0ca3 --- /dev/null +++ b/.github/workflows/check-license.yml @@ -0,0 +1,96 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-license.md +name: Check License + +env: + EXPECTED_LICENSE_FILENAME: LICENSE.txt + # SPDX identifier: https://spdx.org/licenses/ + EXPECTED_LICENSE_TYPE: AGPL-3.0 + +# See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows +on: + create: + push: + paths: + - ".github/workflows/check-license.ya?ml" + # See: https://github.com/licensee/licensee/blob/master/docs/what-we-look-at.md#detecting-the-license-file + - "[cC][oO][pP][yY][iI][nN][gG]*" + - "[cC][oO][pP][yY][rR][iI][gG][hH][tH]*" + - "[lL][iI][cC][eE][nN][cCsS][eE]*" + - "[oO][fF][lL]*" + - "[pP][aA][tT][eE][nN][tT][sS]*" + pull_request: + paths: + - ".github/workflows/check-license.ya?ml" + - "[cC][oO][pP][yY][iI][nN][gG]*" + - "[cC][oO][pP][yY][rR][iI][gG][hH][tH]*" + - "[lL][iI][cC][eE][nN][cCsS][eE]*" + - "[oO][fF][lL]*" + - "[pP][aA][tT][eE][nN][tT][sS]*" + schedule: + # Run periodically to catch breakage caused by external changes. + - cron: "0 6 * * WED" + workflow_dispatch: + repository_dispatch: + +jobs: + run-determination: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.determination.outputs.result }} + steps: + - name: Determine if the rest of the workflow should run + id: determination + run: | + RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" + # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. + if [[ + "${{ github.event_name }}" != "create" || + "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX + ]]; then + # Run the other jobs. + RESULT="true" + else + # There is no need to run the other jobs. + RESULT="false" + fi + + echo "::set-output name=result::$RESULT" + + check-license: + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby # Install latest version + + - name: Install licensee + run: gem install licensee + + - name: Check license file + run: | + EXIT_STATUS=0 + # See: https://github.com/licensee/licensee + LICENSEE_OUTPUT="$(licensee detect --json --confidence=100)" + + DETECTED_LICENSE_FILE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].filename | tr --delete '\r')" + echo "Detected license file: $DETECTED_LICENSE_FILE" + if [ "$DETECTED_LICENSE_FILE" != "\"${EXPECTED_LICENSE_FILENAME}\"" ]; then + echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: $EXPECTED_LICENSE_FILENAME" + EXIT_STATUS=1 + fi + + DETECTED_LICENSE_TYPE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].matched_license | tr --delete '\r')" + echo "Detected license type: $DETECTED_LICENSE_TYPE" + if [ "$DETECTED_LICENSE_TYPE" != "\"${EXPECTED_LICENSE_TYPE}\"" ]; then + echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${EXPECTED_LICENSE_TYPE}\"" + EXIT_STATUS=1 + fi + + exit $EXIT_STATUS diff --git a/README.md b/README.md index d5d3783ad..c47283b2e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Test Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml) [![Codecov](https://codecov.io/gh/arduino/arduino-create-agent/branch/main/graph/badge.svg)](https://codecov.io/gh/arduino/arduino-create-agent) [![Test Integration status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml) +[![Check License status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-license.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-license.yml) arduino-create-agent ==================== From 900894a775f3b4172c290136b2a8f94cb5d0627a Mon Sep 17 00:00:00 2001 From: per1234 Date: Thu, 16 Sep 2021 05:56:33 -0700 Subject: [PATCH 044/233] Add CI workflow to check for unapproved Go dependency licenses A task and GitHub Actions workflow are provided here for checking the license types of Go project dependencies. On every push and pull request that affects relevant files, the CI workflow will check: - If the dependency licenses cache is up to date - If any of the project's dependencies have an unapproved license type. Approval can be based on: - Universally allowed license type - Individual dependency --- .../workflows/check-go-dependencies-task.yml | 143 ++++++++++++++++++ .gitignore | 3 +- .licensed.yml | 86 +++++++++++ README.md | 1 + Taskfile.yml | 24 +++ 5 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/check-go-dependencies-task.yml create mode 100644 .licensed.yml diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml new file mode 100644 index 000000000..75c8fc22b --- /dev/null +++ b/.github/workflows/check-go-dependencies-task.yml @@ -0,0 +1,143 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-go-dependencies-task.md +name: Check Go Dependencies + +env: + # See: https://github.com/actions/setup-go/tree/v3#readme + GO_VERSION: "1.14" + +# See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows +on: + create: + push: + paths: + - ".github/workflows/check-go-dependencies-task.ya?ml" + - ".licenses/**" + - ".licensed.json" + - ".licensed.ya?ml" + - "Taskfile.ya?ml" + - "**/.gitmodules" + - "**/go.mod" + - "**/go.sum" + pull_request: + paths: + - ".github/workflows/check-go-dependencies-task.ya?ml" + - ".licenses/**" + - ".licensed.json" + - ".licensed.ya?ml" + - "Taskfile.ya?ml" + - "**/.gitmodules" + - "**/go.mod" + - "**/go.sum" + schedule: + # Run periodically to catch breakage caused by external changes. + - cron: "0 8 * * WED" + workflow_dispatch: + repository_dispatch: + +jobs: + run-determination: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.determination.outputs.result }} + steps: + - name: Determine if the rest of the workflow should run + id: determination + run: | + RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" + # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. + if [[ + "${{ github.event_name }}" != "create" || + "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX + ]]; then + # Run the other jobs. + RESULT="true" + else + # There is no need to run the other jobs. + RESULT="false" + fi + + echo "::set-output name=result::$RESULT" + + check-cache: + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + env: + CACHE_PATH: .licenses/ + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install licensed + uses: jonabc/setup-licensed@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Update dependencies license metadata cache + run: task --silent general:cache-dep-licenses + + - name: Check for outdated cache + id: diff + run: | + git add . + if ! git diff --cached --color --exit-code "${{ env.CACHE_PATH }}"; then + echo + echo "::error::Dependency license metadata out of sync. See: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-go-dependencies-task.md#metadata-cache" + exit 1 + fi + + # Some might find it convenient to have CI generate the cache rather than setting up for it locally + - name: Upload cache to workflow artifact + if: failure() && steps.diff.outcome == 'failure' + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: dep-licenses-cache + path: ${{ env.CACHE_PATH }} + + check-deps: + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install licensed + uses: jonabc/setup-licensed@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Check for dependencies with unapproved licenses + run: task --silent general:check-dep-licenses diff --git a/.gitignore b/.gitignore index ea46fe4ee..97789fc52 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,8 @@ bufferflow_tinyg_old.md -arduino-create-agent* +/arduino-create-agent* +!/arduino-create-agent*/ rsrc.syso snapshot/* diff --git a/.licensed.yml b/.licensed.yml new file mode 100644 index 000000000..b8e0c8347 --- /dev/null +++ b/.licensed.yml @@ -0,0 +1,86 @@ +# See: https://github.com/github/licensed/blob/master/docs/configuration.md +sources: + go: true + +apps: + - source_path: ./ + +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies/AGPL-3.0/.licensed.yml +allowed: + # The following are based on: https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses + - gpl-1.0-or-later + - gpl-1.0+ # Deprecated ID for `gpl-1.0-or-later` + - gpl-2.0-or-later + - gpl-2.0+ # Deprecated ID for `gpl-2.0-or-later` + - gpl-3.0-only + - gpl-3.0 # Deprecated ID for `gpl-3.0-only` + - gpl-3.0-or-later + - gpl-3.0+ # Deprecated ID for `gpl-3.0-or-later` + - lgpl-2.0-or-later + - lgpl-2.0+ # Deprecated ID for `lgpl-2.0-or-later` + - lgpl-2.1-only + - lgpl-2.1 # Deprecated ID for `lgpl-2.1-only` + - lgpl-2.1-or-later + - lgpl-2.1+ # Deprecated ID for `lgpl-2.1-or-later` + - lgpl-3.0-only + - lgpl-3.0 # Deprecated ID for `lgpl-3.0-only` + - lgpl-3.0-or-later + - lgpl-3.0+ # Deprecated ID for `lgpl-3.0-or-later` + - agpl-1.0-or-later + - agpl-3.0-only + - agpl-3.0 # Deprecated ID for `agpl-3.0-only` + - agpl-3.0-or-later + - fsfap + - apache-2.0 + - artistic-2.0 + - clartistic + - sleepycat + - bsl-1.0 + - bsd-3-clause + - cecill-2.0 + - bsd-3-clause-clear + # "Cryptix General License" - no SPDX ID (https://github.com/spdx/license-list-XML/issues/456) + - ecos-2.0 + - ecl-2.0 + - efl-2.0 + - eudatagrid + - mit + - bsd-2-clause # Subsumed by `bsd-2-clause-views` + - bsd-2-clause-netbsd # Deprecated ID for `bsd-2-clause` + - bsd-2-clause-views # This is the version linked from https://www.gnu.org/licenses/license-list.html#FreeBSD + - bsd-2-clause-freebsd # Deprecated ID for `bsd-2-clause-views` + - ftl + - hpnd + - imatix + - imlib2 + - ijg + # "Informal license" - this is a general class of license + - intel + - isc + - mpl-2.0 + - ncsa + # "License of Netscape JavaScript" - no SPDX ID + - oldap-2.7 + # "License of Perl 5 and below" - possibly `Artistic-1.0-Perl` ? + - cc0-1.0 + - cc-pddc + - psf-2.0 + - ruby + - sgi-b-2.0 + - smlnj + - standardml-nj # Deprecated ID for `smlnj` + - unicode-dfs-2015 + - upl-1.0 + - unlicense + - vim + - w3c + - wtfpl + - lgpl-2.0-or-later with wxwindows-exception-3.1 + - wxwindows # Deprecated ID for `lgpl-2.0-or-later with wxwindows-exception-3.1` + - x11 + - xfree86-1.1 + - zlib + - zpl-2.0 + - zpl-2.1 + # The following are based on individual license text + - eupl-1.2 diff --git a/README.md b/README.md index c47283b2e..b2f6e816e 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![Codecov](https://codecov.io/gh/arduino/arduino-create-agent/branch/main/graph/badge.svg)](https://codecov.io/gh/arduino/arduino-create-agent) [![Test Integration status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml) [![Check License status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-license.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-license.yml) +[![Check Go Dependencies status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml) arduino-create-agent ==================== diff --git a/Taskfile.yml b/Taskfile.yml index c1f70e5ec..03211249f 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -1,6 +1,30 @@ version: '3' tasks: + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies-task/Taskfile.yml + general:cache-dep-licenses: + desc: Cache dependency license metadata + cmds: + - | + if ! which licensed &>/dev/null; then + if [[ {{OS}} == "windows" ]]; then + echo "Licensed does not have Windows support." + echo "Please use Linux/macOS or download the dependencies cache from the GitHub Actions workflow artifact." + else + echo "licensed not found or not in PATH. Please install: https://github.com/github/licensed#as-an-executable" + fi + exit 1 + fi + - licensed cache + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies-task/Taskfile.yml + general:check-dep-licenses: + desc: Check for unapproved dependency licenses + deps: + - task: general:cache-dep-licenses + cmds: + - licensed status + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/go-task/Taskfile.yml go:build: desc: Build the project, to use a specific version use `task build TAG_VERSION=x.x.x` From 28865640892cabc8baa8b3f82993f2482fffc4f8 Mon Sep 17 00:00:00 2001 From: per1234 Date: Thu, 16 Sep 2021 06:44:44 -0700 Subject: [PATCH 045/233] Make initial commit of dependency license metadata The `.licenses` folder contains a cache of license metadata for all the project's Go dependencies. This serves two purposes: - Allow the Licensed dependency license checker tool to only check licenses when a dependency is added or updated - Allow the maintainer to manually define license metadata when the licensee tool is unable to automatically detect it --- .../go/github.com/andela/gin-cors.dep.yml | 35 + .../arduino-cli/arduino/serialutils.dep.yml | 699 ++++++++++++++++++ .../go/github.com/blang/semver.dep.yml | 35 + .../github.com/codeclysm/extract/v3.dep.yml | 33 + .../go/github.com/creack/goselect.dep.yml | 35 + .../go/github.com/dimfeld/httptreemux.dep.yml | 33 + .../go/github.com/getlantern/context.dep.yml | 214 ++++++ .../go/github.com/getlantern/errors.dep.yml | 213 ++++++ .../go/github.com/getlantern/golog.dep.yml | 214 ++++++ .../go/github.com/getlantern/hex.dep.yml | 40 + .../go/github.com/getlantern/hidden.dep.yml | 214 ++++++ .../go/github.com/getlantern/ops.dep.yml | 214 ++++++ .../go/github.com/getlantern/systray.dep.yml | 214 ++++++ .../go/github.com/gin-contrib/sse.dep.yml | 32 + .../go/github.com/gin-gonic/gin.dep.yml | 267 +++++++ .../github.com/gin-gonic/gin/binding.dep.yml | 32 + .../gin-gonic/gin/internal/bytesconv.dep.yml | 32 + .../gin-gonic/gin/internal/json.dep.yml | 32 + .../github.com/gin-gonic/gin/render.dep.yml | 32 + .../go/github.com/go-ini/ini.dep.yml | 205 +++++ .../github.com/go-playground/locales.dep.yml | 34 + .../go-playground/locales/currency.dep.yml | 34 + .../universal-translator.dep.yml | 34 + .../go-playground/validator/v10.dep.yml | 37 + .../go/github.com/go-stack/stack.dep.yml | 33 + .../github.com/golang/protobuf/proto.dep.yml | 39 + .../github.com/googollee/go-engine.io.dep.yml | 36 + .../googollee/go-engine.io/message.dep.yml | 36 + .../googollee/go-engine.io/parser.dep.yml | 36 + .../googollee/go-engine.io/polling.dep.yml | 36 + .../googollee/go-engine.io/transport.dep.yml | 36 + .../googollee/go-engine.io/websocket.dep.yml | 36 + .../github.com/googollee/go-socket.io.dep.yml | 36 + .../go/github.com/gorilla/websocket.dep.yml | 43 ++ .../go/github.com/h2non/filetype.dep.yml | 37 + .../h2non/filetype/matchers.dep.yml | 37 + .../h2non/filetype/matchers/isobmff.dep.yml | 37 + .../github.com/h2non/filetype/types.dep.yml | 37 + .../go/github.com/juju/errors.dep.yml | 203 +++++ .../go/github.com/kardianos/osext.dep.yml | 38 + .../go/github.com/kr/binarydist.dep.yml | 33 + .../go/github.com/kr/fs.dep.yml | 38 + .../go/github.com/leodido/go-urn.dep.yml | 32 + .../go/github.com/mattn/go-isatty.dep.yml | 22 + .../go/github.com/mattn/go-shellwords.dep.yml | 34 + .../go/github.com/miekg/dns.dep.yml | 54 ++ .../go/github.com/oleksandr/bonjour.dep.yml | 34 + .../go/github.com/oxtoacart/bpool.dep.yml | 216 ++++++ .../go/github.com/pkg/errors.dep.yml | 36 + .../go/github.com/pkg/sftp.dep.yml | 20 + .../go/github.com/sfreiberg/simplessh.dep.yml | 33 + .../go/github.com/sirupsen/logrus.dep.yml | 33 + .../skratchdot/open-golang/open.dep.yml | 36 + .../go/github.com/ugorji/go/codec.dep.yml | 34 + .../go/github.com/xrash/smetrics.dep.yml | 33 + .../go/go.bug.st/downloader.dep.yml | 44 ++ .../go/go.bug.st/serial.dep.yml | 50 ++ .../go/go.bug.st/serial/enumerator.dep.yml | 51 ++ .../go/go.bug.st/serial/unixutils.dep.yml | 50 ++ .../go/goa.design/goa.dep.yml | 32 + .../go/goa.design/goa/http.dep.yml | 32 + .../go/goa.design/goa/http/middleware.dep.yml | 32 + .../go/golang.org/x/crypto/blowfish.dep.yml | 62 ++ .../go/golang.org/x/crypto/cast5.dep.yml | 62 ++ .../go/golang.org/x/crypto/ed25519.dep.yml | 62 ++ .../go/golang.org/x/crypto/openpgp.dep.yml | 62 ++ .../golang.org/x/crypto/openpgp/armor.dep.yml | 62 ++ .../x/crypto/openpgp/elgamal.dep.yml | 64 ++ .../x/crypto/openpgp/errors.dep.yml | 62 ++ .../x/crypto/openpgp/packet.dep.yml | 63 ++ .../golang.org/x/crypto/openpgp/s2k.dep.yml | 63 ++ .../go/golang.org/x/crypto/sha3.dep.yml | 63 ++ .../go/golang.org/x/crypto/ssh.dep.yml | 62 ++ .../go/golang.org/x/crypto/ssh/agent.dep.yml | 63 ++ .../crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 62 ++ .../go/golang.org/x/net/bpf.dep.yml | 63 ++ .../go/golang.org/x/net/internal/iana.dep.yml | 63 ++ .../golang.org/x/net/internal/socket.dep.yml | 62 ++ .../go/golang.org/x/net/ipv4.dep.yml | 63 ++ .../go/golang.org/x/net/ipv6.dep.yml | 63 ++ .../x/sys/internal/unsafeheader.dep.yml | 63 ++ .../go/golang.org/x/sys/unix.dep.yml | 62 ++ .../protobuf/encoding/prototext.dep.yml | 63 ++ .../protobuf/encoding/protowire.dep.yml | 62 ++ .../protobuf/internal/descfmt.dep.yml | 62 ++ .../protobuf/internal/descopts.dep.yml | 62 ++ .../protobuf/internal/detrand.dep.yml | 62 ++ .../protobuf/internal/encoding/defval.dep.yml | 62 ++ .../internal/encoding/messageset.dep.yml | 62 ++ .../protobuf/internal/encoding/tag.dep.yml | 63 ++ .../protobuf/internal/encoding/text.dep.yml | 62 ++ .../protobuf/internal/errors.dep.yml | 62 ++ .../protobuf/internal/fieldsort.dep.yml | 62 ++ .../protobuf/internal/filedesc.dep.yml | 62 ++ .../protobuf/internal/filetype.dep.yml | 63 ++ .../protobuf/internal/flags.dep.yml | 62 ++ .../protobuf/internal/genid.dep.yml | 63 ++ .../protobuf/internal/impl.dep.yml | 62 ++ .../protobuf/internal/mapsort.dep.yml | 62 ++ .../protobuf/internal/pragma.dep.yml | 63 ++ .../protobuf/internal/set.dep.yml | 62 ++ .../protobuf/internal/strs.dep.yml | 62 ++ .../protobuf/internal/version.dep.yml | 62 ++ .../google.golang.org/protobuf/proto.dep.yml | 62 ++ .../protobuf/reflect/protoreflect.dep.yml | 62 ++ .../protobuf/reflect/protoregistry.dep.yml | 63 ++ .../protobuf/runtime/protoiface.dep.yml | 62 ++ .../protobuf/runtime/protoimpl.dep.yml | 63 ++ .../inconshreveable/go-update.v0.dep.yml | 27 + .../go-update.v0/download.dep.yml | 26 + .../go/gopkg.in/yaml.v2.dep.yml | 263 +++++++ 111 files changed, 7885 insertions(+) create mode 100644 .licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/kr/binarydist.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/pkg/errors.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml create mode 100644 .licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml create mode 100644 .licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml create mode 100644 .licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml create mode 100644 .licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml create mode 100644 .licenses/arduino-create-agent/go/goa.design/goa.dep.yml create mode 100644 .licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml create mode 100644 .licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml create mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml create mode 100644 .licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml create mode 100644 .licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml create mode 100644 .licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml b/.licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml new file mode 100644 index 000000000..61f0068f8 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml @@ -0,0 +1,35 @@ +--- +name: github.com/andela/gin-cors +version: v0.0.0-20160928171741-e8c3436a37e2 +type: go +summary: This code implements the flow chart that can be found here. +homepage: https://pkg.go.dev/github.com/andela/gin-cors +license: mit +licenses: +- sources: LICENSE + text: |+ + The MIT License (MIT) + + Copyright (c) 2015 Jamie Stackhouse + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +- sources: README.md + text: The code is licensed under the MIT License. See LICENSE file for more details. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml new file mode 100644 index 000000000..ecece7975 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml @@ -0,0 +1,699 @@ +--- +name: github.com/arduino/arduino-cli/arduino/serialutils +version: v0.0.0-20210422154105-5aa424818026 +type: go +summary: +homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/arduino/serialutils +license: other +licenses: +- sources: arduino-cli@v0.0.0-20210422154105-5aa424818026/LICENSE.txt + text: | + This file includes licensing information for arduino-cli + + Copyright (c) 2018 ARDUINO SA (www.arduino.cc) + + The software is released under the GNU General Public License, which covers the main body + of the arduino-cli code. The terms of this license can be found at: + https://www.gnu.org/licenses/gpl-3.0.en.html + + You can be released from the requirements of the above licenses by purchasing + a commercial license. Buying such a license is mandatory if you want to modify or + otherwise use the software for commercial activities involving the Arduino + software without disclosing the source code of your own applications. To purchase + a commercial license, send an email to license@arduino.cc + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + . + + The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + . +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml new file mode 100644 index 000000000..4240df614 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml @@ -0,0 +1,35 @@ +--- +name: github.com/blang/semver +version: v3.5.1+incompatible +type: go +summary: +homepage: https://pkg.go.dev/github.com/blang/semver +license: other +licenses: +- sources: LICENSE + text: |+ + The MIT License + + Copyright (c) 2014 Benedikt Lang + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +- sources: README.md + text: See [LICENSE](LICENSE) file. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml new file mode 100644 index 000000000..a2c2101e7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/codeclysm/extract/v3 +version: v3.0.2 +type: go +summary: Package extract allows to extract archives in zip, tar.gz or tar.bz2 formats + easily. +homepage: https://pkg.go.dev/github.com/codeclysm/extract/v3 +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2016 codeclysm + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml b/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml new file mode 100644 index 000000000..2ebe18293 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml @@ -0,0 +1,35 @@ +--- +name: github.com/creack/goselect +version: v0.1.2 +type: go +summary: +homepage: https://pkg.go.dev/github.com/creack/goselect +license: mit +licenses: +- sources: LICENSE + text: |+ + The MIT License (MIT) + + Copyright (c) 2014 Guillaume J. Charmes + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +- sources: README.md + text: Released under the [MIT license](LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml b/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml new file mode 100644 index 000000000..1fe733b11 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/dimfeld/httptreemux +version: v5.0.1+incompatible +type: go +summary: This is inspired by Julien Schmidt's httprouter, in that it uses a patricia + tree, but the implementation is rather different. +homepage: https://pkg.go.dev/github.com/dimfeld/httptreemux +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014,2015 Daniel Imfeld + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml new file mode 100644 index 000000000..7aed5f690 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml @@ -0,0 +1,214 @@ +--- +name: github.com/getlantern/context +version: v0.0.0-20190109183933-c447772a6520 +type: go +summary: Package context provides a mechanism for transparently tracking contextual + state associated to the current goroutine and even across goroutines. +homepage: https://pkg.go.dev/github.com/getlantern/context +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 Brave New Software Project, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml new file mode 100644 index 000000000..c17762582 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml @@ -0,0 +1,213 @@ +--- +name: github.com/getlantern/errors +version: v0.0.0-20190325191628-abdb3e3e36f7 +type: go +summary: Package errors defines error types used across Lantern project. +homepage: https://pkg.go.dev/github.com/getlantern/errors +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Brave New Software Project, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml new file mode 100644 index 000000000..1bb2c2cb9 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml @@ -0,0 +1,214 @@ +--- +name: github.com/getlantern/golog +version: v0.0.0-20190830074920-4ef2e798c2d7 +type: go +summary: Package golog implements logging functions that log errors to stderr and + debug messages to stdout. +homepage: https://pkg.go.dev/github.com/getlantern/golog +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2014 Brave New Software Project, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml new file mode 100644 index 000000000..1e1f285f2 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml @@ -0,0 +1,40 @@ +--- +name: github.com/getlantern/hex +version: v0.0.0-20190417191902-c6586a6fe0b7 +type: go +summary: Package hex implements hexadecimal encoding and decoding. +homepage: https://pkg.go.dev/github.com/getlantern/hex +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2009 The Go Authors. + Copyright (c) 2016 Brave New Software Project, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml new file mode 100644 index 000000000..24773a4ab --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml @@ -0,0 +1,214 @@ +--- +name: github.com/getlantern/hidden +version: v0.0.0-20190325191715-f02dbb02be55 +type: go +summary: Package hidden provides the ability to "hide" binary data in a string using + a hex encoding with non-printing characters. +homepage: https://pkg.go.dev/github.com/getlantern/hidden +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016 Brave New Software Project, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml new file mode 100644 index 000000000..d58a3e316 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml @@ -0,0 +1,214 @@ +--- +name: github.com/getlantern/ops +version: v0.0.0-20190325191751-d70cb0d6f85f +type: go +summary: Package ops provides a facility for tracking the processing of operations, + including contextual metadata about the operation and their final success or failure. +homepage: https://pkg.go.dev/github.com/getlantern/ops +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2017 Brave New Software Project, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml new file mode 100644 index 000000000..f08194655 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml @@ -0,0 +1,214 @@ +--- +name: github.com/getlantern/systray +version: v1.1.0 +type: go +summary: Package systray is a cross-platform Go library to place an icon and menu + in the notification area. +homepage: https://pkg.go.dev/github.com/getlantern/systray +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2014 Brave New Software Project, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml new file mode 100644 index 000000000..4895be7a5 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gin-contrib/sse +version: v0.1.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/gin-contrib/sse +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Manuel Martínez-Almeida + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml new file mode 100644 index 000000000..357af6175 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml @@ -0,0 +1,267 @@ +--- +name: github.com/gin-gonic/gin +version: v1.7.7 +type: go +summary: Package gin implements a HTTP web framework called gin. +homepage: https://pkg.go.dev/github.com/gin-gonic/gin +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Manuel Martínez-Almeida + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: +- sources: AUTHORS.md + text: |- + List of all the awesome people working to make Gin the best Web Framework in Go. + + ## gin 1.x series authors + + **Gin Core Team:** Bo-Yi Wu (@appleboy), 田欧 (@thinkerou), Javier Provecho (@javierprovecho) + + ## gin 0.x series authors + + **Maintainers:** Manu Martinez-Almeida (@manucorporat), Javier Provecho (@javierprovecho) + + People and companies, who have contributed, in alphabetical order. + + **@858806258 (杰哥)** + - Fix typo in example + + + **@achedeuzot (Klemen Sever)** + - Fix newline debug printing + + + **@adammck (Adam Mckaig)** + - Add MIT license + + + **@AlexanderChen1989 (Alexander)** + - Typos in README + + + **@alexanderdidenko (Aleksandr Didenko)** + - Add support multipart/form-data + + + **@alexandernyquist (Alexander Nyquist)** + - Using template.Must to fix multiple return issue + - ★ Added support for OPTIONS verb + - ★ Setting response headers before calling WriteHeader + - Improved documentation for model binding + - ★ Added Content.Redirect() + - ★ Added tons of Unit tests + + + **@austinheap (Austin Heap)** + - Added travis CI integration + + + **@andredublin (Andre Dublin)** + - Fix typo in comment + + + **@bredov (Ludwig Valda Vasquez)** + - Fix html templating in debug mode + + + **@bluele (Jun Kimura)** + - Fixes code examples in README + + + **@chad-russell** + - ★ Support for serializing gin.H into XML + + + **@dickeyxxx (Jeff Dickey)** + - Typos in README + - Add example about serving static files + + + **@donileo (Adonis)** + - Add NoMethod handler + + + **@dutchcoders (DutchCoders)** + - ★ Fix security bug that allows client to spoof ip + - Fix typo. r.HTMLTemplates -> SetHTMLTemplate + + + **@el3ctro- (Joshua Loper)** + - Fix typo in example + + + **@ethankan (Ethan Kan)** + - Unsigned integers in binding + + + **(Evgeny Persienko)** + - Validate sub structures + + + **@frankbille (Frank Bille)** + - Add support for HTTP Realm Auth + + + **@fmd (Fareed Dudhia)** + - Fix typo. SetHTTPTemplate -> SetHTMLTemplate + + + **@ironiridis (Christopher Harrington)** + - Remove old reference + + + **@jammie-stackhouse (Jamie Stackhouse)** + - Add more shortcuts for router methods + + + **@jasonrhansen** + - Fix spelling and grammar errors in documentation + + + **@JasonSoft (Jason Lee)** + - Fix typo in comment + + + **@joiggama (Ignacio Galindo)** + - Add utf-8 charset header on renders + + + **@julienschmidt (Julien Schmidt)** + - gofmt the code examples + + + **@kelcecil (Kel Cecil)** + - Fix readme typo + + + **@kyledinh (Kyle Dinh)** + - Adds RunTLS() + + + **@LinusU (Linus Unnebäck)** + - Small fixes in README + + + **@loongmxbt (Saint Asky)** + - Fix typo in example + + + **@lucas-clemente (Lucas Clemente)** + - ★ work around path.Join removing trailing slashes from routes + + + **@mattn (Yasuhiro Matsumoto)** + - Improve color logger + + + **@mdigger (Dmitry Sedykh)** + - Fixes Form binding when content-type is x-www-form-urlencoded + - No repeat call c.Writer.Status() in gin.Logger + - Fixes Content-Type for json render + + + **@mirzac (Mirza Ceric)** + - Fix debug printing + + + **@mopemope (Yutaka Matsubara)** + - ★ Adds Godep support (Dependencies Manager) + - Fix variadic parameter in the flexible render API + - Fix Corrupted plain render + - Add Pluggable View Renderer Example + + + **@msemenistyi (Mykyta Semenistyi)** + - update Readme.md. Add code to String method + + + **@msoedov (Sasha Myasoedov)** + - ★ Adds tons of unit tests. + + + **@ngerakines (Nick Gerakines)** + - ★ Improves API, c.GET() doesn't panic + - Adds MustGet() method + + + **@r8k (Rajiv Kilaparti)** + - Fix Port usage in README. + + + **@rayrod2030 (Ray Rodriguez)** + - Fix typo in example + + + **@rns** + - Fix typo in example + + + **@RobAWilkinson (Robert Wilkinson)** + - Add example of forms and params + + + **@rogierlommers (Rogier Lommers)** + - Add updated static serve example + + **@rw-access (Ross Wolf)** + - Added support to mix exact and param routes + + **@se77en (Damon Zhao)** + - Improve color logging + + + **@silasb (Silas Baronda)** + - Fixing quotes in README + + + **@SkuliOskarsson (Skuli Oskarsson)** + - Fixes some texts in README II + + + **@slimmy (Jimmy Pettersson)** + - Added messages for required bindings + + + **@smira (Andrey Smirnov)** + - Add support for ignored/unexported fields in binding + + + **@superalsrk (SRK.Lyu)** + - Update httprouter godeps + + + **@tebeka (Miki Tebeka)** + - Use net/http constants instead of numeric values + + + **@techjanitor** + - Update context.go reserved IPs + + + **@yosssi (Keiji Yoshida)** + - Fix link in README + + + **@yuyabee** + - Fixed README diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml new file mode 100644 index 000000000..c9423a123 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gin-gonic/gin/binding +version: v1.7.7 +type: go +summary: +homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding +license: mit +licenses: +- sources: gin@v1.7.7/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Manuel Martínez-Almeida + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml new file mode 100644 index 000000000..7e8466570 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gin-gonic/gin/internal/bytesconv +version: v1.7.7 +type: go +summary: +homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv +license: mit +licenses: +- sources: gin@v1.7.7/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Manuel Martínez-Almeida + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml new file mode 100644 index 000000000..1ab2f6ef7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gin-gonic/gin/internal/json +version: v1.7.7 +type: go +summary: +homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json +license: mit +licenses: +- sources: gin@v1.7.7/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Manuel Martínez-Almeida + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml new file mode 100644 index 000000000..0f61d8361 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gin-gonic/gin/render +version: v1.7.7 +type: go +summary: +homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render +license: mit +licenses: +- sources: gin@v1.7.7/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Manuel Martínez-Almeida + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml new file mode 100644 index 000000000..bcdbc39c4 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml @@ -0,0 +1,205 @@ +--- +name: github.com/go-ini/ini +version: v1.62.0 +type: go +summary: Package ini provides INI file read and write functionality in Go. +homepage: https://pkg.go.dev/github.com/go-ini/ini +license: other +licenses: +- sources: LICENSE + text: | + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, and + distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by the copyright + owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all other entities + that control, are controlled by, or are under common control with that entity. + For the purposes of this definition, "control" means (i) the power, direct or + indirect, to cause the direction or management of such entity, whether by + contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity exercising + permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, including + but not limited to software source code, documentation source, and configuration + files. + + "Object" form shall mean any form resulting from mechanical transformation or + translation of a Source form, including but not limited to compiled object code, + generated documentation, and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or Object form, made + available under the License, as indicated by a copyright notice that is included + in or attached to the work (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object form, that + is based on (or derived from) the Work and for which the editorial revisions, + annotations, elaborations, or other modifications represent, as a whole, an + original work of authorship. For the purposes of this License, Derivative Works + shall not include works that remain separable from, or merely link (or bind by + name) to the interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including the original version + of the Work and any modifications or additions to that Work or Derivative Works + thereof, that is intentionally submitted to Licensor for inclusion in the Work + by the copyright owner or by an individual or Legal Entity authorized to submit + on behalf of the copyright owner. For the purposes of this definition, + "submitted" means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, and + issue tracking systems that are managed by, or on behalf of, the Licensor for + the purpose of discussing and improving the Work, but excluding communication + that is conspicuously marked or otherwise designated in writing by the copyright + owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity on behalf + of whom a Contribution has been received by Licensor and subsequently + incorporated within the Work. + + 2. Grant of Copyright License. + + Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the Work and such + Derivative Works in Source or Object form. + + 3. Grant of Patent License. + + Subject to the terms and conditions of this License, each Contributor hereby + grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable (except as stated in this section) patent license to make, have + made, use, offer to sell, sell, import, and otherwise transfer the Work, where + such license applies only to those patent claims licensable by such Contributor + that are necessarily infringed by their Contribution(s) alone or by combination + of their Contribution(s) with the Work to which such Contribution(s) was + submitted. If You institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work or a + Contribution incorporated within the Work constitutes direct or contributory + patent infringement, then any patent licenses granted to You under this License + for that Work shall terminate as of the date such litigation is filed. + + 4. Redistribution. + + You may reproduce and distribute copies of the Work or Derivative Works thereof + in any medium, with or without modifications, and in Source or Object form, + provided that You meet the following conditions: + + You must give any other recipients of the Work or Derivative Works a copy of + this License; and + You must cause any modified files to carry prominent notices stating that You + changed the files; and + You must retain, in the Source form of any Derivative Works that You distribute, + all copyright, patent, trademark, and attribution notices from the Source form + of the Work, excluding those notices that do not pertain to any part of the + Derivative Works; and + If the Work includes a "NOTICE" text file as part of its distribution, then any + Derivative Works that You distribute must include a readable copy of the + attribution notices contained within such NOTICE file, excluding those notices + that do not pertain to any part of the Derivative Works, in at least one of the + following places: within a NOTICE text file distributed as part of the + Derivative Works; within the Source form or documentation, if provided along + with the Derivative Works; or, within a display generated by the Derivative + Works, if and wherever such third-party notices normally appear. The contents of + the NOTICE file are for informational purposes only and do not modify the + License. You may add Your own attribution notices within Derivative Works that + You distribute, alongside or as an addendum to the NOTICE text from the Work, + provided that such additional attribution notices cannot be construed as + modifying the License. + You may add Your own copyright statement to Your modifications and may provide + additional or different license terms and conditions for use, reproduction, or + distribution of Your modifications, or for any such Derivative Works as a whole, + provided Your use, reproduction, and distribution of the Work otherwise complies + with the conditions stated in this License. + + 5. Submission of Contributions. + + Unless You explicitly state otherwise, any Contribution intentionally submitted + for inclusion in the Work by You to the Licensor shall be under the terms and + conditions of this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify the terms of + any separate license agreement you may have executed with Licensor regarding + such Contributions. + + 6. Trademarks. + + This License does not grant permission to use the trade names, trademarks, + service marks, or product names of the Licensor, except as required for + reasonable and customary use in describing the origin of the Work and + reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. + + Unless required by applicable law or agreed to in writing, Licensor provides the + Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, + including, without limitation, any warranties or conditions of TITLE, + NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are + solely responsible for determining the appropriateness of using or + redistributing the Work and assume any risks associated with Your exercise of + permissions under this License. + + 8. Limitation of Liability. + + In no event and under no legal theory, whether in tort (including negligence), + contract, or otherwise, unless required by applicable law (such as deliberate + and grossly negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, incidental, + or consequential damages of any character arising as a result of this License or + out of the use or inability to use the Work (including but not limited to + damages for loss of goodwill, work stoppage, computer failure or malfunction, or + any and all other commercial damages or losses), even if such Contributor has + been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. + + While redistributing the Work or Derivative Works thereof, You may choose to + offer, and charge a fee for, acceptance of support, warranty, indemnity, or + other liability obligations and/or rights consistent with this License. However, + in accepting such obligations, You may act only on Your own behalf and on Your + sole responsibility, not on behalf of any other Contributor, and only if You + agree to indemnify, defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason of your + accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work + + To apply the Apache License to your work, attach the following boilerplate + notice, with the fields enclosed by brackets "[]" replaced with your own + identifying information. (Don't include the brackets!) The text should be + enclosed in the appropriate comment syntax for the file format. We also + recommend that a file or class name and description of purpose be included on + the same "printed page" as the copyright notice for easier identification within + third-party archives. + + Copyright 2014 Unknwon + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: README.md + text: This project is under Apache v2 License. See the [LICENSE](LICENSE) file for + the full license text. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml new file mode 100644 index 000000000..0d5957af7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/go-playground/locales +version: v0.13.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/go-playground/locales +license: mit +licenses: +- sources: LICENSE + text: |- + The MIT License (MIT) + + Copyright (c) 2016 Go Playground + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: README.md + text: Distributed under MIT License, please see license file in code for more details. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml new file mode 100644 index 000000000..3ea0d02ed --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/go-playground/locales/currency +version: v0.13.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/go-playground/locales/currency +license: mit +licenses: +- sources: locales@v0.13.0/LICENSE + text: |- + The MIT License (MIT) + + Copyright (c) 2016 Go Playground + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: locales@v0.13.0/README.md + text: Distributed under MIT License, please see license file in code for more details. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml new file mode 100644 index 000000000..a9fb0f149 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/go-playground/universal-translator +version: v0.17.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/go-playground/universal-translator +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2016 Go Playground + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: README.md + text: Distributed under MIT License, please see license file in code for more details. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml new file mode 100644 index 000000000..0f43064c1 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/go-playground/validator/v10 +version: v10.4.1 +type: go +summary: Package validator implements value validations for structs and individual + fields based on tags. +homepage: https://pkg.go.dev/github.com/go-playground/validator/v10 +license: mit +licenses: +- sources: LICENSE + text: |+ + The MIT License (MIT) + + Copyright (c) 2015 Dean Karn + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +- sources: README.md + text: Distributed under MIT License, please see license file within the code for + more details. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml new file mode 100644 index 000000000..a38bdef55 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/go-stack/stack +version: v1.8.0 +type: go +summary: Package stack implements utilities to capture, manipulate, and format call + stacks. +homepage: https://pkg.go.dev/github.com/go-stack/stack +license: mit +licenses: +- sources: LICENSE.md + text: | + The MIT License (MIT) + + Copyright (c) 2014 Chris Hines + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml new file mode 100644 index 000000000..d42ea0fd7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml @@ -0,0 +1,39 @@ +--- +name: github.com/golang/protobuf/proto +version: v1.4.3 +type: go +summary: Package proto provides functionality for handling protocol buffer messages. +homepage: https://pkg.go.dev/github.com/golang/protobuf/proto +license: bsd-3-clause +licenses: +- sources: protobuf@v1.4.3/LICENSE + text: |+ + Copyright 2010 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml new file mode 100644 index 000000000..3f0b335c7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-engine.io +version: v0.0.0-20180829091931-e2f255711dcb +type: go +summary: +homepage: https://pkg.go.dev/github.com/googollee/go-engine.io +license: other +licenses: +- sources: LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml new file mode 100644 index 000000000..f550ac569 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-engine.io/message +version: v0.0.0-20180829091931-e2f255711dcb +type: go +summary: +homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/message +license: other +licenses: +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml new file mode 100644 index 000000000..00cb10b41 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-engine.io/parser +version: v0.0.0-20180829091931-e2f255711dcb +type: go +summary: +homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/parser +license: other +licenses: +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml new file mode 100644 index 000000000..23bd85dcc --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-engine.io/polling +version: v0.0.0-20180829091931-e2f255711dcb +type: go +summary: +homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/polling +license: other +licenses: +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml new file mode 100644 index 000000000..9f7f9e2a4 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-engine.io/transport +version: v0.0.0-20180829091931-e2f255711dcb +type: go +summary: +homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/transport +license: other +licenses: +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml new file mode 100644 index 000000000..fb9cecffe --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-engine.io/websocket +version: v0.0.0-20180829091931-e2f255711dcb +type: go +summary: +homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/websocket +license: other +licenses: +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml new file mode 100644 index 000000000..58540351e --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/googollee/go-socket.io +version: v0.0.0-20181101151912-c8aeb1ed9b49 +type: go +summary: go-socket.io is a server implementation of socket.io in golang. +homepage: https://pkg.go.dev/github.com/googollee/go-socket.io +license: other +licenses: +- sources: LICENSE + text: |- + Copyright (c) 2014-2014 Googol Lee + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: README.md + text: The 3-clause BSD License - see LICENSE for more details +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml b/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml new file mode 100644 index 000000000..47a7a9411 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml @@ -0,0 +1,43 @@ +--- +name: github.com/gorilla/websocket +version: v1.4.0 +type: go +summary: Package websocket implements the WebSocket protocol defined in RFC 6455. +homepage: https://pkg.go.dev/github.com/gorilla/websocket +license: bsd-2-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: +- sources: AUTHORS + text: |- + # This is the official list of Gorilla WebSocket authors for copyright + # purposes. + # + # Please keep the list sorted. + + Gary Burd + Google LLC (https://opensource.google.com/) + Joachim Bauch diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml new file mode 100644 index 000000000..014a75d60 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/h2non/filetype +version: v1.1.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/h2non/filetype +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License + + Copyright (c) Tomas Aparicio + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: MIT - Tomas Aparicio +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml new file mode 100644 index 000000000..240a31b02 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/h2non/filetype/matchers +version: v1.1.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers +license: mit +licenses: +- sources: filetype@v1.1.0/LICENSE + text: | + The MIT License + + Copyright (c) Tomas Aparicio + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +- sources: filetype@v1.1.0/README.md + text: MIT - Tomas Aparicio +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml new file mode 100644 index 000000000..a27597282 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/h2non/filetype/matchers/isobmff +version: v1.1.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers/isobmff +license: mit +licenses: +- sources: filetype@v1.1.0/LICENSE + text: | + The MIT License + + Copyright (c) Tomas Aparicio + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +- sources: filetype@v1.1.0/README.md + text: MIT - Tomas Aparicio +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml new file mode 100644 index 000000000..ea4db4f6f --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/h2non/filetype/types +version: v1.1.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/h2non/filetype/types +license: mit +licenses: +- sources: filetype@v1.1.0/LICENSE + text: | + The MIT License + + Copyright (c) Tomas Aparicio + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +- sources: filetype@v1.1.0/README.md + text: MIT - Tomas Aparicio +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml new file mode 100644 index 000000000..caf6e85c3 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml @@ -0,0 +1,203 @@ +--- +name: github.com/juju/errors +version: v0.0.0-20200330140219-3fe23663418f +type: go +summary: Package errors provides an easy way to annotate errors without losing the + original error context. +homepage: https://pkg.go.dev/github.com/juju/errors +license: other +licenses: +- sources: LICENSE + text: | + All files in this repository are licensed as follows. If you contribute + to this repository, it is assumed that you license your contribution + under the same license unless you state otherwise. + + All files Copyright (C) 2015 Canonical Ltd. unless otherwise specified in the file. + + This software is licensed under the LGPLv3, included below. + + As a special exception to the GNU Lesser General Public License version 3 + ("LGPL3"), the copyright holders of this Library give you permission to + convey to a third party a Combined Work that links statically or dynamically + to this Library without providing any Minimal Corresponding Source or + Minimal Application Code as set out in 4d or providing the installation + information set out in section 4e, provided that you comply with the other + provisions of LGPL3 and provided that you meet, for the Application the + terms and conditions of the license(s) which apply to the Application. + + Except as stated in this special exception, the provisions of LGPL3 will + continue to comply in full to this Library. If you modify this Library, you + may apply this exception to your version of this Library, but you are not + obliged to do so. If you do not wish to do so, delete this exception + statement from your version. This exception does not (and cannot) modify any + license terms which apply to the Application, with which you must still + comply. + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates + the terms and conditions of version 3 of the GNU General Public + License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser + General Public License, and the "GNU GPL" refers to version 3 of the GNU + General Public License. + + "The Library" refers to a covered work governed by this License, + other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided + by the Library, but which is not otherwise based on the Library. + Defining a subclass of a class defined by the Library is deemed a mode + of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an + Application with the Library. The particular version of the Library + with which the Combined Work was made is also called the "Linked + Version". + + The "Minimal Corresponding Source" for a Combined Work means the + Corresponding Source for the Combined Work, excluding any source code + for portions of the Combined Work that, considered in isolation, are + based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the + object code and/or source code for the Application, including any data + and utility programs needed for reproducing the Combined Work from the + Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License + without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a + facility refers to a function or data to be supplied by an Application + that uses the facility (other than as an argument passed when the + facility is invoked), then you may convey a copy of the modified + version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from + a header file that is part of the Library. You may convey such object + code under terms of your choice, provided that, if the incorporated + material is not limited to numerical parameters, data structure + layouts and accessors, or small macros, inline functions and templates + (ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, + taken together, effectively do not restrict modification of the + portions of the Library contained in the Combined Work and reverse + engineering for debugging such modifications, if you also do each of + the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the + Library side by side in a single library together with other library + facilities that are not Applications and are not covered by this + License, and convey such a combined library under terms of your + choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions + of the GNU Lesser General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the + Library as you received it specifies that a certain numbered version + of the GNU Lesser General Public License "or any later version" + applies to it, you have the option of following the terms and + conditions either of that published version or of any later version + published by the Free Software Foundation. If the Library as you + received it does not specify a version number of the GNU Lesser + General Public License, you may choose any version of the GNU Lesser + General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide + whether future versions of the GNU Lesser General Public License shall + apply, that proxy's public statement of acceptance of any version is + permanent authorization for you to choose that version for the + Library. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml b/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml new file mode 100644 index 000000000..578fc888a --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml @@ -0,0 +1,38 @@ +--- +name: github.com/kardianos/osext +version: v0.0.0-20170510131534-ae77be60afb1 +type: go +summary: Extensions to the standard "os" package. +homepage: https://pkg.go.dev/github.com/kardianos/osext +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/kr/binarydist.dep.yml b/.licenses/arduino-create-agent/go/github.com/kr/binarydist.dep.yml new file mode 100644 index 000000000..9487d6f08 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/kr/binarydist.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/kr/binarydist +version: v0.1.0 +type: go +summary: Package binarydist implements binary diff and patch as described on http://www.daemonology.net/bsdiff/. +homepage: https://pkg.go.dev/github.com/kr/binarydist +license: mit +licenses: +- sources: License + text: | + Copyright 2012 Keith Rarick + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml b/.licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml new file mode 100644 index 000000000..899e45b46 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml @@ -0,0 +1,38 @@ +--- +name: github.com/kr/fs +version: v0.1.0 +type: go +summary: Package fs provides filesystem-related functions. +homepage: https://pkg.go.dev/github.com/kr/fs +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml new file mode 100644 index 000000000..781cd36ad --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/leodido/go-urn +version: v1.2.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/leodido/go-urn +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2018 Leonardo Di Donato + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml new file mode 100644 index 000000000..de6b9c513 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml @@ -0,0 +1,22 @@ +--- +name: github.com/mattn/go-isatty +version: v0.0.12 +type: go +summary: Package isatty implements interface to isatty +homepage: https://pkg.go.dev/github.com/mattn/go-isatty +license: mit +licenses: +- sources: LICENSE + text: | + Copyright (c) Yasuhiro MATSUMOTO + + MIT License (Expat) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: MIT +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml new file mode 100644 index 000000000..afff99822 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/mattn/go-shellwords +version: v1.0.12 +type: go +summary: +homepage: https://pkg.go.dev/github.com/mattn/go-shellwords +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2017 Yasuhiro Matsumoto + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: README.md + text: 'under the MIT License: http://mattn.mit-license.org/2017' +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml b/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml new file mode 100644 index 000000000..15b214d32 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml @@ -0,0 +1,54 @@ +--- +name: github.com/miekg/dns +version: v1.1.35 +type: go +summary: Package dns implements a full featured interface to the Domain Name System. +homepage: https://pkg.go.dev/github.com/miekg/dns +license: other +licenses: +- sources: LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + As this is fork of the official Go code the same license applies. + Extensions of the original work are copyright (c) 2011 Miek Gieben +- sources: COPYRIGHT + text: | + Copyright 2009 The Go Authors. All rights reserved. Use of this source code + is governed by a BSD-style license that can be found in the LICENSE file. + Extensions of the original work are copyright (c) 2011 Miek Gieben + + Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is + governed by a BSD-style license that can be found in the LICENSE file. + + Copyright 2014 CloudFlare. All rights reserved. Use of this source code is + governed by a BSD-style license that can be found in the LICENSE file. +notices: +- sources: AUTHORS + text: Miek Gieben diff --git a/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml b/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml new file mode 100644 index 000000000..c79e98fe0 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/oleksandr/bonjour +version: v0.0.0-20160508152359-5dcf00d8b228 +type: go +summary: bonjour This is a simple Multicast DNS-SD (Apple Bonjour) library written + in Golang. +homepage: https://pkg.go.dev/github.com/oleksandr/bonjour +license: mit +licenses: +- sources: LICENSE + text: |+ + The MIT License (MIT) + + Copyright (c) 2014 Oleksandr Lobunets + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml b/.licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml new file mode 100644 index 000000000..86b331585 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml @@ -0,0 +1,216 @@ +--- +name: github.com/oxtoacart/bpool +version: v0.0.0-20190530202638-03653db5a59c +type: go +summary: Package bpool implements leaky pools of byte arrays and Buffers as bounded + channels. +homepage: https://pkg.go.dev/github.com/oxtoacart/bpool +license: apache-2.0 +licenses: +- sources: LICENSE + text: |2 + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2014 Percy Wegmann + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: README.md + text: Apache 2.0 Licensed. See the LICENSE file for details. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pkg/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/pkg/errors.dep.yml new file mode 100644 index 000000000..a9b72bc4b --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pkg/errors.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/pkg/errors +version: v0.9.1 +type: go +summary: Package errors provides simple error handling primitives. +homepage: https://pkg.go.dev/github.com/pkg/errors +license: bsd-2-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2015, Dave Cheney + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: README.md + text: BSD-2-Clause +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml b/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml new file mode 100644 index 000000000..d0b7d872c --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml @@ -0,0 +1,20 @@ +--- +name: github.com/pkg/sftp +version: v1.12.0 +type: go +summary: Package sftp implements the SSH File Transfer Protocol as described in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02 +homepage: https://pkg.go.dev/github.com/pkg/sftp +license: bsd-2-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2013, Dave Cheney + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml b/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml new file mode 100644 index 000000000..27f80d290 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/sfreiberg/simplessh +version: v0.0.0-20180301191542-495cbb862a9c +type: go +summary: +homepage: https://pkg.go.dev/github.com/sfreiberg/simplessh +license: mit +licenses: +- sources: LICENSE + text: |- + The MIT License (MIT) + + Copyright (c) 2014 Sam Freiberg + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: SimpleSSH is licensed under the MIT license. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml b/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml new file mode 100644 index 000000000..9f1ef415f --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/sirupsen/logrus +version: v1.8.1 +type: go +summary: Package logrus is a structured logger for Go, completely API compatible with + the standard library logger. +homepage: https://pkg.go.dev/github.com/sirupsen/logrus +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2014 Simon Eskildsen + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml b/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml new file mode 100644 index 000000000..7fb2f9c27 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml @@ -0,0 +1,36 @@ +--- +name: github.com/skratchdot/open-golang/open +version: v0.0.0-20160302144031-75fb7ed4208c +type: go +summary: Open a file, directory, or URI using the OS's default application for that + object type. +homepage: https://pkg.go.dev/github.com/skratchdot/open-golang/open +license: mit +licenses: +- sources: open-golang@v0.0.0-20160302144031-75fb7ed4208c/LICENSE-MIT + text: | + Copyright (c) 2013 skratchdot + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. +- sources: open-golang@v0.0.0-20160302144031-75fb7ed4208c/README.md + text: "Copyright (c) 2013 skratchdot \nLicensed under the MIT license." +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml b/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml new file mode 100644 index 000000000..2bd0db1b2 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/ugorji/go/codec +version: v1.2.3 +type: go +summary: Package codec provides a High Performance, Feature-Rich Idiomatic Go 1.4+ + codec/encoding library for binc, msgpack, cbor, json. +homepage: https://pkg.go.dev/github.com/ugorji/go/codec +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2012-2020 Ugorji Nwoke. + All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml new file mode 100644 index 000000000..597eb647a --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/xrash/smetrics +version: v0.0.0-20170218160415-a3153f7040e9 +type: go +summary: "# String metrics This library contains implementations of the Levenshtein + distance, Jaro-Winkler and Soundex algorithms written in Go (golang)." +homepage: https://pkg.go.dev/github.com/xrash/smetrics +license: mit +licenses: +- sources: LICENSE + text: | + Copyright (C) 2016 Felipe da Cunha Gonçalves + All Rights Reserved. + + MIT LICENSE + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml new file mode 100644 index 000000000..00eb3d6d9 --- /dev/null +++ b/.licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml @@ -0,0 +1,44 @@ +--- +name: go.bug.st/downloader +version: v0.0.0-20181116113543-9b8976a44d87 +type: go +summary: +homepage: https://pkg.go.dev/go.bug.st/downloader +license: bsd-3-clause +licenses: +- sources: LICENSE + text: |2+ + + Copyright (c) 2018, Cristian Maglie. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +notices: [] diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml new file mode 100644 index 000000000..a7ecb3b18 --- /dev/null +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml @@ -0,0 +1,50 @@ +--- +name: go.bug.st/serial +version: v1.3.0 +type: go +summary: Package serial is a cross-platform serial library for the go language. +homepage: https://pkg.go.dev/go.bug.st/serial +license: bsd-3-clause +licenses: +- sources: LICENSE + text: |2+ + + Copyright (c) 2014-2020, Cristian Maglie. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +- sources: README.md + text: |- + The software is release under a [BSD 3-clause license] + + [contributors]: https://github.com/bugst/go-serial/graphs/contributors + [BSD 3-clause license]: https://github.com/bugst/go-serial/blob/master/LICENSE +notices: [] diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml new file mode 100644 index 000000000..06284620a --- /dev/null +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml @@ -0,0 +1,51 @@ +--- +name: go.bug.st/serial/enumerator +version: v1.3.0 +type: go +summary: Package enumerator is a golang cross-platform library for USB serial port + discovery. +homepage: https://pkg.go.dev/go.bug.st/serial/enumerator +license: bsd-3-clause +licenses: +- sources: serial@v1.3.0/LICENSE + text: |2+ + + Copyright (c) 2014-2020, Cristian Maglie. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +- sources: serial@v1.3.0/README.md + text: |- + The software is release under a [BSD 3-clause license] + + [contributors]: https://github.com/bugst/go-serial/graphs/contributors + [BSD 3-clause license]: https://github.com/bugst/go-serial/blob/master/LICENSE +notices: [] diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml new file mode 100644 index 000000000..0be1fed1d --- /dev/null +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml @@ -0,0 +1,50 @@ +--- +name: go.bug.st/serial/unixutils +version: v1.3.0 +type: go +summary: +homepage: https://pkg.go.dev/go.bug.st/serial/unixutils +license: bsd-3-clause +licenses: +- sources: serial@v1.3.0/LICENSE + text: |2+ + + Copyright (c) 2014-2020, Cristian Maglie. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +- sources: serial@v1.3.0/README.md + text: |- + The software is release under a [BSD 3-clause license] + + [contributors]: https://github.com/bugst/go-serial/graphs/contributors + [BSD 3-clause license]: https://github.com/bugst/go-serial/blob/master/LICENSE +notices: [] diff --git a/.licenses/arduino-create-agent/go/goa.design/goa.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa.dep.yml new file mode 100644 index 000000000..0324e20a3 --- /dev/null +++ b/.licenses/arduino-create-agent/go/goa.design/goa.dep.yml @@ -0,0 +1,32 @@ +--- +name: goa.design/goa +version: v1.0.1-0.20190116060309-40843d63b0e4 +type: go +summary: +homepage: https://pkg.go.dev/goa.design/goa +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2015 Raphael Simon and goa Contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml new file mode 100644 index 000000000..8c69b62ff --- /dev/null +++ b/.licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml @@ -0,0 +1,32 @@ +--- +name: goa.design/goa/http +version: v1.0.1-0.20190116060309-40843d63b0e4 +type: go +summary: +homepage: https://pkg.go.dev/goa.design/goa/http +license: mit +licenses: +- sources: goa@v1.0.1-0.20190116060309-40843d63b0e4/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2015 Raphael Simon and goa Contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml new file mode 100644 index 000000000..6945f1cdb --- /dev/null +++ b/.licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml @@ -0,0 +1,32 @@ +--- +name: goa.design/goa/http/middleware +version: v1.0.1-0.20190116060309-40843d63b0e4 +type: go +summary: +homepage: https://pkg.go.dev/goa.design/goa/http/middleware +license: mit +licenses: +- sources: goa@v1.0.1-0.20190116060309-40843d63b0e4/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2015 Raphael Simon and goa Contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml new file mode 100644 index 000000000..71e2eb29d --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/blowfish +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. +homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml new file mode 100644 index 000000000..2082b6b17 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/cast5 +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package cast5 implements CAST5, as defined in RFC 2144. +homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml new file mode 100644 index 000000000..297bda57e --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/ed25519 +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package ed25519 implements the Ed25519 signature algorithm. +homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml new file mode 100644 index 000000000..037337499 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/openpgp +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package openpgp implements high level operations on OpenPGP messages. +homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml new file mode 100644 index 000000000..5c5b34533 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/openpgp/armor +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. +homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml new file mode 100644 index 000000000..0a80c8f8c --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -0,0 +1,64 @@ +--- +name: golang.org/x/crypto/openpgp/elgamal +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified + in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," + IEEE Transactions on Information Theory, v. +homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml new file mode 100644 index 000000000..6ff20f434 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/openpgp/errors +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package errors contains common error types for the OpenPGP packages. +homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml new file mode 100644 index 000000000..fb71ab4ac --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/crypto/openpgp/packet +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package packet implements parsing and serialization of OpenPGP packets, as + specified in RFC 4880. +homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml new file mode 100644 index 000000000..cffec1382 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/crypto/openpgp/s2k +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package s2k implements the various OpenPGP string-to-key transforms as specified + in RFC 4800 section 3.7.1. +homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml new file mode 100644 index 000000000..321cbbee7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/crypto/sha3 +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and + the SHAKE variable-output-length hash functions defined by FIPS-202. +homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml new file mode 100644 index 000000000..bf424caf3 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/ssh +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package ssh implements an SSH client and server. +homepage: https://pkg.go.dev/golang.org/x/crypto/ssh +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml new file mode 100644 index 000000000..dbeba084e --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/crypto/ssh/agent +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package agent implements the ssh-agent protocol, and provides both a client + and a server. +homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml new file mode 100644 index 000000000..0dd1398da --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf +version: v0.0.0-20201124201722-c8d3bf9c5392 +type: go +summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. +homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf +license: other +licenses: +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml new file mode 100644 index 000000000..55fe1b4c3 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/net/bpf +version: v0.0.0-20200324143707-d3edc9973b7e +type: go +summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley + Packet Filter virtual machine, and provides a Go implementation of the virtual machine. +homepage: https://pkg.go.dev/golang.org/x/net/bpf +license: other +licenses: +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml new file mode 100644 index 000000000..e197973c4 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/net/internal/iana +version: v0.0.0-20200324143707-d3edc9973b7e +type: go +summary: Package iana provides protocol number resources managed by the Internet Assigned + Numbers Authority (IANA). +homepage: https://pkg.go.dev/golang.org/x/net/internal/iana +license: other +licenses: +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml new file mode 100644 index 000000000..f780045fe --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/net/internal/socket +version: v0.0.0-20200324143707-d3edc9973b7e +type: go +summary: Package socket provides a portable interface for socket system calls. +homepage: https://pkg.go.dev/golang.org/x/net/internal/socket +license: other +licenses: +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml new file mode 100644 index 000000000..bac5102b8 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/net/ipv4 +version: v0.0.0-20200324143707-d3edc9973b7e +type: go +summary: Package ipv4 implements IP-level socket options for the Internet Protocol + version 4. +homepage: https://pkg.go.dev/golang.org/x/net/ipv4 +license: other +licenses: +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml new file mode 100644 index 000000000..2a74d70e9 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/net/ipv6 +version: v0.0.0-20200324143707-d3edc9973b7e +type: go +summary: Package ipv6 implements IP-level socket options for the Internet Protocol + version 6. +homepage: https://pkg.go.dev/golang.org/x/net/ipv6 +license: other +licenses: +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml new file mode 100644 index 000000000..7b78d8ec6 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/sys/internal/unsafeheader +version: v0.0.0-20210124154548-22da62e12c0c +type: go +summary: Package unsafeheader contains header declarations for the Go runtime's slice + and string implementations. +homepage: https://pkg.go.dev/golang.org/x/sys/internal/unsafeheader +license: other +licenses: +- sources: sys@v0.0.0-20210124154548-22da62e12c0c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: sys@v0.0.0-20210124154548-22da62e12c0c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml new file mode 100644 index 000000000..da976e450 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/sys/unix +version: v0.0.0-20210124154548-22da62e12c0c +type: go +summary: Package unix contains an interface to the low-level operating system primitives. +homepage: https://pkg.go.dev/golang.org/x/sys/unix +license: other +licenses: +- sources: sys@v0.0.0-20210124154548-22da62e12c0c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: sys@v0.0.0-20210124154548-22da62e12c0c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml new file mode 100644 index 000000000..6c8182074 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/encoding/prototext +version: v1.25.0 +type: go +summary: Package prototext marshals and unmarshals protocol buffer messages as the + textproto format. +homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/prototext +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml new file mode 100644 index 000000000..107465ac9 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/encoding/protowire +version: v1.25.0 +type: go +summary: Package protowire parses and formats the raw wire encoding. +homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml new file mode 100644 index 000000000..88faee989 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/descfmt +version: v1.25.0 +type: go +summary: Package descfmt provides functionality to format descriptors. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/descfmt +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml new file mode 100644 index 000000000..e095762ce --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/descopts +version: v1.25.0 +type: go +summary: Package descopts contains the nil pointers to concrete descriptor options. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/descopts +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml new file mode 100644 index 000000000..811e2b644 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/detrand +version: v1.25.0 +type: go +summary: Package detrand provides deterministically random functionality. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml new file mode 100644 index 000000000..da7fdbee0 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/encoding/defval +version: v1.25.0 +type: go +summary: Package defval marshals and unmarshals textual forms of default values. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/defval +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml new file mode 100644 index 000000000..6a93462c4 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/encoding/messageset +version: v1.25.0 +type: go +summary: Package messageset encodes and decodes the obsolete MessageSet wire format. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml new file mode 100644 index 000000000..10fd501ef --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/internal/encoding/tag +version: v1.25.0 +type: go +summary: Package tag marshals and unmarshals the legacy struct tags as generated by + historical versions of protoc-gen-go. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/tag +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml new file mode 100644 index 000000000..35898c675 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/encoding/text +version: v1.25.0 +type: go +summary: Package text implements the text format for protocol buffers. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/text +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml new file mode 100644 index 000000000..84b57ea04 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/errors +version: v1.25.0 +type: go +summary: Package errors implements functions to manipulate errors. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml new file mode 100644 index 000000000..bda4d3221 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/fieldsort +version: v1.25.0 +type: go +summary: Package fieldsort defines an ordering of fields. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/fieldsort +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml new file mode 100644 index 000000000..81ddb8be3 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/filedesc +version: v1.25.0 +type: go +summary: Package filedesc provides functionality for constructing descriptors. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/filedesc +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml new file mode 100644 index 000000000..41814d6c7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/internal/filetype +version: v1.25.0 +type: go +summary: Package filetype provides functionality for wrapping descriptors with Go + type information. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/filetype +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml new file mode 100644 index 000000000..8df1b9c64 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/flags +version: v1.25.0 +type: go +summary: Package flags provides a set of flags controlled by build tags. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml new file mode 100644 index 000000000..b908099a6 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/internal/genid +version: v1.25.0 +type: go +summary: Package genid contains constants for declarations in descriptor.proto and + the well-known types. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml new file mode 100644 index 000000000..2dc3c695f --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/impl +version: v1.25.0 +type: go +summary: +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/impl +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml new file mode 100644 index 000000000..d2631cdb1 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/mapsort +version: v1.25.0 +type: go +summary: Package mapsort provides sorted access to maps. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/mapsort +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml new file mode 100644 index 000000000..b715f3025 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/internal/pragma +version: v1.25.0 +type: go +summary: Package pragma provides types that can be embedded into a struct to statically + enforce or prevent certain language properties. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml new file mode 100644 index 000000000..9418a497c --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/set +version: v1.25.0 +type: go +summary: Package set provides simple set data structures for uint64s. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/set +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml new file mode 100644 index 000000000..1ab8fd799 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/strs +version: v1.25.0 +type: go +summary: Package strs provides string manipulation functionality specific to protobuf. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml new file mode 100644 index 000000000..c6b3f8c3b --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/internal/version +version: v1.25.0 +type: go +summary: Package version records versioning information about this module. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/version +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml new file mode 100644 index 000000000..cbbc45f97 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/proto +version: v1.25.0 +type: go +summary: Package proto provides functions operating on protocol buffer messages. +homepage: https://pkg.go.dev/google.golang.org/protobuf/proto +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml new file mode 100644 index 000000000..7e5528258 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/reflect/protoreflect +version: v1.25.0 +type: go +summary: Package protoreflect provides interfaces to dynamically manipulate messages. +homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml new file mode 100644 index 000000000..a6a42cb91 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/reflect/protoregistry +version: v1.25.0 +type: go +summary: Package protoregistry provides data structures to register and lookup protobuf + descriptor types. +homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml new file mode 100644 index 000000000..43d0e2c08 --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -0,0 +1,62 @@ +--- +name: google.golang.org/protobuf/runtime/protoiface +version: v1.25.0 +type: go +summary: Package protoiface contains types referenced or implemented by messages. +homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml new file mode 100644 index 000000000..1b28edbdc --- /dev/null +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml @@ -0,0 +1,63 @@ +--- +name: google.golang.org/protobuf/runtime/protoimpl +version: v1.25.0 +type: go +summary: Package protoimpl contains the default implementation for messages generated + by protoc-gen-go. +homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoimpl +license: other +licenses: +- sources: protobuf@v1.25.0/LICENSE + text: | + Copyright (c) 2018 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: protobuf@v1.25.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml new file mode 100644 index 000000000..ace4ea7dd --- /dev/null +++ b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml @@ -0,0 +1,27 @@ +--- +name: gopkg.in/inconshreveable/go-update.v0 +version: v0.0.0-20150814200126-d8b0b1d421aa +type: go +summary: go-update allows a program to update itself by replacing its executable file + with a new version. +homepage: https://pkg.go.dev/gopkg.in/inconshreveable/go-update.v0 +license: other +licenses: +- sources: LICENSE + text: | + Copyright 2014 Alan Shreve + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: README.md + text: Apache +notices: [] diff --git a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml new file mode 100644 index 000000000..1a3e6a98f --- /dev/null +++ b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml @@ -0,0 +1,26 @@ +--- +name: gopkg.in/inconshreveable/go-update.v0/download +version: v0.0.0-20150814200126-d8b0b1d421aa +type: go +summary: +homepage: https://pkg.go.dev/gopkg.in/inconshreveable/go-update.v0/download +license: other +licenses: +- sources: go-update.v0@v0.0.0-20150814200126-d8b0b1d421aa/LICENSE + text: | + Copyright 2014 Alan Shreve + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: go-update.v0@v0.0.0-20150814200126-d8b0b1d421aa/README.md + text: Apache +notices: [] diff --git a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml new file mode 100644 index 000000000..4c5fd6987 --- /dev/null +++ b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml @@ -0,0 +1,263 @@ +--- +name: gopkg.in/yaml.v2 +version: v2.4.0 +type: go +summary: Package yaml implements YAML support for the Go language. +homepage: https://pkg.go.dev/gopkg.in/yaml.v2 +license: other +licenses: +- sources: LICENSE + text: |2 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: LICENSE.libyaml + text: | + The following files were ported to Go from C files of libyaml, and thus + are still covered by their original copyright and license: + + apic.go + emitterc.go + parserc.go + readerc.go + scannerc.go + writerc.go + yamlh.go + yamlprivateh.go + + Copyright (c) 2006 Kirill Simonov + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: README.md + text: The yaml package is licensed under the Apache License 2.0. Please see the + LICENSE file for details. +notices: +- sources: NOTICE + text: |- + Copyright 2011-2016 Canonical Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From ac00b56e326e13e285817ca704f81cea7420fc73 Mon Sep 17 00:00:00 2001 From: per1234 Date: Thu, 16 Sep 2021 06:53:20 -0700 Subject: [PATCH 046/233] Manually define dependency license metadata that was not detected The "Licensed" dependency license checker tool uses the licensee tool to automatically determine the license type based on metadata provided by the dependency author. This must be in a standardized format without any modifications. In cases where that wasn't done, it is necessary to determine the license type and update the dependency license metadata cache in the `.licenses` folder manually. The Licensed tool will check this data whenever the dependency version is updated to make sure the license hasn't changed. --- .../arduino/arduino-cli/arduino/serialutils.dep.yml | 2 +- .../arduino-create-agent/go/github.com/blang/semver.dep.yml | 2 +- .../arduino-create-agent/go/github.com/go-ini/ini.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/message.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/parser.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/polling.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/transport.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/websocket.dep.yml | 2 +- .../go/github.com/googollee/go-socket.io.dep.yml | 2 +- .../arduino-create-agent/go/github.com/juju/errors.dep.yml | 2 +- .../arduino-create-agent/go/github.com/miekg/dns.dep.yml | 2 +- .../go/golang.org/x/crypto/blowfish.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml | 2 +- .../go/golang.org/x/crypto/ed25519.dep.yml | 2 +- .../go/golang.org/x/crypto/openpgp.dep.yml | 2 +- .../go/golang.org/x/crypto/openpgp/armor.dep.yml | 2 +- .../go/golang.org/x/crypto/openpgp/elgamal.dep.yml | 2 +- .../go/golang.org/x/crypto/openpgp/errors.dep.yml | 2 +- .../go/golang.org/x/crypto/openpgp/packet.dep.yml | 2 +- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml | 2 +- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 2 +- .../go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/net/bpf.dep.yml | 2 +- .../go/golang.org/x/net/internal/iana.dep.yml | 2 +- .../go/golang.org/x/net/internal/socket.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml | 2 +- .../go/golang.org/x/sys/internal/unsafeheader.dep.yml | 2 +- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 2 +- .../go/google.golang.org/protobuf/encoding/prototext.dep.yml | 2 +- .../go/google.golang.org/protobuf/encoding/protowire.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/descfmt.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/descopts.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/detrand.dep.yml | 2 +- .../protobuf/internal/encoding/defval.dep.yml | 2 +- .../protobuf/internal/encoding/messageset.dep.yml | 2 +- .../google.golang.org/protobuf/internal/encoding/tag.dep.yml | 2 +- .../google.golang.org/protobuf/internal/encoding/text.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/errors.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/fieldsort.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/filedesc.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/filetype.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/flags.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/genid.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/impl.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/mapsort.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/pragma.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/set.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/strs.dep.yml | 2 +- .../go/google.golang.org/protobuf/internal/version.dep.yml | 2 +- .../go/google.golang.org/protobuf/proto.dep.yml | 2 +- .../google.golang.org/protobuf/reflect/protoreflect.dep.yml | 2 +- .../google.golang.org/protobuf/reflect/protoregistry.dep.yml | 2 +- .../go/google.golang.org/protobuf/runtime/protoiface.dep.yml | 2 +- .../go/google.golang.org/protobuf/runtime/protoimpl.dep.yml | 2 +- .../go/gopkg.in/inconshreveable/go-update.v0.dep.yml | 2 +- .../go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml | 2 +- .licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml | 4 +++- 61 files changed, 63 insertions(+), 61 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml index ecece7975..c9af3e07c 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20210422154105-5aa424818026 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/arduino/serialutils -license: other +license: gpl-3.0-only licenses: - sources: arduino-cli@v0.0.0-20210422154105-5aa424818026/LICENSE.txt text: | diff --git a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml index 4240df614..3ef4e43fa 100644 --- a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml @@ -4,7 +4,7 @@ version: v3.5.1+incompatible type: go summary: homepage: https://pkg.go.dev/github.com/blang/semver -license: other +license: mit licenses: - sources: LICENSE text: |+ diff --git a/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml index bcdbc39c4..446908dd7 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-ini/ini.dep.yml @@ -4,7 +4,7 @@ version: v1.62.0 type: go summary: Package ini provides INI file read and write functionality in Go. homepage: https://pkg.go.dev/github.com/go-ini/ini -license: other +license: apache-2.0 licenses: - sources: LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml index 3f0b335c7..a798ca46f 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20180829091931-e2f255711dcb type: go summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io -license: other +license: bsd-3-clause licenses: - sources: LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml index f550ac569..ccf2355f5 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20180829091931-e2f255711dcb type: go summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/message -license: other +license: bsd-3-clause licenses: - sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml index 00cb10b41..0a08396a0 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20180829091931-e2f255711dcb type: go summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/parser -license: other +license: bsd-3-clause licenses: - sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml index 23bd85dcc..ccc32fe6e 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20180829091931-e2f255711dcb type: go summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/polling -license: other +license: bsd-3-clause licenses: - sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml index 9f7f9e2a4..d48516a8a 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20180829091931-e2f255711dcb type: go summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/transport -license: other +license: bsd-3-clause licenses: - sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml index fb9cecffe..9eb8de2c2 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20180829091931-e2f255711dcb type: go summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/websocket -license: other +license: bsd-3-clause licenses: - sources: go-engine.io@v0.0.0-20180829091931-e2f255711dcb/LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml index 58540351e..fb650bfe3 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-socket.io.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20181101151912-c8aeb1ed9b49 type: go summary: go-socket.io is a server implementation of socket.io in golang. homepage: https://pkg.go.dev/github.com/googollee/go-socket.io -license: other +license: bsd-3-clause licenses: - sources: LICENSE text: |- diff --git a/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml index caf6e85c3..96dcdff05 100644 --- a/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package errors provides an easy way to annotate errors without losing the original error context. homepage: https://pkg.go.dev/github.com/juju/errors -license: other +license: lgpl-3.0-only licenses: - sources: LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml b/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml index 15b214d32..3c5d8d4ca 100644 --- a/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml @@ -4,7 +4,7 @@ version: v1.1.35 type: go summary: Package dns implements a full featured interface to the Domain Name System. homepage: https://pkg.go.dev/github.com/miekg/dns -license: other +license: bsd-3-clause licenses: - sources: LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index 71e2eb29d..53b975ede 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index 2082b6b17..ec7b5c600 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index 297bda57e..a59120019 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 037337499..41eb98151 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 5c5b34533..84b4ace99 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 0a80c8f8c..16a908b80 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -6,7 +6,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index 6ff20f434..35808fe87 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index fb71ab4ac..ebb42735b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index cffec1382..e1994de60 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 321cbbee7..457487172 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index bf424caf3..1ab24bf38 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index dbeba084e..a0e4bb0c4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 0dd1398da..f6831799c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20201124201722-c8d3bf9c5392 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -license: other +license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 55fe1b4c3..4463e576f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf -license: other +license: bsd-3-clause licenses: - sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index e197973c4..031c827d5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana -license: other +license: bsd-3-clause licenses: - sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index f780045fe..283a9876c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20200324143707-d3edc9973b7e type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket -license: other +license: bsd-3-clause licenses: - sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index bac5102b8..28286a8ea 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 -license: other +license: bsd-3-clause licenses: - sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 2a74d70e9..796c9c281 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 -license: other +license: bsd-3-clause licenses: - sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml index 7b78d8ec6..1a637ee41 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package unsafeheader contains header declarations for the Go runtime's slice and string implementations. homepage: https://pkg.go.dev/golang.org/x/sys/internal/unsafeheader -license: other +license: bsd-3-clause licenses: - sources: sys@v0.0.0-20210124154548-22da62e12c0c/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index da976e450..3cd8c5c9a 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20210124154548-22da62e12c0c type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix -license: other +license: bsd-3-clause licenses: - sources: sys@v0.0.0-20210124154548-22da62e12c0c/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml index 6c8182074..21eefd111 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package prototext marshals and unmarshals protocol buffer messages as the textproto format. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/prototext -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index 107465ac9..a34aa74fe 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml index 88faee989..9e1e10faf 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package descfmt provides functionality to format descriptors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/descfmt -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml index e095762ce..47bd8241c 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package descopts contains the nil pointers to concrete descriptor options. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/descopts -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index 811e2b644..aaf47d91f 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml index da7fdbee0..96e05bb7e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package defval marshals and unmarshals textual forms of default values. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/defval -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index 6a93462c4..afea604b3 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml index 10fd501ef..8bd7b05f4 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package tag marshals and unmarshals the legacy struct tags as generated by historical versions of protoc-gen-go. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/tag -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml index 35898c675..76f142485 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package text implements the text format for protocol buffers. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/text -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index 84b57ea04..521973877 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml index bda4d3221..847d8aaa6 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package fieldsort defines an ordering of fields. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/fieldsort -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml index 81ddb8be3..14f27c978 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package filedesc provides functionality for constructing descriptors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/filedesc -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml index 41814d6c7..21b3d6775 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package filetype provides functionality for wrapping descriptors with Go type information. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/filetype -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index 8df1b9c64..9613d3d5b 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index b908099a6..ad64e2b49 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml index 2dc3c695f..ca50fb8c1 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/impl -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml index d2631cdb1..f8bd57ab8 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package mapsort provides sorted access to maps. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/mapsort -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index b715f3025..7560511bd 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml index 9418a497c..448146172 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package set provides simple set data structures for uint64s. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/set -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index 1ab8fd799..0a0bbffda 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml index c6b3f8c3b..87c82778d 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package version records versioning information about this module. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/version -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index cbbc45f97..2936acdae 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 7e5528258..2f862928a 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index a6a42cb91..685197adb 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index 43d0e2c08..9e52377b6 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -4,7 +4,7 @@ version: v1.25.0 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml index 1b28edbdc..fab599cb5 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml @@ -5,7 +5,7 @@ type: go summary: Package protoimpl contains the default implementation for messages generated by protoc-gen-go. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoimpl -license: other +license: bsd-3-clause licenses: - sources: protobuf@v1.25.0/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml index ace4ea7dd..9aaf42dd7 100644 --- a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml +++ b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0.dep.yml @@ -5,7 +5,7 @@ type: go summary: go-update allows a program to update itself by replacing its executable file with a new version. homepage: https://pkg.go.dev/gopkg.in/inconshreveable/go-update.v0 -license: other +license: apache-2.0 licenses: - sources: LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml index 1a3e6a98f..5894a7618 100644 --- a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml +++ b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml @@ -4,7 +4,7 @@ version: v0.0.0-20150814200126-d8b0b1d421aa type: go summary: homepage: https://pkg.go.dev/gopkg.in/inconshreveable/go-update.v0/download -license: other +license: apache-2.0 licenses: - sources: go-update.v0@v0.0.0-20150814200126-d8b0b1d421aa/LICENSE text: | diff --git a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml index 4c5fd6987..da704355e 100644 --- a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml +++ b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml @@ -4,7 +4,9 @@ version: v2.4.0 type: go summary: Package yaml implements YAML support for the Go language. homepage: https://pkg.go.dev/gopkg.in/yaml.v2 -license: other +# Apache-2.0 subsumes MIT +# https://www.gnu.org/licenses/license-compatibility.html#combining +license: apache-2.0 licenses: - sources: LICENSE text: |2 From 9415c4d6332889587abffc9d6fb66b789264116c Mon Sep 17 00:00:00 2001 From: per1234 Date: Tue, 10 May 2022 22:03:17 -0700 Subject: [PATCH 047/233] Use form-based issue templates High quality feedback via GitHub issues is a very valuable contribution to the project. It is important to make the issue creation and management process as efficient as possible for the contributors, maintainers, and developers. Issue templates are helpful to the maintainers and developers because it establishes a standardized framework for the issues and encourages the contributors to provide the essential information. The contributor is now presented with a web form when creating an issue. This consists of multi-line input fields that have the same formatting, preview, and attachment capabilities as the standard GitHub Issue composer, in addition to menus and checkboxes where appropriate. The use of this form-based system should provide a much better experience for the contributors and also result in higher quality issues by establishing a standardized framework for the issues and encouraging contributors to provide the essential information. A template chooser allows the contributor to select the appropriate template type, redirects support requests to the appropriate communication channels via "Contact Links", and provides a prominent link to security policy to guide any vulnerability disclosures. The clear separation of the types of issues encourages the reporter to fit their report into a specific issue category, resulting in more clarity. Automatic labeling according to template choice allows the reporter to do the initial classification. --- .github/ISSUE_TEMPLATE/bug-report.yml | 92 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 26 ------ .github/ISSUE_TEMPLATE/config.yml | 17 ++++ .github/ISSUE_TEMPLATE/feature-request.yml | 87 ++++++++++++++++++++ 4 files changed, 196 insertions(+), 26 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 000000000..3ff41f764 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,92 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/forms/platform-dependent/bug-report.yml +# See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms + +name: Bug report +description: Report a problem with the code or documentation in this repository. +labels: + - "type: imperfection" +body: + - type: textarea + id: description + attributes: + label: Describe the problem + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: To reproduce + description: Provide the specific set of steps we can follow to reproduce the problem. + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What would you expect to happen after following those instructions? + validations: + required: true + - type: input + id: project-version + attributes: + label: Arduino Create Agent version + description: | + Which version of Arduino Create Agent are you using? + _This should be the most recent version available._ + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating system + description: Which operating system(s) are you using on your computer? + multiple: true + options: + - Windows + - Linux + - macOS + - N/A + validations: + required: true + - type: input + id: os-version + attributes: + label: Operating system version + description: Which version of the operating system are you using on your computer? + validations: + required: true + - type: input + id: browser + attributes: + label: Browser + description: | + Which web browser(s) are you using on your computer? + (e.g., Chrome, Safari) + validations: + required: true + - type: input + id: browser-version + attributes: + label: Browser version + description: Which version of the web browser are you using on your computer? + validations: + required: true + - type: textarea + id: additional + attributes: + label: Additional context + description: Add any additional information here. + validations: + required: false + - type: checkboxes + id: checklist + attributes: + label: Issue checklist + description: Please double-check that you have done each of the following things before submitting the issue. + options: + - label: I searched for previous reports in [the issue tracker](https://github.com/arduino/arduino-create-agent/issues?q=) + required: true + - label: I verified the problem still occurs when using the latest version + required: true + - label: My report contains all necessary details + required: true diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 79e35830c..000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: 🐛 Bug report -about: Create a report to help us improve ---- - -## Bug Report - -### Describe the bug - - -### To Reproduce - - -### Expected behavior - - -## Environment (please complete the following information): - - OS [e.g. Windows]: - - OS version - - Browser [e.g. chrome, safari]: - - Browser Version: - - Agent Version [e.g. 1.0.0]: - - CPU architecture [e.g. amd64] - -## Additional context - diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..8301c8bbc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,17 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/template-choosers/general/config.yml +# See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser + +blank_issues_enabled: true +contact_links: + - name: Install Arduino Create Agent + url: https://create.arduino.cc/getting-started/plugin/welcome + about: This guided installer provides easy installation. + - name: Learn about using this project + url: https://github.com/arduino/arduino-create-agent#readme + about: Detailed usage documentation is available here. + - name: Support request + url: https://forum.arduino.cc/c/software/editor/134 + about: We can help you out on the Arduino Forum! + - name: Discuss development work on the project + url: https://groups.google.com/a/arduino.cc/g/developers + about: Arduino Developers Mailing List diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 000000000..b9a47d376 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,87 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/forms/platform-dependent/bug-report.yml +# See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms + +name: Feature request +description: Suggest an enhancement to this project. +labels: + - "type: enhancement" +body: + - type: textarea + id: description + attributes: + label: Describe the request + validations: + required: true + - type: textarea + id: current + attributes: + label: Describe the current behavior + description: | + What is the current behavior of Arduino Create Agent in relation to your request? + How can we reproduce that behavior? + validations: + required: true + - type: input + id: project-version + attributes: + label: Arduino Create Agent version + description: | + Which version of Arduino Create Agent are you using? + _This should be the most recent version available._ + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating system + description: Which operating system(s) are you using on your computer? + multiple: true + options: + - Windows + - Linux + - macOS + - N/A + validations: + required: true + - type: input + id: os-version + attributes: + label: Operating system version + description: Which version of the operating system are you using on your computer? + validations: + required: true + - type: input + id: browser + attributes: + label: Browser + description: | + Which web browser(s) are you using on your computer? + (e.g., Chrome, Safari) + validations: + required: true + - type: input + id: browser-version + attributes: + label: Browser version + description: Which version of the web browser are you using on your computer? + validations: + required: true + - type: textarea + id: additional + attributes: + label: Additional context + description: Add any additional information here. + validations: + required: false + - type: checkboxes + id: checklist + attributes: + label: Issue checklist + description: Please double-check that you have done each of the following things before submitting the issue. + options: + - label: I searched for previous requests in [the issue tracker](https://github.com/arduino/arduino-create-agent/issues?q=) + required: true + - label: I verified the feature was still missing when using the latest version + required: true + - label: My request contains all necessary details + required: true From d5585eaf04d0a2f8cc0a6b2033ea231af30295ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 May 2022 12:58:34 +0200 Subject: [PATCH 048/233] Bump crazy-max/ghaction-virustotal from 2 to 3 (#711) Bumps [crazy-max/ghaction-virustotal](https://github.com/crazy-max/ghaction-virustotal) from 2 to 3. - [Release notes](https://github.com/crazy-max/ghaction-virustotal/releases) - [Changelog](https://github.com/crazy-max/ghaction-virustotal/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-virustotal/compare/v2...v3) --- updated-dependencies: - dependency-name: crazy-max/ghaction-virustotal dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 210e2623b..a57cc428b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -452,7 +452,7 @@ jobs: - name: VirusTotal Scan id: virustotal_step - uses: crazy-max/ghaction-virustotal@v2 + uses: crazy-max/ghaction-virustotal@v3 with: vt_api_key: ${{ secrets.VIRUSTOTAL_API_KEY }} update_release_body: false # `true` won't work because trigger type is not release From 1516602e1e14336f30389601acdb3f1e53acc065 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 May 2022 12:22:51 +0200 Subject: [PATCH 049/233] Bump github.com/gin-gonic/gin from 1.7.7 to 1.8.0 (#713) * Bump github.com/gin-gonic/gin from 1.7.7 to 1.8.0 Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.7.7 to 1.8.0. - [Release notes](https://github.com/gin-gonic/gin/releases) - [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md) - [Commits](https://github.com/gin-gonic/gin/compare/v1.7.7...v1.8.0) --- updated-dependencies: - dependency-name: github.com/gin-gonic/gin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update deps licenses Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/gin-gonic/gin.dep.yml | 7 +- .../github.com/gin-gonic/gin/binding.dep.yml | 4 +- .../gin-gonic/gin/internal/bytesconv.dep.yml | 4 +- .../gin-gonic/gin/internal/json.dep.yml | 4 +- .../github.com/gin-gonic/gin/render.dep.yml | 4 +- .../github.com/go-playground/locales.dep.yml | 2 +- .../go-playground/locales/currency.dep.yml | 6 +- .../universal-translator.dep.yml | 2 +- .../go-playground/validator/v10.dep.yml | 2 +- .../github.com/golang/protobuf/proto.dep.yml | 39 ------- .../go/github.com/leodido/go-urn.dep.yml | 2 +- .../go/github.com/mattn/go-isatty.dep.yml | 2 +- .../github.com/pelletier/go-toml/v2.dep.yml | 34 ++++++ .../pelletier/go-toml/v2/internal/ast.dep.yml | 34 ++++++ .../go-toml/v2/internal/danger.dep.yml | 34 ++++++ .../go-toml/v2/internal/tracker.dep.yml | 34 ++++++ .../go/github.com/ugorji/go/codec.dep.yml | 2 +- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +- .../crypto/curve25519/internal/field.dep.yml} | 15 ++- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +- .../golang.org/x/crypto/openpgp/armor.dep.yml | 6 +- .../x/crypto/openpgp/elgamal.dep.yml | 6 +- .../x/crypto/openpgp/errors.dep.yml | 6 +- .../x/crypto/openpgp/packet.dep.yml | 6 +- .../golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +- .../crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +- .../go/golang.org/x/net/bpf.dep.yml | 6 +- .../x/net/http2.dep.yml} | 14 +-- .../x/net/http2/h2c.dep.yml} | 14 +-- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +- .../golang.org/x/net/internal/socket.dep.yml | 6 +- .../go/golang.org/x/net/ipv4.dep.yml | 6 +- .../go/golang.org/x/net/ipv6.dep.yml | 6 +- .../x/sys/internal/unsafeheader.dep.yml | 6 +- .../go/golang.org/x/sys/unix.dep.yml | 6 +- .../x/text/internal/language.dep.yml} | 12 +-- .../x/text/internal/language/compact.dep.yml} | 14 +-- .../x/text/internal}/tag.dep.yml | 15 ++- .../x/text/language.dep.yml} | 14 +-- .../protobuf/encoding/protowire.dep.yml | 6 +- .../protobuf/internal/descfmt.dep.yml | 62 ----------- .../protobuf/internal/descopts.dep.yml | 62 ----------- .../protobuf/internal/detrand.dep.yml | 6 +- .../internal/encoding/messageset.dep.yml | 6 +- .../protobuf/internal/errors.dep.yml | 6 +- .../protobuf/internal/filedesc.dep.yml | 62 ----------- .../protobuf/internal/filetype.dep.yml | 63 ----------- .../protobuf/internal/flags.dep.yml | 6 +- .../protobuf/internal/genid.dep.yml | 6 +- .../{fieldsort.dep.yml => order.dep.yml} | 12 +-- .../protobuf/internal/pragma.dep.yml | 6 +- .../protobuf/internal/strs.dep.yml | 6 +- .../protobuf/internal/version.dep.yml | 62 ----------- .../google.golang.org/protobuf/proto.dep.yml | 6 +- .../protobuf/reflect/protoreflect.dep.yml | 6 +- .../protobuf/reflect/protoregistry.dep.yml | 6 +- .../protobuf/runtime/protoiface.dep.yml | 6 +- .../protobuf/runtime/protoimpl.dep.yml | 63 ----------- go.mod | 11 +- go.sum | 101 ++++++++++-------- 65 files changed, 371 insertions(+), 633 deletions(-) delete mode 100644 .licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/encoding/prototext.dep.yml => golang.org/x/crypto/curve25519/internal/field.dep.yml} (87%) rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/internal/encoding/text.dep.yml => golang.org/x/net/http2.dep.yml} (89%) rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/internal/encoding/defval.dep.yml => golang.org/x/net/http2/h2c.dep.yml} (88%) rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/internal/impl.dep.yml => golang.org/x/text/internal/language.dep.yml} (91%) rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/internal/set.dep.yml => golang.org/x/text/internal/language/compact.dep.yml} (89%) rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/internal/encoding => golang.org/x/text/internal}/tag.dep.yml (87%) rename .licenses/arduino-create-agent/go/{google.golang.org/protobuf/internal/mapsort.dep.yml => golang.org/x/text/language.dep.yml} (90%) delete mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml rename .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/{fieldsort.dep.yml => order.dep.yml} (93%) delete mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml index 357af6175..058c4062f 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gin-gonic/gin -version: v1.7.7 +version: v1.8.0 type: go summary: Package gin implements a HTTP web framework called gin. homepage: https://pkg.go.dev/github.com/gin-gonic/gin @@ -143,6 +143,11 @@ notices: - Fix typo in comment + **@jincheng9 (Jincheng Zhang)** + - ★ support TSR when wildcard follows named param + - Fix errors and typos in comments + + **@joiggama (Ignacio Galindo)** - Add utf-8 charset header on renders diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml index c9423a123..c5659d3bd 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/binding -version: v1.7.7 +version: v1.8.0 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding license: mit licenses: -- sources: gin@v1.7.7/LICENSE +- sources: gin@v1.8.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml index 7e8466570..5ac1e009a 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/bytesconv -version: v1.7.7 +version: v1.8.0 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv license: mit licenses: -- sources: gin@v1.7.7/LICENSE +- sources: gin@v1.8.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml index 1ab2f6ef7..2dac27ac3 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/json -version: v1.7.7 +version: v1.8.0 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json license: mit licenses: -- sources: gin@v1.7.7/LICENSE +- sources: gin@v1.8.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml index 0f61d8361..d1cbda0a8 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/render -version: v1.7.7 +version: v1.8.0 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render license: mit licenses: -- sources: gin@v1.7.7/LICENSE +- sources: gin@v1.8.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml index 0d5957af7..d21519810 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/locales -version: v0.13.0 +version: v0.14.0 type: go summary: homepage: https://pkg.go.dev/github.com/go-playground/locales diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml index 3ea0d02ed..29ad8571e 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/go-playground/locales/currency -version: v0.13.0 +version: v0.14.0 type: go summary: homepage: https://pkg.go.dev/github.com/go-playground/locales/currency license: mit licenses: -- sources: locales@v0.13.0/LICENSE +- sources: locales@v0.14.0/LICENSE text: |- The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: locales@v0.13.0/README.md +- sources: locales@v0.14.0/README.md text: Distributed under MIT License, please see license file in code for more details. notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml index a9fb0f149..4774803a5 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/universal-translator -version: v0.17.0 +version: v0.18.0 type: go summary: homepage: https://pkg.go.dev/github.com/go-playground/universal-translator diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml index 0f43064c1..1b611a943 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/validator/v10 -version: v10.4.1 +version: v10.10.0 type: go summary: Package validator implements value validations for structs and individual fields based on tags. diff --git a/.licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml deleted file mode 100644 index d42ea0fd7..000000000 --- a/.licenses/arduino-create-agent/go/github.com/golang/protobuf/proto.dep.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -name: github.com/golang/protobuf/proto -version: v1.4.3 -type: go -summary: Package proto provides functionality for handling protocol buffer messages. -homepage: https://pkg.go.dev/github.com/golang/protobuf/proto -license: bsd-3-clause -licenses: -- sources: protobuf@v1.4.3/LICENSE - text: |+ - Copyright 2010 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml index 781cd36ad..e9d2b9800 100644 --- a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/leodido/go-urn -version: v1.2.0 +version: v1.2.1 type: go summary: homepage: https://pkg.go.dev/github.com/leodido/go-urn diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml index de6b9c513..de6d423c4 100644 --- a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/mattn/go-isatty -version: v0.0.12 +version: v0.0.14 type: go summary: Package isatty implements interface to isatty homepage: https://pkg.go.dev/github.com/mattn/go-isatty diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml new file mode 100644 index 000000000..63307638c --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/pelletier/go-toml/v2 +version: v2.0.1 +type: go +summary: Package toml is a library to read and write TOML documents. +homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2 +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: README.md + text: The MIT License (MIT). Read [LICENSE](LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml new file mode 100644 index 000000000..4225dd6ba --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/pelletier/go-toml/v2/internal/ast +version: v2.0.1 +type: go +summary: +homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/ast +license: mit +licenses: +- sources: v2@v2.0.1/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: v2@v2.0.1/README.md + text: The MIT License (MIT). Read [LICENSE](LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml new file mode 100644 index 000000000..a348f62c4 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/pelletier/go-toml/v2/internal/danger +version: v2.0.1 +type: go +summary: +homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger +license: mit +licenses: +- sources: v2@v2.0.1/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: v2@v2.0.1/README.md + text: The MIT License (MIT). Read [LICENSE](LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml new file mode 100644 index 000000000..7f812ebb8 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/pelletier/go-toml/v2/internal/tracker +version: v2.0.1 +type: go +summary: +homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker +license: mit +licenses: +- sources: v2@v2.0.1/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: v2@v2.0.1/README.md + text: The MIT License (MIT). Read [LICENSE](LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml b/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml index 2bd0db1b2..4ee4e68aa 100644 --- a/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ugorji/go/codec -version: v1.2.3 +version: v1.2.7 type: go summary: Package codec provides a High Performance, Feature-Rich Idiomatic Go 1.4+ codec/encoding library for binc, msgpack, cbor, json. diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index 53b975ede..f0569d63b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index ec7b5c600..def870b73 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519/internal/field.dep.yml similarity index 87% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519/internal/field.dep.yml index 21eefd111..195f634b2 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/prototext.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519/internal/field.dep.yml @@ -1,15 +1,14 @@ --- -name: google.golang.org/protobuf/encoding/prototext -version: v1.25.0 +name: golang.org/x/crypto/curve25519/internal/field +version: v0.0.0-20210711020723-a769d52b0f97 type: go -summary: Package prototext marshals and unmarshals protocol buffer messages as the - textproto format. -homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/prototext +summary: Package field implements fast arithmetic modulo 2^255-19. +homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519/internal/field license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -36,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index a59120019..e6fc33ee0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 41eb98151..4a1e8a35e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 84b4ace99..429491b86 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 16a908b80..0570ad6cf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index 35808fe87..6643301bc 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index ebb42735b..7000e90c8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index e1994de60..a9b4dac4d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 457487172..1e351691b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 1ab24bf38..b42d66b59 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index a0e4bb0c4..cc054687b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index f6831799c..a270f6e80 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.0.0-20201124201722-c8d3bf9c5392 +version: v0.0.0-20210711020723-a769d52b0f97 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/LICENSE +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20201124201722-c8d3bf9c5392/PATENTS +- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 4463e576f..fdadf5eb9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.0.0-20200324143707-d3edc9973b7e +version: v0.0.0-20210226172049-e18ecbb05110 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml similarity index 89% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 76f142485..7203ee1a0 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/text.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,14 +1,14 @@ --- -name: google.golang.org/protobuf/internal/encoding/text -version: v1.25.0 +name: golang.org/x/net/http2 +version: v0.0.0-20210226172049-e18ecbb05110 type: go -summary: Package text implements the text format for protocol buffers. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/text +summary: Package http2 implements the HTTP/2 protocol. +homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml similarity index 88% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 96e05bb7e..a36deaa36 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/defval.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,14 +1,14 @@ --- -name: google.golang.org/protobuf/internal/encoding/defval -version: v1.25.0 +name: golang.org/x/net/http2/h2c +version: v0.0.0-20210226172049-e18ecbb05110 type: go -summary: Package defval marshals and unmarshals textual forms of default values. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/defval +summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. +homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 031c827d5..727195d13 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.0.0-20200324143707-d3edc9973b7e +version: v0.0.0-20210226172049-e18ecbb05110 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 283a9876c..1ab083a17 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.0.0-20200324143707-d3edc9973b7e +version: v0.0.0-20210226172049-e18ecbb05110 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index 28286a8ea..a4a0e4db3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.0.0-20200324143707-d3edc9973b7e +version: v0.0.0-20210226172049-e18ecbb05110 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 796c9c281..69777e4ed 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.0.0-20200324143707-d3edc9973b7e +version: v0.0.0-20210226172049-e18ecbb05110 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/LICENSE +- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20200324143707-d3edc9973b7e/PATENTS +- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml index 1a637ee41..3d25adc5d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/sys/internal/unsafeheader -version: v0.0.0-20210124154548-22da62e12c0c +version: v0.0.0-20210806184541-e5e7981a1069 type: go summary: Package unsafeheader contains header declarations for the Go runtime's slice and string implementations. homepage: https://pkg.go.dev/golang.org/x/sys/internal/unsafeheader license: bsd-3-clause licenses: -- sources: sys@v0.0.0-20210124154548-22da62e12c0c/LICENSE +- sources: sys@v0.0.0-20210806184541-e5e7981a1069/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.0.0-20210124154548-22da62e12c0c/PATENTS +- sources: sys@v0.0.0-20210806184541-e5e7981a1069/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 3cd8c5c9a..965526ae3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.0.0-20210124154548-22da62e12c0c +version: v0.0.0-20210806184541-e5e7981a1069 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.0.0-20210124154548-22da62e12c0c/LICENSE +- sources: sys@v0.0.0-20210806184541-e5e7981a1069/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.0.0-20210124154548-22da62e12c0c/PATENTS +- sources: sys@v0.0.0-20210806184541-e5e7981a1069/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index ca50fb8c1..29a8d762c 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/impl.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,14 +1,14 @@ --- -name: google.golang.org/protobuf/internal/impl -version: v1.25.0 +name: golang.org/x/text/internal/language +version: v0.3.6 type: go summary: -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/impl +homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: text@v0.3.6/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: text@v0.3.6/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml similarity index 89% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index 448146172..308be1aa7 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/set.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,14 +1,14 @@ --- -name: google.golang.org/protobuf/internal/set -version: v1.25.0 +name: golang.org/x/text/internal/language/compact +version: v0.3.6 type: go -summary: Package set provides simple set data structures for uint64s. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/set +summary: Package compact defines a compact representation of language tags. +homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: text@v0.3.6/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: text@v0.3.6/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml similarity index 87% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index 8bd7b05f4..bb43d6084 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,15 +1,14 @@ --- -name: google.golang.org/protobuf/internal/encoding/tag -version: v1.25.0 +name: golang.org/x/text/internal/tag +version: v0.3.6 type: go -summary: Package tag marshals and unmarshals the legacy struct tags as generated by - historical versions of protoc-gen-go. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/tag +summary: Package tag contains functionality handling tags and related data. +homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: text@v0.3.6/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -36,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: text@v0.3.6/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml similarity index 90% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index f8bd57ab8..918f0c876 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/mapsort.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,14 +1,14 @@ --- -name: google.golang.org/protobuf/internal/mapsort -version: v1.25.0 +name: golang.org/x/text/language +version: v0.3.6 type: go -summary: Package mapsort provides sorted access to maps. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/mapsort +summary: Package language implements BCP 47 language tags and related functionality. +homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: text@v0.3.6/LICENSE text: | - Copyright (c) 2018 The Go Authors. All rights reserved. + Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: text@v0.3.6/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index a34aa74fe..6bb75e5d3 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/encoding/protowire -version: v1.25.0 +version: v1.28.0 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml deleted file mode 100644 index 9e1e10faf..000000000 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descfmt.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: google.golang.org/protobuf/internal/descfmt -version: v1.25.0 -type: go -summary: Package descfmt provides functionality to format descriptors. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/descfmt -license: bsd-3-clause -licenses: -- sources: protobuf@v1.25.0/LICENSE - text: | - Copyright (c) 2018 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml deleted file mode 100644 index 47bd8241c..000000000 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/descopts.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: google.golang.org/protobuf/internal/descopts -version: v1.25.0 -type: go -summary: Package descopts contains the nil pointers to concrete descriptor options. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/descopts -license: bsd-3-clause -licenses: -- sources: protobuf@v1.25.0/LICENSE - text: | - Copyright (c) 2018 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index aaf47d91f..86ddb7109 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/detrand -version: v1.25.0 +version: v1.28.0 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index afea604b3..a42ad9fde 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/encoding/messageset -version: v1.25.0 +version: v1.28.0 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index 521973877..3bd1b5195 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/errors -version: v1.25.0 +version: v1.28.0 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml deleted file mode 100644 index 14f27c978..000000000 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filedesc.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: google.golang.org/protobuf/internal/filedesc -version: v1.25.0 -type: go -summary: Package filedesc provides functionality for constructing descriptors. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/filedesc -license: bsd-3-clause -licenses: -- sources: protobuf@v1.25.0/LICENSE - text: | - Copyright (c) 2018 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml deleted file mode 100644 index 21b3d6775..000000000 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/filetype.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: google.golang.org/protobuf/internal/filetype -version: v1.25.0 -type: go -summary: Package filetype provides functionality for wrapping descriptors with Go - type information. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/filetype -license: bsd-3-clause -licenses: -- sources: protobuf@v1.25.0/LICENSE - text: | - Copyright (c) 2018 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index 9613d3d5b..9f82c1e20 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/flags -version: v1.25.0 +version: v1.28.0 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index ad64e2b49..1829b4596 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/genid -version: v1.25.0 +version: v1.28.0 type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml similarity index 93% rename from .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml rename to .licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml index 847d8aaa6..607a513a2 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/fieldsort.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml @@ -1,12 +1,12 @@ --- -name: google.golang.org/protobuf/internal/fieldsort -version: v1.25.0 +name: google.golang.org/protobuf/internal/order +version: v1.28.0 type: go -summary: Package fieldsort defines an ordering of fields. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/fieldsort +summary: Package order provides ordered access to messages and maps. +homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index 7560511bd..0cafc67d3 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/pragma -version: v1.25.0 +version: v1.28.0 type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index 0a0bbffda..3934ee997 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/strs -version: v1.25.0 +version: v1.28.0 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml deleted file mode 100644 index 87c82778d..000000000 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/version.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: google.golang.org/protobuf/internal/version -version: v1.25.0 -type: go -summary: Package version records versioning information about this module. -homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/version -license: bsd-3-clause -licenses: -- sources: protobuf@v1.25.0/LICENSE - text: | - Copyright (c) 2018 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index 2936acdae..13601188e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/proto -version: v1.25.0 +version: v1.28.0 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 2f862928a..1b60e723d 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/reflect/protoreflect -version: v1.25.0 +version: v1.28.0 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index 685197adb..67dc8e379 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/reflect/protoregistry -version: v1.25.0 +version: v1.28.0 type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index 9e52377b6..d6d0d8a92 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/runtime/protoiface -version: v1.25.0 +version: v1.28.0 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface license: bsd-3-clause licenses: -- sources: protobuf@v1.25.0/LICENSE +- sources: protobuf@v1.28.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS +- sources: protobuf@v1.28.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml deleted file mode 100644 index fab599cb5..000000000 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoimpl.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: google.golang.org/protobuf/runtime/protoimpl -version: v1.25.0 -type: go -summary: Package protoimpl contains the default implementation for messages generated - by protoc-gen-go. -homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoimpl -license: bsd-3-clause -licenses: -- sources: protobuf@v1.25.0/LICENSE - text: | - Copyright (c) 2018 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.25.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/go.mod b/go.mod index 8f5330aaa..a6d574718 100644 --- a/go.mod +++ b/go.mod @@ -11,14 +11,12 @@ require ( github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect github.com/getlantern/systray v1.1.0 - github.com/gin-gonic/gin v1.7.7 + github.com/gin-gonic/gin v1.8.0 github.com/go-ini/ini v1.62.0 - github.com/golang/protobuf v1.4.3 // indirect github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 github.com/h2non/filetype v1.1.0 // indirect - github.com/json-iterator/go v1.1.10 // indirect github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 github.com/kr/binarydist v0.1.0 @@ -28,7 +26,6 @@ require ( github.com/miekg/dns v1.1.35 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.1 // indirect github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228 github.com/pkg/errors v0.9.1 github.com/pkg/sftp v1.12.0 // indirect @@ -36,15 +33,13 @@ require ( github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c github.com/stretchr/testify v1.7.1 - github.com/ugorji/go v1.2.3 // indirect github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 go.bug.st/serial v1.3.0 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 - golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c + golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 + golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa gopkg.in/ini.v1 v1.62.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/go.sum b/go.sum index 5d4e52a50..391f1be19 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,8 @@ github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1y github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.7.7 h1:3DoBmSbJbZAWqXJC3SLjAPfutPJJRN1U5pALB7EeTTs= -github.com/gin-gonic/gin v1.7.7/go.mod h1:axIBovoeJpVj8S3BwE0uPMTeReE4+AfFtqpqaZ1qq1U= +github.com/gin-gonic/gin v1.8.0 h1:4WFH5yycBMA3za5Hnl425yd9ymdw1XPm4666oab+hv4= +github.com/gin-gonic/gin v1.8.0/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= @@ -91,14 +91,16 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= -github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.10.0 h1:I7mrTYv78z8k8VXa/qJlOlEXn/nBh+BF8dHX5nt/dr0= +github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= +github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -108,7 +110,6 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -116,15 +117,15 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 h1:OL2d27ueTKnlQJoqLW2fc9pWYulFnJYLWzomGV7HqZo= github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4/go.mod h1:Pw1H1OjSNHiqeuxAduB1BKYXIwFtsyrY47nEqSgEiCM= @@ -148,9 +149,8 @@ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANyt github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/clock v0.0.0-20180524022203-d293bb356ca4/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA= @@ -179,13 +179,16 @@ github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2spuF/i/Qlsvz1Us= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -196,8 +199,8 @@ github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0Re github.com/marcinbor85/gohex v0.0.0-20210308104911-55fb1c624d84/go.mod h1:Pb6XcsXyropB9LNHhnqaknG/vEwYztLkQzVCHv8sQ3M= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= @@ -214,11 +217,9 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= @@ -227,7 +228,11 @@ github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228/go.mod h1:MGuVJ1 github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU= +github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -249,6 +254,9 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e/go.mod h1:tm/wZFQ8e24NYaBGIlnO2WGCAi67re4HHuOm0sftE/M= @@ -286,17 +294,16 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go v1.2.3 h1:WbFSXLxDFKVN69Sk8t+XHGzVCD7R8UoAATR8NqZgTbk= -github.com/ugorji/go v1.2.3/go.mod h1:5l8GZ8hZvmL4uMdy+mhCO1LjswGRYco9Q3HfuisB21A= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.3 h1:/mVYEV+Jo3IZKeA5gBngN0AvNnQltEDkR+eQikkWQu0= -github.com/ugorji/go/codec v1.2.3/go.mod h1:5FxzDJIgeiWJZslYHPj+LS1dq1ZBQVelZFnjsFGI/Uc= +github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= +github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= +github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= @@ -328,13 +335,13 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 h1:xYJJ3S178yv++9zXV/hnr29plCAGO9vAFG9dorqaFQc= -golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -350,8 +357,9 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -371,16 +379,21 @@ golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069 h1:siQdpVirKtzPhKl3lZWozZraCFObP8S1v6PRp0bLrtU= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -411,15 +424,19 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -438,11 +455,11 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From a9240d76bdbd4a9d08899cd9c05d48c3db442783 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 00:18:53 +0000 Subject: [PATCH 050/233] Bump github.com/stretchr/testify from 1.7.1 to 1.7.2 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.1 to 1.7.2. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.7.1...v1.7.2) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index a6d574718..6f3822c1d 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/stretchr/testify v1.7.1 + github.com/stretchr/testify v1.7.2 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 diff --git a/go.sum b/go.sum index 391f1be19..9f0818e4f 100644 --- a/go.sum +++ b/go.sum @@ -295,8 +295,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= @@ -341,7 +342,6 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 h1:XQyxROzUlZH+WIQwySDgnISgOivlhjIEwaQaJEJrrN0= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -459,7 +459,8 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From ab74548dcb9fcb1e29fdb8e09dbb1d86f049d94a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jun 2022 09:48:38 +0200 Subject: [PATCH 051/233] Bump github.com/gin-gonic/gin from 1.8.0 to 1.8.1 (#715) * Bump github.com/gin-gonic/gin from 1.8.0 to 1.8.1 Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/gin-gonic/gin/releases) - [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md) - [Commits](https://github.com/gin-gonic/gin/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: github.com/gin-gonic/gin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix deps Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/gin-gonic/gin.dep.yml | 624 +++++++++++------- .../github.com/gin-gonic/gin/binding.dep.yml | 4 +- .../gin-gonic/gin/internal/bytesconv.dep.yml | 4 +- .../gin-gonic/gin/internal/json.dep.yml | 4 +- .../github.com/gin-gonic/gin/render.dep.yml | 4 +- go.mod | 2 +- go.sum | 4 +- 7 files changed, 407 insertions(+), 239 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml index 058c4062f..501e1b0e3 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gin-gonic/gin -version: v1.8.0 +version: v1.8.1 type: go summary: Package gin implements a HTTP web framework called gin. homepage: https://pkg.go.dev/github.com/gin-gonic/gin @@ -36,237 +36,405 @@ notices: ## gin 1.x series authors - **Gin Core Team:** Bo-Yi Wu (@appleboy), 田欧 (@thinkerou), Javier Provecho (@javierprovecho) + **Gin Core Team:** Bo-Yi Wu (@appleboy), thinkerou (@thinkerou), Javier Provecho (@javierprovecho) ## gin 0.x series authors **Maintainers:** Manu Martinez-Almeida (@manucorporat), Javier Provecho (@javierprovecho) - People and companies, who have contributed, in alphabetical order. - - **@858806258 (杰哥)** - - Fix typo in example - - - **@achedeuzot (Klemen Sever)** - - Fix newline debug printing - - - **@adammck (Adam Mckaig)** - - Add MIT license - - - **@AlexanderChen1989 (Alexander)** - - Typos in README - - - **@alexanderdidenko (Aleksandr Didenko)** - - Add support multipart/form-data - - - **@alexandernyquist (Alexander Nyquist)** - - Using template.Must to fix multiple return issue - - ★ Added support for OPTIONS verb - - ★ Setting response headers before calling WriteHeader - - Improved documentation for model binding - - ★ Added Content.Redirect() - - ★ Added tons of Unit tests - - - **@austinheap (Austin Heap)** - - Added travis CI integration - - - **@andredublin (Andre Dublin)** - - Fix typo in comment - - - **@bredov (Ludwig Valda Vasquez)** - - Fix html templating in debug mode - - - **@bluele (Jun Kimura)** - - Fixes code examples in README - - - **@chad-russell** - - ★ Support for serializing gin.H into XML - - - **@dickeyxxx (Jeff Dickey)** - - Typos in README - - Add example about serving static files - - - **@donileo (Adonis)** - - Add NoMethod handler - - - **@dutchcoders (DutchCoders)** - - ★ Fix security bug that allows client to spoof ip - - Fix typo. r.HTMLTemplates -> SetHTMLTemplate - - - **@el3ctro- (Joshua Loper)** - - Fix typo in example - - - **@ethankan (Ethan Kan)** - - Unsigned integers in binding - - - **(Evgeny Persienko)** - - Validate sub structures - - - **@frankbille (Frank Bille)** - - Add support for HTTP Realm Auth - - - **@fmd (Fareed Dudhia)** - - Fix typo. SetHTTPTemplate -> SetHTMLTemplate - - - **@ironiridis (Christopher Harrington)** - - Remove old reference - - - **@jammie-stackhouse (Jamie Stackhouse)** - - Add more shortcuts for router methods - - - **@jasonrhansen** - - Fix spelling and grammar errors in documentation - - - **@JasonSoft (Jason Lee)** - - Fix typo in comment - - - **@jincheng9 (Jincheng Zhang)** - - ★ support TSR when wildcard follows named param - - Fix errors and typos in comments - - - **@joiggama (Ignacio Galindo)** - - Add utf-8 charset header on renders - - - **@julienschmidt (Julien Schmidt)** - - gofmt the code examples - - - **@kelcecil (Kel Cecil)** - - Fix readme typo - - - **@kyledinh (Kyle Dinh)** - - Adds RunTLS() - - - **@LinusU (Linus Unnebäck)** - - Small fixes in README - - - **@loongmxbt (Saint Asky)** - - Fix typo in example - - - **@lucas-clemente (Lucas Clemente)** - - ★ work around path.Join removing trailing slashes from routes - - - **@mattn (Yasuhiro Matsumoto)** - - Improve color logger - - - **@mdigger (Dmitry Sedykh)** - - Fixes Form binding when content-type is x-www-form-urlencoded - - No repeat call c.Writer.Status() in gin.Logger - - Fixes Content-Type for json render - - - **@mirzac (Mirza Ceric)** - - Fix debug printing - - - **@mopemope (Yutaka Matsubara)** - - ★ Adds Godep support (Dependencies Manager) - - Fix variadic parameter in the flexible render API - - Fix Corrupted plain render - - Add Pluggable View Renderer Example - - - **@msemenistyi (Mykyta Semenistyi)** - - update Readme.md. Add code to String method - - - **@msoedov (Sasha Myasoedov)** - - ★ Adds tons of unit tests. - - - **@ngerakines (Nick Gerakines)** - - ★ Improves API, c.GET() doesn't panic - - Adds MustGet() method - - - **@r8k (Rajiv Kilaparti)** - - Fix Port usage in README. - - - **@rayrod2030 (Ray Rodriguez)** - - Fix typo in example - - - **@rns** - - Fix typo in example - - - **@RobAWilkinson (Robert Wilkinson)** - - Add example of forms and params - - - **@rogierlommers (Rogier Lommers)** - - Add updated static serve example - - **@rw-access (Ross Wolf)** - - Added support to mix exact and param routes - - **@se77en (Damon Zhao)** - - Improve color logging - - - **@silasb (Silas Baronda)** - - Fixing quotes in README - - - **@SkuliOskarsson (Skuli Oskarsson)** - - Fixes some texts in README II - - - **@slimmy (Jimmy Pettersson)** - - Added messages for required bindings - - - **@smira (Andrey Smirnov)** - - Add support for ignored/unexported fields in binding - - - **@superalsrk (SRK.Lyu)** - - Update httprouter godeps - - - **@tebeka (Miki Tebeka)** - - Use net/http constants instead of numeric values - - - **@techjanitor** - - Update context.go reserved IPs - - - **@yosssi (Keiji Yoshida)** - - Fix link in README + ------ + People and companies, who have contributed, in alphabetical order. - **@yuyabee** - - Fixed README + - 178inaba <178inaba@users.noreply.github.com> + - A. F + - ABHISHEK SONI + - Abhishek Chanda + - Abner Chen + - AcoNCodes + - Adam Dratwinski + - Adam Mckaig + - Adam Zielinski + - Adonis + - Alan Wang + - Albin Gilles + - Aleksandr Didenko + - Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> + - Alex + - Alexander + - Alexander Lokhman + - Alexander Melentyev <55826637+alexander-melentyev@users.noreply.github.com> + - Alexander Nyquist + - Allen Ren + - AllinGo + - Ammar Bandukwala + - An Xiao (Luffy) + - Andre Dublin <81dublin@gmail.com> + - Andrew Szeto + - Andrey Abramov + - Andrey Nering + - Andrey Smirnov + - Andrii Bubis + - André Bazaglia + - Andy Pan + - Antoine GIRARD + - Anup Kumar Panwar <1anuppanwar@gmail.com> + - Aravinth Sundaram + - Artem + - Ashwani + - Aurelien Regat-Barrel + - Austin Heap + - Barnabus + - Bo-Yi Wu + - Boris Borshevsky + - Boyi Wu + - BradyBromley <51128276+BradyBromley@users.noreply.github.com> + - Brendan Fosberry + - Brian Wigginton + - Carlos Eduardo + - Chad Russell + - Charles + - Christian Muehlhaeuser + - Christian Persson + - Christopher Harrington + - Damon Zhao + - Dan Markham + - Dang Nguyen + - Daniel Krom + - Daniel M. Lambea + - Danieliu + - David Irvine + - David Zhang + - Davor Kapsa + - DeathKing + - Dennis Cho <47404603+forest747@users.noreply.github.com> + - Dmitry Dorogin + - Dmitry Kutakov + - Dmitry Sedykh + - Don2Quixote <35610661+Don2Quixote@users.noreply.github.com> + - Donn Pebe + - Dustin Decker + - Eason Lin + - Edward Betts + - Egor Seredin <4819888+agmt@users.noreply.github.com> + - Emmanuel Goh + - Equim + - Eren A. Akyol + - Eric_Lee + - Erik Bender + - Ethan Kan + - Evgeny Persienko + - Faisal Alam + - Fareed Dudhia + - Filip Figiel + - Florian Polster + - Frank Bille + - Franz Bettag + - Ganlv + - Gaozhen Ying + - George Gabolaev + - George Kirilenko + - Georges Varouchas + - Gordon Tyler + - Harindu Perera + - Helios <674876158@qq.com> + - Henry Kwan + - Henry Yee + - Himanshu Mishra + - Hiroyuki Tanaka + - Ibraheem Ahmed + - Ignacio Galindo + - Igor H. Vieira + - Ildar1111 <54001462+Ildar1111@users.noreply.github.com> + - Iskander (Alex) Sharipov + - Ismail Gjevori + - Ivan Chen + - JINNOUCHI Yasushi + - James Pettyjohn + - Jamie Stackhouse + - Jason Lee + - Javier Provecho + - Javier Provecho + - Javier Provecho + - Javier Provecho Fernandez + - Javier Provecho Fernandez + - Jean-Christophe Lebreton + - Jeff + - Jeremy Loy + - Jim Filippou + - Jimmy Pettersson + - John Bampton + - Johnny Dallas + - Johnny Dallas + - Jonathan (JC) Chen + - Josep Jesus Bigorra Algaba <42377845+averageflow@users.noreply.github.com> + - Josh Horowitz + - Joshua Loper + - Julien Schmidt + - Jun Kimura + - Justin Beckwith + - Justin Israel + - Justin Mayhew + - Jérôme Laforge + - Kacper Bąk <56700396+53jk1@users.noreply.github.com> + - Kamron Batman + - Kane Rogers + - Kaushik Neelichetty + - Keiji Yoshida + - Kel Cecil + - Kevin Mulvey + - Kevin Zhu + - Kirill Motkov + - Klemen Sever + - Kristoffer A. Iversen + - Krzysztof Szafrański + - Kumar McMillan + - Kyle Mcgill + - Lanco <35420416+lancoLiu@users.noreply.github.com> + - Levi Olson + - Lin Kao-Yuan + - Linus Unnebäck + - Lucas Clemente + - Ludwig Valda Vasquez + - Luis GG + - MW Lim + - Maksimov Sergey + - Manjusaka + - Manu MA + - Manu MA + - Manu Mtz-Almeida + - Manu Mtz.-Almeida + - Manuel Alonso + - Mara Kim + - Mario Kostelac + - Martin Karlsch + - Matt Newberry + - Matt Williams + - Matthieu MOREL + - Max Hilbrunner + - Maxime Soulé + - MetalBreaker + - Michael Puncel + - MichaelDeSteven <51652084+MichaelDeSteven@users.noreply.github.com> + - Mike <38686456+icy4ever@users.noreply.github.com> + - Mike Stipicevic + - Miki Tebeka + - Miles + - Mirza Ceric + - Mykyta Semenistyi + - Naoki Takano + - Ngalim Siregar + - Ni Hao + - Nick Gerakines + - Nikifor Seryakov + - Notealot <714804968@qq.com> + - Olivier Mengué + - Olivier Robardet + - Pablo Moncada + - Pablo Moncada + - Panmax <967168@qq.com> + - Peperoncino <2wua4nlyi@gmail.com> + - Philipp Meinen + - Pierre Massat + - Qt + - Quentin ROYER + - README Bot <35302948+codetriage-readme-bot@users.noreply.github.com> + - Rafal Zajac + - Rahul Datta Roy + - Rajiv Kilaparti + - Raphael Gavache + - Ray Rodriguez + - Regner Blok-Andersen + - Remco + - Rex Lee(李俊) + - Richard Lee + - Riverside + - Robert Wilkinson + - Rogier Lommers + - Rohan Pai + - Romain Beuque + - Roman Belyakovsky + - Roman Zaynetdinov <627197+zaynetro@users.noreply.github.com> + - Roman Zaynetdinov + - Ronald Petty + - Ross Wolf <31489089+rw-access@users.noreply.github.com> + - Roy Lou + - Rubi <14269809+codenoid@users.noreply.github.com> + - Ryan <46182144+ryanker@users.noreply.github.com> + - Ryan J. Yoder + - SRK.Lyu + - Sai + - Samuel Abreu + - Santhosh Kumar + - Sasha Melentyev + - Sasha Myasoedov + - Segev Finer + - Sergey Egorov + - Sergey Fedchenko + - Sergey Gonimar + - Sergey Ponomarev + - Serica <943914044@qq.com> + - Shamus Taylor + - Shilin Wang + - Shuo + - Skuli Oskarsson + - Snawoot + - Sridhar Ratnakumar + - Steeve Chailloux + - Sudhir Mishra + - Suhas Karanth + - TaeJun Park + - Tatsuya Hoshino + - Tevic + - Tevin Jeffrey + - The Gitter Badger + - Thibault Jamet + - Thomas Boerger + - Thomas Schaffer + - Tommy Chu + - Tudor Roman + - Uwe Dauernheim + - Valentine Oragbakosi + - Vas N + - Vasilyuk Vasiliy + - Victor Castell + - Vince Yuan + - Vyacheslav Dubinin + - Waynerv + - Weilin Shi <934587911@qq.com> + - Xudong Cai + - Yasuhiro Matsumoto + - Yehezkiel Syamsuhadi + - Yoshiki Nakagawa + - Yoshiyuki Kinjo + - Yue Yang + - ZYunH + - Zach Newburgh + - Zasda Yusuf Mikail + - ZhangYunHao + - ZhiFeng Hu + - Zhu Xi + - a2tt + - ahuigo <1781999+ahuigo@users.noreply.github.com> + - ali + - aljun + - andrea + - andriikushch + - anoty + - awkj + - axiaoxin <254606826@qq.com> + - bbiao + - bestgopher <84328409@qq.com> + - betahu + - bigwheel + - bn4t <17193640+bn4t@users.noreply.github.com> + - bullgare + - chainhelen + - chenyang929 + - chriswhelix + - collinmsn <4130944@qq.com> + - cssivision + - danielalves + - delphinus + - dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> + - dickeyxxx + - edebernis + - error10 + - esplo + - eudore <30709860+eudore@users.noreply.github.com> + - ffhelicopter <32922889+ffhelicopter@users.noreply.github.com> + - filikos <11477309+filikos@users.noreply.github.com> + - forging2012 + - goqihoo + - grapeVine + - guonaihong + - heige + - heige + - hellojukay + - henrylee2cn + - htobenothing + - iamhesir <78344375+iamhesir@users.noreply.github.com> + - ijaa + - ishanray + - ishanray + - itcloudy <272685110@qq.com> + - jarodsong6 + - jasonrhansen + - jincheng9 + - joeADSP <75027008+joeADSP@users.noreply.github.com> + - junfengye + - kaiiak + - kebo + - keke <19yamashita15@gmail.com> + - kishor kunal raj <68464660+kishorkunal-raj@users.noreply.github.com> + - kyledinh + - lantw44 + - likakuli <1154584512@qq.com> + - linfangrong + - linzi <873804682@qq.com> + - llgoer + - long-road <13412081338@163.com> + - mbesancon + - mehdy + - metal A-wing + - micanzhang + - minarc + - mllu + - mopemoepe + - msoedov + - mstmdev + - novaeye + - olebedev + - phithon + - pjgg + - qm012 <67568757+qm012@users.noreply.github.com> + - raymonder jin + - rns + - root@andrea:~# + - sekky0905 <20237968+sekky0905@users.noreply.github.com> + - senhtry + - shadrus + - silasb + - solos + - songjiayang + - sope + - srt180 <30768686+srt180@users.noreply.github.com> + - stackerzzq + - sunshineplan + - syssam + - techjanitor + - techjanitor + - thinkerou + - thinkgo <49174849+thinkgos@users.noreply.github.com> + - tsirolnik + - tyltr <31768692+tylitianrui@users.noreply.github.com> + - vinhha96 + - voidman + - vz + - wei + - weibaohui + - whirosan + - willnewrelic + - wssccc + - wuhuizuo + - xyb + - y-yagi + - yiranzai + - youzeliang + - yugu + - yuyabe + - zebozhuang + - zero11-0203 <93071220+zero11-0203@users.noreply.github.com> + - zesani <7sin@outlook.co.th> + - zhanweidu + - zhing + - ziheng + - zzjin + - 森 優太 <59682979+uta-mori@users.noreply.github.com> + - 杰哥 <858806258@qq.com> + - 涛叔 + - 市民233 + - 尹宝强 + - 梦溪笔谈 + - 飞雪无情 + - 寻寻觅觅的Gopher diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml index c5659d3bd..06e597b40 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/binding -version: v1.8.0 +version: v1.8.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding license: mit licenses: -- sources: gin@v1.8.0/LICENSE +- sources: gin@v1.8.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml index 5ac1e009a..075098277 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/bytesconv -version: v1.8.0 +version: v1.8.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv license: mit licenses: -- sources: gin@v1.8.0/LICENSE +- sources: gin@v1.8.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml index 2dac27ac3..1757210e1 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/json -version: v1.8.0 +version: v1.8.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json license: mit licenses: -- sources: gin@v1.8.0/LICENSE +- sources: gin@v1.8.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml index d1cbda0a8..148875c13 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/render -version: v1.8.0 +version: v1.8.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render license: mit licenses: -- sources: gin@v1.8.0/LICENSE +- sources: gin@v1.8.1/LICENSE text: | The MIT License (MIT) diff --git a/go.mod b/go.mod index 6f3822c1d..e97db48f2 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect github.com/getlantern/systray v1.1.0 - github.com/gin-gonic/gin v1.8.0 + github.com/gin-gonic/gin v1.8.1 github.com/go-ini/ini v1.62.0 github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect diff --git a/go.sum b/go.sum index 9f0818e4f..b79cf8a01 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,8 @@ github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1y github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.8.0 h1:4WFH5yycBMA3za5Hnl425yd9ymdw1XPm4666oab+hv4= -github.com/gin-gonic/gin v1.8.0/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= From 983e1648d87308cfa133a90419e2e0c29dadc386 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jun 2022 10:04:16 +0200 Subject: [PATCH 052/233] Bump actions/setup-python from 3 to 4 (#716) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test-go-integration-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 15210d6a9..3071569ab 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -80,7 +80,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ env.PYTHON_VERSION }} From c4226073398dc16a3d7ff0f06e14e5b095738a21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 08:39:44 +0200 Subject: [PATCH 053/233] Bump github.com/stretchr/testify from 1.7.2 to 1.7.4 (#717) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.2 to 1.7.4. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.7.2...v1.7.4) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e97db48f2..30a02d2ce 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/stretchr/testify v1.7.2 + github.com/stretchr/testify v1.7.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 diff --git a/go.sum b/go.sum index b79cf8a01..bd102a291 100644 --- a/go.sum +++ b/go.sum @@ -290,14 +290,15 @@ github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jW github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.7.4 h1:wZRexSlwd7ZXfKINDLsO4r7WBt3gTKONc6K/VesHvHM= +github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From b804d66ddac65584d015b5ee900f16ecbcd32e36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jun 2022 00:19:42 +0000 Subject: [PATCH 054/233] Bump github.com/stretchr/testify from 1.7.4 to 1.7.5 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.4 to 1.7.5. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.7.4...v1.7.5) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 30a02d2ce..d175823a4 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/stretchr/testify v1.7.4 + github.com/stretchr/testify v1.7.5 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 diff --git a/go.sum b/go.sum index bd102a291..2afb1947c 100644 --- a/go.sum +++ b/go.sum @@ -297,8 +297,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.4 h1:wZRexSlwd7ZXfKINDLsO4r7WBt3gTKONc6K/VesHvHM= -github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.7.5 h1:s5PTfem8p8EbKQOctVV53k6jCJt3UX4IEJzwh+C324Q= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From f826ea9dfe6d72e947d64905aff0560ad3053f99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:23:30 +0000 Subject: [PATCH 055/233] Bump github.com/stretchr/testify from 1.7.5 to 1.8.0 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.5 to 1.8.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.7.5...v1.8.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d175823a4..692787b7a 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/stretchr/testify v1.7.5 + github.com/stretchr/testify v1.8.0 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 diff --git a/go.sum b/go.sum index 2afb1947c..7608e220f 100644 --- a/go.sum +++ b/go.sum @@ -297,8 +297,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.5 h1:s5PTfem8p8EbKQOctVV53k6jCJt3UX4IEJzwh+C324Q= -github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From c1a68ac5b5e2702de2095dc42b3ee6b60914acac Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 28 Jul 2022 12:01:15 +0200 Subject: [PATCH 056/233] [skip-changelog] bump github runner to macos-11 (#720) see https://github.com/actions/virtual-environments/issues/5583 --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 22 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 7272e2c10..fc3d24217 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -64,7 +64,7 @@ jobs: #use the strategy instead because we still use the native build strategy: matrix: - os: [ubuntu-18.04, windows-2019, macos-10.15] + os: [ubuntu-18.04, windows-2019, macos-11] arch: [-amd64] include: - os: windows-2019 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a57cc428b..bf79f6a0d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,7 +22,7 @@ jobs: build: strategy: matrix: - os: [ubuntu-18.04, windows-2019, macos-10.15] + os: [ubuntu-18.04, windows-2019, macos-11] arch: [-amd64] include: - os: windows-2019 @@ -118,7 +118,7 @@ jobs: CGO_CFLAGS: -mmacosx-version-min=10.11 CGO_LDFLAGS: -mmacosx-version-min=10.11 run: task go:build - if: matrix.os == 'macos-10.15' + if: matrix.os == 'macos-11' # this will create `public/` dir with compressed full bin (/-.gz) and a json file - name: Create autoupdate files @@ -150,7 +150,7 @@ jobs: needs: build strategy: matrix: # to allow support for future architectures - os: [macos-10.15] + os: [macos-11] arch: [-amd64] runs-on: ${{ matrix.os }} @@ -231,7 +231,7 @@ jobs: strategy: fail-fast: false # if one os is failing continue nonetheless matrix: # used to generate installers for different OS and not for runs-on - os: [ubuntu-18.04, windows-2019, macos-10.15] + os: [ubuntu-18.04, windows-2019, macos-11] arch: [-amd64] include: - os: ubuntu-18.04 @@ -250,7 +250,7 @@ jobs: executable-path: artifacts/windows/ extension: .exe installer-extension: .exe - - os: macos-10.15 + - os: macos-11 browser: safari install-builder-name: osx executable-path: 'skel/ArduinoCreateAgent.app/Contents/MacOS/' @@ -275,7 +275,7 @@ jobs: # zip artifacts do not mantain executable permission - name: Make executable run: chmod -v +x ${{ matrix.executable-path }}arduino-create-agent* - if: matrix.os == 'ubuntu-18.04' || matrix.os == 'macos-10.15' + if: matrix.os == 'ubuntu-18.04' || matrix.os == 'macos-11' - name: Rename executable to Arduino_Create_Agent run: mv -v ${{ matrix.executable-path }}arduino-create-agent${{ matrix.extension }} ${{ matrix.executable-path }}Arduino_Create_Agent${{ matrix.extension }} @@ -286,7 +286,7 @@ jobs: - name: get year run: echo "YEAR=$(date "+%Y")" >> $GITHUB_ENV - if: matrix.os == 'macos-10.15' + if: matrix.os == 'macos-11' - name: Generate Info.plist for MacOS run: | @@ -309,7 +309,7 @@ jobs: EOF - if: matrix.os == 'macos-10.15' + if: matrix.os == 'macos-11' - name: Save InstallBuilder license to file run: echo "${{ secrets.INSTALLER_LICENSE }}" > /tmp/license.xml @@ -320,7 +320,7 @@ jobs: - name: Save macos signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_P12 }} - if: matrix.os == 'macos-10.15' + if: matrix.os == 'macos-11' # win(edge),mac(safari) -> CERT_INSTALL and win,mac:(ff,chrome) -> CHOICE_CERT_INSTALL # installbuilder reads the env vars with certs paths and use it to sign the installer. @@ -332,7 +332,7 @@ jobs: cp -vr ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-chrome${{matrix.installer-extension}} mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox${{matrix.installer-extension}} rm -r ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-C* - if: matrix.os == 'windows-2019' || matrix.os == 'macos-10.15' + if: matrix.os == 'windows-2019' || matrix.os == 'macos-11' # linux - name: Launch Bitrock installbuilder-20 with NO_CERT_INSTALL @@ -359,7 +359,7 @@ jobs: browser: [safari, firefox, chrome] arch: [-amd64] - runs-on: macos-10.15 + runs-on: macos-11 steps: - name: Download artifact uses: actions/download-artifact@v3 From e427675765b1f355b46eb37302638c4eda1ead15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Sep 2022 00:21:03 +0000 Subject: [PATCH 057/233] Bump actions/stale from 5 to 6 Bumps [actions/stale](https://github.com/actions/stale) from 5 to 6. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 1c81c5055..95568ba16 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v5 + - uses: actions/stale@v6 with: stale-issue-message: 'This issue has been marked as stale because it has been open for more than 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' stale-issue-label: 'status: stale' From 55ef1fc9170288065e1a077d88ba6e124f702c56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 00:11:26 +0000 Subject: [PATCH 058/233] Bump geekyeggo/delete-artifact from 1 to 2 Bumps [geekyeggo/delete-artifact](https://github.com/geekyeggo/delete-artifact) from 1 to 2. - [Release notes](https://github.com/geekyeggo/delete-artifact/releases) - [Commits](https://github.com/geekyeggo/delete-artifact/compare/v1...v2) --- updated-dependencies: - dependency-name: geekyeggo/delete-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/sync-labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 9ce51aa09..4376e4c49 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -115,7 +115,7 @@ jobs: path: ${{ env.CONFIGURATIONS_FOLDER }} - name: Remove unneeded artifact - uses: geekyeggo/delete-artifact@v1 + uses: geekyeggo/delete-artifact@v2 with: name: ${{ env.CONFIGURATIONS_ARTIFACT }} From f71b9a04a9044560a43eb026779cfa82cde6568e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 14 Oct 2022 11:56:07 +0200 Subject: [PATCH 059/233] add new origin to the agent (#728) --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index 83346846d..2f33b6aba 100755 --- a/main.go +++ b/main.go @@ -342,6 +342,7 @@ func loop() { extraOrigins := []string{ "https://create.arduino.cc", + "https://cloud.arduino.cc", } for i := 8990; i < 9001; i++ { From 43097eec80d2c37dbc4aac3b0189cc604d8179cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 00:16:49 +0000 Subject: [PATCH 060/233] Bump carlosperate/download-file-action from 1 to 2 Bumps [carlosperate/download-file-action](https://github.com/carlosperate/download-file-action) from 1 to 2. - [Release notes](https://github.com/carlosperate/download-file-action/releases) - [Commits](https://github.com/carlosperate/download-file-action/compare/v1...v2) --- updated-dependencies: - dependency-name: carlosperate/download-file-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/sync-labels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 4376e4c49..70085bdef 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -31,7 +31,7 @@ jobs: - name: Download JSON schema for labels configuration file id: download-schema - uses: carlosperate/download-file-action@v1 + uses: carlosperate/download-file-action@v2 with: file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/arduino-tooling-gh-label-configuration-schema.json location: ${{ runner.temp }}/label-configuration-schema @@ -66,7 +66,7 @@ jobs: steps: - name: Download - uses: carlosperate/download-file-action@v1 + uses: carlosperate/download-file-action@v2 with: file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} From b52a17a328d796cd1b786d4e74c3d3f012c8ad6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 00:17:08 +0000 Subject: [PATCH 061/233] Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 692787b7a..b5f732c70 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c - github.com/stretchr/testify v1.8.0 + github.com/stretchr/testify v1.8.1 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 diff --git a/go.sum b/go.sum index 7608e220f..2ce2aafb9 100644 --- a/go.sum +++ b/go.sum @@ -291,14 +291,16 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From cf856996abb27ec63f4a6f6b43087ecedc5780d6 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 18 Nov 2022 14:48:51 +0100 Subject: [PATCH 062/233] bump installbuilder to 22.10.0 (#732) https://github.com/flickr-downloadr/ubuntu-install-builder/commit/e8350c83298baf54eedd1d48643956242e874e40 --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bf79f6a0d..7900ec24c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -215,7 +215,7 @@ jobs: env: # vars used by installbuilder - INSTALLBUILDER_PATH: "/opt/installbuilder-21.9.0/bin/builder" + INSTALLBUILDER_PATH: "/opt/installbuilder-22.10.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" # vars passed to installbuilder to install https certs automatically CERT_INSTALL: "ask_certificates_install=CI" # win(edge),mac(safari) @@ -257,7 +257,7 @@ jobs: installer-extension: .app container: - image: floydpink/ubuntu-install-builder:21.9.0 + image: floydpink/ubuntu-install-builder:22.10.0 steps: - name: Checkout From 31b0a9d2f4f986922e8bd25332ce0914cb5ae86e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 29 Nov 2022 14:40:05 +0100 Subject: [PATCH 063/233] The CI is now able to produce valid macOS Ventura bundles (#740) * rename release workflow * bump macos runner to macos-12 * bump ubuntu runner to ubuntu 20.04 * add project name env var, even in the `bundle_id` * rework a bit notarization step * move the bundle generation to a dedicated step: This way we can notarize all the bundle and not only the binary. * use the zip notarized file coming from gon, this requires changes in the installer config * use this fork (https://github.com/darkvertex/gon/tree/deep_sign_support) to use deep notarization, since this is not yet merged https://github.com/mitchellh/gon/pull/42 * test (move the config.ini) to see if notarization works * fix zip archive being included in the installer * github is deprecating `set-output commands` https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ * forgot "$", special encoding is not needed anymore after 62f7d9d2550864692f9fabe691dab31c4418643c https://github.com/orgs/community/discussions/35994#discussioncomment-3971397 * fix `unable-to-process-file-command-output-successfully` https://stackoverflow.com/questions/74137120/how-to-fix-or-avoid-error-unable-to-process-file-command-output-successfully --- .github/workflows/check-certificates.yml | 4 +- .../workflows/check-go-dependencies-task.yml | 2 +- .github/workflows/check-license.yml | 2 +- .github/workflows/publish-go-tester-task.yml | 4 +- .github/workflows/release.yml | 301 +++++++++++------- .github/workflows/sync-labels.yml | 2 +- .../workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 8 files changed, 201 insertions(+), 118 deletions(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 92dec0148..28e8297c1 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -26,7 +26,7 @@ jobs: if: > (github.event_name != 'pull_request' && github.repository == 'arduino/arduino-create-agent') || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'arduino/arduino-create-agent') - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -109,7 +109,7 @@ jobs: echo "Certificate expiration date: $EXPIRATION_DATE" echo "Days remaining before expiration: $DAYS_BEFORE_EXPIRATION" - echo "::set-output name=days::$DAYS_BEFORE_EXPIRATION" + echo "days=$DAYS_BEFORE_EXPIRATION" >> $GITHUB_OUTPUT - name: Check if expiration notification period has been reached id: check-expiration diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 75c8fc22b..2c792b607 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -56,7 +56,7 @@ jobs: RESULT="false" fi - echo "::set-output name=result::$RESULT" + echo "result=$RESULT" >> $GITHUB_OUTPUT check-cache: needs: run-determination diff --git a/.github/workflows/check-license.yml b/.github/workflows/check-license.yml index 79baf0ca3..ee9362b77 100644 --- a/.github/workflows/check-license.yml +++ b/.github/workflows/check-license.yml @@ -54,7 +54,7 @@ jobs: RESULT="false" fi - echo "::set-output name=result::$RESULT" + echo "result=$RESULT" >> $GITHUB_OUTPUT check-license: needs: run-determination diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index fc3d24217..8b3ef4a69 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -54,7 +54,7 @@ jobs: RESULT="false" fi - echo "::set-output name=result::$RESULT" + echo "result=$RESULT" >> $GITHUB_OUTPUT #this job is heavily customized because the build is quite a bit different from other tooling team projects build: @@ -64,7 +64,7 @@ jobs: #use the strategy instead because we still use the native build strategy: matrix: - os: [ubuntu-18.04, windows-2019, macos-11] + os: [ubuntu-20.04, windows-2019, macos-12] arch: [-amd64] include: - os: windows-2019 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7900ec24c..67e89094c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: release +name: Release on: push: @@ -6,6 +6,8 @@ on: - "[0-9]+.[0-9]+.[0-9]+*" env: + # As defined by the Taskfile's PROJECT_NAME variable + PROJECT_NAME: arduino-create-agent TARGET: "/CreateAgent/Stable" OLD_TARGET: "/CreateBridge/" # compatibility with older releases (we can't change config.ini) VERSION_TARGET: "arduino-create-static/agent-metadata/" @@ -13,6 +15,8 @@ env: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: "us-east-1" # or https://github.com/aws/aws-cli/issues/5623 KEYCHAIN: "sign.keychain" + KEYCHAIN_PASSWORD: keychainpassword # Arbitrary password for a keychain that exists only for the duration of the job, so not secret + GON_CONFIG_PATH: gon.config.hcl INSTALLER_CERT_MAC_PATH: "/tmp/ArduinoCerts2020.p12" AC_USERNAME: ${{ secrets.AC_USERNAME }} # used by gon AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon @@ -22,7 +26,7 @@ jobs: build: strategy: matrix: - os: [ubuntu-18.04, windows-2019, macos-11] + os: [ubuntu-20.04, windows-2019, macos-12] arch: [-amd64] include: - os: windows-2019 @@ -49,7 +53,7 @@ jobs: run: | curl -L -s https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip -o /tmp/3.1.0.zip unzip -p /tmp/3.1.0.zip semver-tool-3.1.0/src/semver >/tmp/semver && chmod +x /tmp/semver - if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "::set-output name=IS_PRE::true"; fi + if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "IS_PRE=true" >> $GITHUB_OUTPUT; fi - name: Disable EOL conversions run: git config --global core.autocrlf false @@ -65,7 +69,7 @@ jobs: # dependencies used for compiling the GUI - name: Install Dependencies (Linux) run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev - if: matrix.os == 'ubuntu-18.04' + if: matrix.os == 'ubuntu-20.04' - name: Install Go deps # Since 10/23/2019 pwsh is the default shell @@ -87,12 +91,12 @@ jobs: - name: Build the Agent for linux run: task go:build - if: matrix.os == 'ubuntu-18.04' + if: matrix.os == 'ubuntu-20.04' # build the agent without GUI support (no tray icon) - name: Build the Agent-cli run: task go:build-cli - if: matrix.os == 'ubuntu-18.04' + if: matrix.os == 'ubuntu-20.04' # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. @@ -118,15 +122,15 @@ jobs: CGO_CFLAGS: -mmacosx-version-min=10.11 CGO_LDFLAGS: -mmacosx-version-min=10.11 run: task go:build - if: matrix.os == 'macos-11' + if: matrix.os == 'macos-12' # this will create `public/` dir with compressed full bin (/-.gz) and a json file - name: Create autoupdate files - run: go-selfupdate arduino-create-agent${{ matrix.ext }} ${TAG_VERSION} + run: go-selfupdate ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} if: matrix.arch != '-386' && steps.prerelease.outputs.IS_PRE != 'true' - name: Create autoupdate files for win32 - run: go-selfupdate -platform windows${{ matrix.arch }} arduino-create-agent${{ matrix.ext }} ${TAG_VERSION} + run: go-selfupdate -platform windows${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} if: matrix.arch == '-386' && matrix.os == 'windows-2019' && steps.prerelease.outputs.IS_PRE != 'true' - name: Upload autoupdate files to Arduino downloads servers @@ -139,79 +143,165 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} + name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}${{ matrix.arch }} path: | - arduino-create-agent* + ${{ env.PROJECT_NAME }}* config.ini if-no-files-found: error - # The code-sign-mac-executable job will download the macos artifact from the previous job, sign e notarize the binary and re-upload it. - code-sign-mac-executable: + create-macos-bundle: needs: build - strategy: - matrix: # to allow support for future architectures - os: [macos-11] - arch: [-amd64] - runs-on: ${{ matrix.os }} + runs-on: macos-12 + env: + EXE_PATH: "skel/ArduinoCreateAgent.app/Contents/MacOS/" steps: + - name: Checkout + uses: actions/checkout@v3 + with: + repository: 'bcmi-labs/arduino-create-agent-installer' # the repo which contains the bundle structure and icons + token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} + - name: Download artifact uses: actions/download-artifact@v3 with: - name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} - path: arduino-create-agent + name: ${{ env.PROJECT_NAME }}-macos-12-amd64 + path: ${{ env.EXE_PATH }} + + - name: Remove placeholder file + run: rm -rf ${{ env.EXE_PATH }}.empty + + - name: Move config.ini to the Resources dir + working-directory: ${{ env.EXE_PATH }} + run: mv config.ini ../Resources/ + + # zip artifacts do not mantain executable permission + - name: Make executable + run: chmod -v +x ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} + + - name: Rename executable to Arduino_Create_Agent + run: mv -v ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} ${{ env.EXE_PATH }}Arduino_Create_Agent + + - name: get year + run: echo "YEAR=$(date "+%Y")" >> $GITHUB_ENV + + - name: Generate Info.plist for MacOS + run: | + cat > skel/ArduinoCreateAgent.app/Contents/Info.plist <CFBundlePackageTypeAPPLCFBundleInfoDictionaryVersion6.0 + + CFBundleIconFile AppIcon.icns + + CFBundleName Arduino Create Agent + CFBundleExecutable Arduino_Create_Agent + CFBundleIdentifier create.arduino.cc + + CFBundleVersion ${GITHUB_REF##*/} + NSHumanReadableCopyright © Copyright ${{ env.YEAR }} Arduino LLC + CFBundleShortVersionString ${GITHUB_REF##*/} + LSUIElement + + NSPrincipalClassNSApplication + NSMainNibFileMainMenu + + + EOF + + - name: Tar bundle to keep permissions + run: tar -cvf ArduinoCreateAgent.app.tar -C skel/ . + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: ArduinoCreateAgent.app + path: ArduinoCreateAgent.app.tar + + # The notarize-macos job will download the macos bundle from the previous job, sign, notarize and re-upload it. + notarize-macos: + name: Notarize bundle + runs-on: macos-12 + env: + GON_PATH: ${{ github.workspace }}/gon + needs: create-macos-bundle + + steps: + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: ArduinoCreateAgent.app + + - name: un-Tar bundle + run: tar -xvf ArduinoCreateAgent.app.tar - name: Import Code-Signing Certificates run: | - echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }} - security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }} - security default-keychain -s ${{ env.KEYCHAIN }} - security unlock-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }} - security import ${{ env.INSTALLER_CERT_MAC_PATH }} -k ${{ env.KEYCHAIN }} -f pkcs12 -A -T /usr/bin/codesign -P ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }} - security set-key-partition-list -S apple-tool:,apple: -s -k ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }} + echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > "${{ env.INSTALLER_CERT_MAC_PATH }}" + security create-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}" + security default-keychain -s "${{ env.KEYCHAIN }}" + security unlock-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}" + security import \ + "${{ env.INSTALLER_CERT_MAC_PATH }}" \ + -k "${{ env.KEYCHAIN }}" \ + -f pkcs12 \ + -A \ + -T "/usr/bin/codesign" \ + -P "${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}" + security set-key-partition-list \ + -S apple-tool:,apple: \ + -s \ + -k "${{ env.KEYCHAIN_PASSWORD }}" \ + "${{ env.KEYCHAIN }}" - name: Install gon for code signing and app notarization + uses: actions/checkout@v3 + with: + repository: darkvertex/gon #this fork has support for --deep notarization + path: ${{ env.GON_PATH }} + ref: deep_sign_support + + - name: Build gon + working-directory: ${{ env.GON_PATH }}/cmd/gon/ run: | - wget -q https://github.com/mitchellh/gon/releases/download/v0.2.3/gon_macos.zip - unzip gon_macos.zip -d /usr/local/bin + ls -lah + go build + mv gon /usr/local/bin - name: Write gon config to file # gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20) run: | - cat > gon.config.hcl < "${{ env.GON_CONFIG_PATH }}" <> $GITHUB_ENV - if: matrix.os == 'macos-11' - - - name: Generate Info.plist for MacOS - run: | - cat > skel/ArduinoCreateAgent.app/Contents/Info.plist <CFBundlePackageTypeAPPLCFBundleInfoDictionaryVersion6.0 - - CFBundleIconFile AppIcon.icns - - CFBundleName Arduino Create Agent - CFBundleExecutable Arduino_Create_Agent - CFBundleIdentifier create.arduino.cc - - CFBundleVersion ${GITHUB_REF##*/} - NSHumanReadableCopyright © Copyright ${{ env.YEAR }} Arduino LLC - CFBundleShortVersionString ${GITHUB_REF##*/} - LSUIElement - - NSPrincipalClassNSApplication - NSMainNibFileMainMenu - - - EOF - if: matrix.os == 'macos-11' + run: mv -v ${{ matrix.executable-path }}${{ env.PROJECT_NAME }}_cli${{ matrix.extension }} ${{ matrix.executable-path }}Arduino_Create_Agent_cli${{ matrix.extension }} + if: matrix.os == 'ubuntu-20.04' - name: Save InstallBuilder license to file run: echo "${{ secrets.INSTALLER_LICENSE }}" > /tmp/license.xml @@ -320,7 +396,7 @@ jobs: - name: Save macos signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_P12 }} - if: matrix.os == 'macos-11' + if: matrix.os == 'macos-12' # win(edge),mac(safari) -> CERT_INSTALL and win,mac:(ff,chrome) -> CHOICE_CERT_INSTALL # installbuilder reads the env vars with certs paths and use it to sign the installer. @@ -332,7 +408,7 @@ jobs: cp -vr ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-chrome${{matrix.installer-extension}} mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox${{matrix.installer-extension}} rm -r ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-C* - if: matrix.os == 'windows-2019' || matrix.os == 'macos-11' + if: matrix.os == 'windows-2019' || matrix.os == 'macos-12' # linux - name: Launch Bitrock installbuilder-20 with NO_CERT_INSTALL @@ -342,7 +418,7 @@ jobs: mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox.run cp -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-chrome.tar.gz mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox.tar.gz - if: matrix.os == 'ubuntu-18.04' + if: matrix.os == 'ubuntu-20.04' - name: Upload artifacts uses: actions/upload-artifact@v3 @@ -359,7 +435,7 @@ jobs: browser: [safari, firefox, chrome] arch: [-amd64] - runs-on: macos-11 + runs-on: macos-12 steps: - name: Download artifact uses: actions/download-artifact@v3 @@ -373,16 +449,26 @@ jobs: - name: Import Code-Signing Certificates run: | - echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_PATH }} - security create-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }} - security default-keychain -s ${{ env.KEYCHAIN }} - security unlock-keychain -p ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }} - security import ${{ env.INSTALLER_CERT_MAC_PATH }} -k ${{ env.KEYCHAIN }} -f pkcs12 -A -T /usr/bin/codesign -P ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }} - security set-key-partition-list -S apple-tool:,apple: -s -k ${{ secrets.KEYCHAIN_PASSWORD }} ${{ env.KEYCHAIN }} + echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > "${{ env.INSTALLER_CERT_MAC_PATH }}" + security create-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}" + security default-keychain -s "${{ env.KEYCHAIN }}" + security unlock-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}" + security import \ + "${{ env.INSTALLER_CERT_MAC_PATH }}" \ + -k "${{ env.KEYCHAIN }}" \ + -f pkcs12 \ + -A \ + -T "/usr/bin/codesign" \ + -P "${{ secrets.INSTALLER_CERT_MAC_PASSWORD }}" + security set-key-partition-list \ + -S apple-tool:,apple: \ + -s \ + -k "${{ env.KEYCHAIN_PASSWORD }}" \ + "${{ env.KEYCHAIN }}" - name: Install gon for code signing and app notarization run: | - wget -q https://github.com/mitchellh/gon/releases/download/v0.2.3/gon_macos.zip + wget -q https://github.com/mitchellh/gon/releases/download/v0.2.5/gon_macos.zip unzip gon_macos.zip -d /usr/local/bin - name: Write gon config to file @@ -390,7 +476,7 @@ jobs: run: | cat > gon.config_installer.hcl </tmp/semver && chmod +x /tmp/semver - if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "::set-output name=IS_PRE::true"; fi + if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "IS_PRE=true" >> $GITHUB_OUTPUT; fi # mandatory step because upload-release-action does not support multiple folders - name: prepare artifacts for the release @@ -458,8 +544,8 @@ jobs: update_release_body: false # `true` won't work because trigger type is not release files: | release/*.exe - arduino-create-agent-windows-2019-386/arduino-create-agent.exe - arduino-create-agent-windows-2019-amd64/arduino-create-agent.exe + ${{ env.PROJECT_NAME }}-windows-2019-386/${{ env.PROJECT_NAME }}.exe + ${{ env.PROJECT_NAME }}-windows-2019-amd64/${{ env.PROJECT_NAME }}.exe - name: Create changelog uses: arduino/create-changelog@v1 @@ -472,17 +558,14 @@ jobs: - name: Organize release body message #use sed to clean and format the output markdown style id: release_body run: | - body=$(cat CHANGELOG.md) - body="${body//'%'/'%25'}" - body="${body//$'\n'/'%0A'}" - body="${body//$'\r'/'%0D'}" - vt_title_pre="
\nVirusTotal analysis 🛡\n\n" - vt_links="$(echo ${{ steps.virustotal_step.outputs.analysis}} | sed 's/release\///g' | sed 's/,/\n/g' | sed 's/^/- [/' | sed 's/=/](/' | sed 's/$/)/')" - vt_title_post="\n
" - vt_title_pre="${vt_title_pre//'\n'/'%0A'}" - vt_links="${vt_links//$'\n'/'%0A'}" # replace \n with a special character -> generates a single lines, \n will be reintroduced later - vt_title_post="${vt_title_post//'\n'/'%0A'}" - echo "::set-output name=RBODY::$body'%0A'$vt_title_pre$vt_links$vt_title_post" + echo "RBODY<> $GITHUB_OUTPUT + echo "$(cat CHANGELOG.md)" >> $GITHUB_OUTPUT + echo "
" >> $GITHUB_OUTPUT + echo "VirusTotal analysis 🛡" >> $GITHUB_OUTPUT + echo "" >> $GITHUB_OUTPUT + echo "$(echo ${{ steps.virustotal_step.outputs.analysis}} | sed 's/release\///g' | sed 's/,/\n/g' | sed 's/^/- [/' | sed 's/=/](/' | sed 's/$/)/')" >> $GITHUB_OUTPUT + echo "
" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - name: Create Github Release uses: actions/create-release@v1 diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 70085bdef..6f9c91a91 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -103,7 +103,7 @@ jobs: run: | # Use of this flag in the github-label-sync command will cause it to only check the validity of the # configuration. - echo "::set-output name=flag::--dry-run" + echo "flag=--dry-run" >> $GITHUB_OUTPUT - name: Checkout repository uses: actions/checkout@v3 diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 3071569ab..36f2b2622 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -55,7 +55,7 @@ jobs: RESULT="false" fi - echo "::set-output name=result::$RESULT" + echo "result=$RESULT" >> $GITHUB_OUTPUT test: needs: run-determination diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index eec30beaa..fe20d9af5 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -51,7 +51,7 @@ jobs: RESULT="false" fi - echo "::set-output name=result::$RESULT" + echo "result=$RESULT" >> $GITHUB_OUTPUT test: name: test (${{ matrix.module.path }} - ${{ matrix.operating-system }}) From 4372c8e62c7150c5c46872c1b4e874fec03741d3 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:46:33 +0100 Subject: [PATCH 064/233] remove useless files (#743) --- .drone.sec | 1 - .drone.sec.example | 7 ------ .drone.yml | 61 ---------------------------------------------- 3 files changed, 69 deletions(-) delete mode 100644 .drone.sec delete mode 100644 .drone.sec.example delete mode 100644 .drone.yml diff --git a/.drone.sec b/.drone.sec deleted file mode 100644 index a83bfc1e0..000000000 --- a/.drone.sec +++ /dev/null @@ -1 +0,0 @@ -eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.pr9ZMRbPGFZ6rTQOAmHQJN4RRE8Hmnl6Sn6ek2DogiLA6qIZCCei6RHLppto2tpM1ApM5pLpW64TjGf_mCLIesk_GtnUF6baxrHodcI8EB3VV3CsXU3EJF3_FOk3uSJUOi7hbtn54ztMBL2QKeccUiO-KBC2BHiD8VVpjnY5C-TLYV-1Td2fUZc3QB4eoqeTlvglu0nSvHHGCL89RQU0ZEW_-h_tXXaDrvXS648g-U2B9uwnVgBgBPhQqOzP02cW2-ojgkAC7xNpO_BOWoYouT56kkeM5MEx1XyJ-tAdP0AU8mG3x6mRBbng2nwTiXt9RqIJ01RKysMdgth17SZQ8A.apeQnLTu98uqD1Xl.se-xrnl2-B63chHdq719TO98hjxVIN6qTkCnTv5y__LM7ku-FBmlUnZLKy6jDZfO3Fz0jUNwSxuU2LGJWuJ5-PEQkqhsjJuDNBbrAKbt9oqFpXUKXOyu5yw8f64GHgG0bmlrZS6X04P4JAx6t9pXE0rKV5yktoYLLcTgoHnWm3C8eX7H1ayewDJ_CD2ricdZ5J-YAe4sz1AR2mRPRiyx-LTheTc2sALqZv39_ctOI9weNIGy013Jc_6MchmERmT2c4QKlIhy2ra9CPZsOgyn6d008qse14Q32IP97VJ3KLCq69P7u3y28KGz6btjfurLFP1EuipKhWxpIsE4YWQcf_l-eXxpd-l2SUPFMMNBI6aXItKpPofgjMAPeJzlIkhkXCtfRRWIgDaHlS_eAk0nWaXSQyUljUnR7qaVyCqh.FAYZK3PkD_9u3cXwsD8WSw diff --git a/.drone.sec.example b/.drone.sec.example deleted file mode 100644 index 4e12cc654..000000000 --- a/.drone.sec.example +++ /dev/null @@ -1,7 +0,0 @@ -environment: - DOCKER_USERNAME: "" - DOCKER_PASSWORD: "" - DOCKER_EMAIL: "" - SLACK_WEBHOOK: "" - SLACK_CHANNEL: "" - GITHUB_API_KEY: "" diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index ff3ac6a3d..000000000 --- a/.drone.yml +++ /dev/null @@ -1,61 +0,0 @@ -build: - crosscompilation: - image: arduino/golang-cross - auth_config: - username: $$DOCKER_USERNAME - password: $$DOCKER_PASSWORD - email: $$DOCKER_EMAIL - commands: - - go get github.com/kardianos/govendor - - govendor vet +local - - govendor test +local - # Linux amd64 - - GOOS=linux GOARCH=amd64 CC=gcc CXX=gcc CGO_ENABLED=1 go build -o artifacts/linux-amd64/arduino-create-agent - - cp config.ini artifacts/linux-amd64 - # Darwin amd64 - - GOOS=darwin GOARCH=amd64 CC=o64-clang CXX=o64-clang CGO_ENABLED=1 go build -o artifacts/osx/arduino-create-agent - - cp config.ini artifacts/osx - # Windows 386 - - GOOS=windows GOARCH=386 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-gcc CGO_ENABLED=1 go build -o artifacts/windows/arduino-create-agent.exe -ldflags -H=windowsgui - - cp config.ini artifacts/windows - - zip -r arduino-create-agent.zip artifacts/* - linux32: - image: arduino/golang-linux-32 - commands: - - GOOS=linux GOARCH=386 CC=gcc CXX=gcc CGO_ENABLED=1 go build -o artifacts/linux-386/arduino-create-agent - - cp config.ini artifacts/linux-386 -notify: - slack: - webhook_url: $$SLACK_WEBHOOK - channel: $$SLACK_CHANNEL - username: drone - when: - event: pull_request - template: | - {{#success build.status}} - [{{ repo.name}}] Congrats {{ build.author }}! Your PR works: {{ build.link_url}} - {{else}} - [{{ repo.name}}] Damn {{ build.author }}! Something went wrong with your PR: {{ build.link_url}} - {{/success}} -publish: - github_release: - api_key: $$GITHUB_API_KEY - files: - - arduino-create-agent.zip - checksum: - - md5 - when: - event: tag -notify: - slack: - webhook_url: $$SLACK_WEBHOOK - channel: $$SLACK_CHANNEL - username: drone - when: - event: tag - template: | - {{#success build.status}} - [{{ repo.name}}/{{ build.branch }}] A new release is available: {{ build.link_url}} - {{else}} - [{{ repo.name}}/{{ build.branch }}] Something went wrong while building a new release: {{ build.link_url}} - {{/success}} From 6257da8755c952e02ab99195c1c7b94d3c8a9640 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 2 Dec 2022 10:21:15 +0100 Subject: [PATCH 065/233] Add Lint and check formatting of a Go module workflow (#742) * Add CI workflow to lint and check formatting of Go code On every push and pull request that affects relevant files, check the Go module for: - Common detectable errors in the code. - Use of outdated APIs - Code style violations - Code formatting inconsistency - Misconfiguration * skip gen/ module and design * fix `task go:lint` * fix `go:format` * install dependencies --- .github/workflows/check-go-task.yml | 231 ++ .github/workflows/release.yml | 3 - README.md | 1 + Taskfile.yml | 62 +- bufferflow.go | 1 + bufferflow_default.go | 5 + bufferflow_timed.go | 5 + bufferflow_timedraw.go | 5 + certificates.go | 11 +- conn.go | 9 +- discovery.go | 8 +- hub.go | 8 +- icon/icondarwin.go | 526 ++--- icon/iconlinux.go | 550 ++--- icon/iconwin.go | 3229 ++++++++++++++------------- info.go | 2 +- killbrowser/killbrowser_darwin.go | 3 + killbrowser/killbrowser_linux.go | 3 + killbrowser/killbrowser_windows.go | 3 + main.go | 24 +- redirect_stderr_unix.go | 1 + redirect_stderr_win.go | 1 + serial.go | 6 +- seriallist.go | 8 +- serialport.go | 15 +- systray/systray_fake.go | 1 + systray/systray_real.go | 6 +- tools/download.go | 79 +- tools/hidefile_darwin.go | 2 + tools/hidefile_linux.go | 2 + tools/hidefile_windows.go | 2 + tools/tools.go | 2 + update.go | 4 +- updater/updater.go | 31 +- upload/doc.go | 32 +- utilities/utilities.go | 1 + utilities/utilities_darwin.go | 1 + utilities/utilities_linux.go | 1 + utilities/utilities_windows.go | 1 + v2/http.go | 1 + v2/log.go | 2 + v2/pkgs/pkgs.go | 4 +- v2/pkgs/tools.go | 16 +- 43 files changed, 2600 insertions(+), 2308 deletions(-) create mode 100644 .github/workflows/check-go-task.yml diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml new file mode 100644 index 000000000..7d87493dc --- /dev/null +++ b/.github/workflows/check-go-task.yml @@ -0,0 +1,231 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-go-task.md +name: Check Go + +env: + # See: https://github.com/actions/setup-go/tree/main#supported-version-syntax + GO_VERSION: "1.19" + +# See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows +on: + create: + push: + paths: + - ".github/workflows/check-go-task.ya?ml" + - "Taskfile.ya?ml" + - "**/go.mod" + - "**/go.sum" + - "**.go" + pull_request: + paths: + - ".github/workflows/check-go-task.ya?ml" + - "Taskfile.ya?ml" + - "**/go.mod" + - "**/go.sum" + - "**.go" + schedule: + # Run periodically to catch breakage caused by external changes. + - cron: "0 7 * * WED" + workflow_dispatch: + repository_dispatch: + +jobs: + run-determination: + runs-on: ubuntu-latest + outputs: + result: ${{ steps.determination.outputs.result }} + steps: + - name: Determine if the rest of the workflow should run + id: determination + run: | + RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" + # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. + if [[ + "${{ github.event_name }}" != "create" || + "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX + ]]; then + # Run the other jobs. + RESULT="true" + else + # There is no need to run the other jobs. + RESULT="false" + fi + + echo "result=$RESULT" >> $GITHUB_OUTPUT + + check-errors: + name: check-errors (${{ matrix.module.path }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + module: + # TODO: add paths of all Go modules here + - path: ./ + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Install Dependencies + run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev + + - name: Check for errors + env: + GO_MODULE_PATH: ${{ matrix.module.path }} + run: task go:vet + + check-outdated: + name: check-outdated (${{ matrix.module.path }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + module: + # TODO: add paths of all Go modules here + - path: ./ + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Modernize usages of outdated APIs + env: + GO_MODULE_PATH: ${{ matrix.module.path }} + run: task go:fix + + - name: Check if any fixes were needed + run: git diff --color --exit-code + + check-style: + name: check-style (${{ matrix.module.path }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + module: + # TODO: add paths of all Go modules here + - path: ./ + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Install golint + run: go install golang.org/x/lint/golint@latest + + - name: Check style + env: + GO_MODULE_PATH: ${{ matrix.module.path }} + run: task --silent go:lint + + check-formatting: + name: check-formatting (${{ matrix.module.path }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + module: + # TODO: add paths of all Go modules here + - path: ./ + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Install Task + uses: arduino/setup-task@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + + - name: Format code + env: + GO_MODULE_PATH: ${{ matrix.module.path }} + run: task go:format + + - name: Check formatting + run: git diff --color --exit-code + + check-config: + name: check-config (${{ matrix.module.path }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + module: + # TODO: add paths of all Go modules here + - path: ./ + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Run go mod tidy + working-directory: ${{ matrix.module.path }} + run: go mod tidy + + - name: Check whether any tidying was needed + run: git diff --color --exit-code diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 67e89094c..45ec5151f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -86,9 +86,6 @@ jobs: version: '3.x' repo-token: ${{ secrets.GITHUB_TOKEN }} - - name: Check the code is good - run: task check - - name: Build the Agent for linux run: task go:build if: matrix.os == 'ubuntu-20.04' diff --git a/README.md b/README.md index b2f6e816e..683338e2a 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ [![Test Integration status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-integration-task.yml) [![Check License status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-license.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-license.yml) [![Check Go Dependencies status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml) +[![Check Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml) arduino-create-agent ==================== diff --git a/Taskfile.yml b/Taskfile.yml index 03211249f..f02378e68 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -30,7 +30,7 @@ tasks: desc: Build the project, to use a specific version use `task build TAG_VERSION=x.x.x` dir: "{{.DEFAULT_GO_MODULE_PATH}}" cmds: - - go build -v -i {{default "" .ADDITIONAL_FLAGS}} -o {{default "arduino-create-agent" .APP_NAME}} -ldflags '-X main.version={{default .TAG_TEST .TAG_VERSION}} -X main.git_revision={{.COMMIT}} {{default "" .WIN_FLAGS}}' + - go build -v -i {{default "" .ADDITIONAL_FLAGS}} -o {{default "arduino-create-agent" .APP_NAME}} -ldflags '-X main.version={{default .TAG_TEST .TAG_VERSION}} -X main.commit={{.COMMIT}} {{default "" .WIN_FLAGS}}' vars: COMMIT: sh: git log -n 1 --format=%h @@ -96,22 +96,50 @@ tasks: cmds: - poetry update + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-go-task/Taskfile.yml + go:fix: + desc: Modernize usages of outdated APIs + dir: "{{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}}" + cmds: + - go fix {{default .DEFAULT_GO_PACKAGES .GO_PACKAGES}} + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-go-task/Taskfile.yml + go:format: + desc: Format Go code + dir: "{{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}}" + cmds: + - go fmt {{default .DEFAULT_GO_PACKAGES .GO_PACKAGES}} + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-go-task/Taskfile.yml + go:lint: + desc: Lint Go code + dir: "{{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}}" + cmds: + - | + if ! which golint &>/dev/null; then + echo "golint not installed or not in PATH. Please install: https://github.com/golang/lint#installation" + exit 1 + fi + - | + golint \ + {{default "-min_confidence 0.8 -set_exit_status" .GO_LINT_FLAGS}} \ + {{default .DEFAULT_GO_PACKAGES .GO_PACKAGES}} + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-go-task/Taskfile.yml + go:vet: + desc: Check for errors in Go code + dir: "{{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}}" + cmds: + - go vet {{default .DEFAULT_GO_PACKAGES .GO_PACKAGES}} + check: desc: Check fmt and lint cmds: - - go version - - go fmt {{ default .DEFAULT_TARGETS .TARGETS }} - - test -z $(go fmt {{ default .DEFAULT_TARGETS .TARGETS }}) - - echo 'test ok' - - go vet {{ default .DEFAULT_TARGETS .TARGETS }} - - echo 'vet ok' - # FIXME: too many suggestions are failing the check, I'll fix these one in - # another PR. - # - "'{{.GOLINTBIN}}' {{.GOLINTFLAGS}} {{ default .DEFAULT_TARGETS .TARGETS }}" - # - task: i18n:check - # - task: python:check - # - task: docs:check - # - task: config:check + - task: go:vet + - task: go:lint + - task: python:lint + - task: protoc:check + vars: TAG_TEST: "0.0.0-dev" @@ -123,8 +151,4 @@ vars: DEFAULT_GO_MODULE_PATH: ./ DEFAULT_GO_PACKAGES: sh: | - echo $(cd {{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}} && go list ./... | tr '\n' ' ' || echo '"ERROR: Unable to discover Go packages"') - # check-lint vars - GOLINTBIN: - sh: go list -f {{"{{"}}".Target{{"}}"}}" golang.org/x/lint/golint - GOLINTFLAGS: "-min_confidence 0.8 -set_exit_status" + echo $(cd {{default .DEFAULT_GO_MODULE_PATH .GO_MODULE_PATH}} && go list ./... | grep -v 'arduino-create-agent/gen/' | grep -v 'arduino-create-agent/design' | tr '\n' ' ' || echo '"ERROR: Unable to discover Go packages"') diff --git a/bufferflow.go b/bufferflow.go index 840196104..a9fef8e51 100644 --- a/bufferflow.go +++ b/bufferflow.go @@ -15,6 +15,7 @@ package main +// Bufferflow interface type Bufferflow interface { Init() OnIncomingData(data string) // implement this method diff --git a/bufferflow_default.go b/bufferflow_default.go index db8f3e083..959737d54 100644 --- a/bufferflow_default.go +++ b/bufferflow_default.go @@ -21,6 +21,7 @@ import ( log "github.com/sirupsen/logrus" ) +// BufferflowDefault is the default bufferflow, whick means no buffering type BufferflowDefault struct { port string output chan<- []byte @@ -28,6 +29,7 @@ type BufferflowDefault struct { done chan bool } +// NewBufferflowDefault create a new default bufferflow func NewBufferflowDefault(port string, output chan<- []byte) *BufferflowDefault { return &BufferflowDefault{ port: port, @@ -37,6 +39,7 @@ func NewBufferflowDefault(port string, output chan<- []byte) *BufferflowDefault } } +// Init will initialize the bufferflow func (b *BufferflowDefault) Init() { log.Println("Initting default buffer flow (which means no buffering)") go b.consumeInput() @@ -57,10 +60,12 @@ Loop: close(b.input) // close the input channel at the end of the computation } +// OnIncomingData will forward the data func (b *BufferflowDefault) OnIncomingData(data string) { b.input <- data } +// Close will close the bufferflow func (b *BufferflowDefault) Close() { b.done <- true close(b.done) diff --git a/bufferflow_timed.go b/bufferflow_timed.go index 22a7e7f9c..36aaf08bf 100644 --- a/bufferflow_timed.go +++ b/bufferflow_timed.go @@ -22,6 +22,7 @@ import ( log "github.com/sirupsen/logrus" ) +// BufferflowTimed sends data once every 16ms type BufferflowTimed struct { port string output chan<- []byte @@ -32,6 +33,7 @@ type BufferflowTimed struct { bufferedOutput string } +// NewBufferflowTimed will create a new timed bufferflow func NewBufferflowTimed(port string, output chan<- []byte) *BufferflowTimed { return &BufferflowTimed{ port: port, @@ -44,6 +46,7 @@ func NewBufferflowTimed(port string, output chan<- []byte) *BufferflowTimed { } } +// Init will initialize the bufferflow func (b *BufferflowTimed) Init() { log.Println("Initting timed buffer flow (output once every 16ms)") go b.consumeInput() @@ -72,10 +75,12 @@ Loop: close(b.input) } +// OnIncomingData will forward the data func (b *BufferflowTimed) OnIncomingData(data string) { b.input <- data } +// Close will close the bufferflow func (b *BufferflowTimed) Close() { b.ticker.Stop() b.done <- true diff --git a/bufferflow_timedraw.go b/bufferflow_timedraw.go index ee0f6e308..08b34cab6 100644 --- a/bufferflow_timedraw.go +++ b/bufferflow_timedraw.go @@ -22,6 +22,7 @@ import ( log "github.com/sirupsen/logrus" ) +// BufferflowTimedRaw sends raw data once every 16ms type BufferflowTimedRaw struct { port string output chan<- []byte @@ -32,6 +33,7 @@ type BufferflowTimedRaw struct { sPortRaw string } +// NewBufferflowTimedRaw will create a new raw bufferflow func NewBufferflowTimedRaw(port string, output chan<- []byte) *BufferflowTimedRaw { return &BufferflowTimedRaw{ port: port, @@ -44,6 +46,7 @@ func NewBufferflowTimedRaw(port string, output chan<- []byte) *BufferflowTimedRa } } +// Init will initialize the bufferflow func (b *BufferflowTimedRaw) Init() { log.Println("Initting timed buffer raw flow (output once every 16ms)") go b.consumeInput() @@ -73,10 +76,12 @@ Loop: close(b.input) } +// OnIncomingData will forward the data func (b *BufferflowTimedRaw) OnIncomingData(data string) { b.input <- data } +// Close will close the bufferflow func (b *BufferflowTimedRaw) Close() { b.ticker.Stop() b.done <- true diff --git a/certificates.go b/certificates.go index 8c2628fb9..4ed0ff02d 100644 --- a/certificates.go +++ b/certificates.go @@ -75,7 +75,7 @@ func generateKey(ecdsaCurve string) (interface{}, error) { case "P521": return ecdsa.GenerateKey(elliptic.P521(), rand.Reader) default: - return nil, fmt.Errorf("Unrecognized elliptic curve: %q", ecdsaCurve) + return nil, fmt.Errorf("unrecognized elliptic curve: %q", ecdsaCurve) } } @@ -87,7 +87,7 @@ func generateSingleCertificate(isCa bool) (*x509.Certificate, error) { } else { notBefore, err = time.Parse("Jan 2 15:04:05 2006", validFrom) if err != nil { - return nil, fmt.Errorf("Failed to parse creation date: %s\n", err.Error()) + return nil, fmt.Errorf("failed to parse creation date: %s", err.Error()) } } @@ -96,7 +96,7 @@ func generateSingleCertificate(isCa bool) (*x509.Certificate, error) { serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) if err != nil { - return nil, fmt.Errorf("failed to generate serial number: %s\n", err.Error()) + return nil, fmt.Errorf("failed to generate serial number: %s", err.Error()) } template := x509.Certificate{ @@ -164,7 +164,7 @@ func generateCertificates() { os.Exit(1) } - derBytes, err := x509.CreateCertificate(rand.Reader, caTemplate, caTemplate, publicKey(caKey), caKey) + derBytes, _ := x509.CreateCertificate(rand.Reader, caTemplate, caTemplate, publicKey(caKey), caKey) certOut, err := os.Create("ca.cert.pem") if err != nil { @@ -202,7 +202,7 @@ func generateCertificates() { os.Exit(1) } - derBytes, err = x509.CreateCertificate(rand.Reader, template, caTemplate, publicKey(key), caKey) + derBytes, _ = x509.CreateCertificate(rand.Reader, template, caTemplate, publicKey(key), caKey) certOut, err = os.Create("cert.pem") if err != nil { @@ -233,6 +233,7 @@ func deleteCertHandler(c *gin.Context) { DeleteCertificates() } +// DeleteCertificates will delete the certificates func DeleteCertificates() { os.Remove("ca.cert.pem") os.Remove("ca.cert.cer") diff --git a/conn.go b/conn.go index aa8e63d6d..eb06c8753 100644 --- a/conn.go +++ b/conn.go @@ -45,8 +45,7 @@ type connection struct { ws socketio.Socket // Buffered channel of outbound messages. - send chan []byte - incoming chan []byte + send chan []byte } func (c *connection) writer() { @@ -67,7 +66,7 @@ func (s *WsServer) ServeHTTP(c *gin.Context) { s.Server.ServeHTTP(c.Writer, c.Request) } -type AdditionalFile struct { +type additionalFile struct { Hex []byte `json:"hex"` Filename string `json:"filename"` } @@ -82,7 +81,7 @@ type Upload struct { Extra upload.Extra `json:"extra"` Hex []byte `json:"hex"` Filename string `json:"filename"` - ExtraFiles []AdditionalFile `json:"extrafiles"` + ExtraFiles []additionalFile `json:"extrafiles"` } var uploadStatusStr = "ProgrammerStatus" @@ -105,7 +104,7 @@ func uploadHandler(c *gin.Context) { return } - if data.Extra.Network == false { + if !data.Extra.Network { if data.Signature == "" { c.String(http.StatusBadRequest, "signature is required") return diff --git a/discovery.go b/discovery.go index e83d7a46d..48d9ed83f 100644 --- a/discovery.go +++ b/discovery.go @@ -128,7 +128,7 @@ func getPorts() ([]OsSerialPort, error) { for e := range results { log.Printf("%+v", e) if e.AddrIPv4 != nil { - arrPorts = append(arrPorts, OsSerialPort{Name: e.AddrIPv4.String(), IdProduct: e.Instance, IdVendor: strings.Join(e.Text[:], " "), NetworkPort: true}) + arrPorts = append(arrPorts, OsSerialPort{Name: e.AddrIPv4.String(), IDProduct: e.Instance, IDVendor: strings.Join(e.Text[:], " "), NetworkPort: true}) } } timeout <- true @@ -140,10 +140,8 @@ func getPorts() ([]OsSerialPort, error) { return nil, err } // wait for some kind of timeout and return arrPorts - select { - case <-timeout: - return arrPorts, nil - } + <-timeout + return arrPorts, nil } // Filter returns a new slice containing all OsSerialPort in the slice that satisfy the predicate f. diff --git a/hub.go b/hub.go index 75642391d..205c00d34 100755 --- a/hub.go +++ b/hub.go @@ -123,7 +123,7 @@ func checkCmd(m []byte) { sl := strings.ToLower(strings.Trim(s, "\n")) - if *hibernate == true { + if *hibernate { //do nothing return } @@ -246,12 +246,12 @@ func checkCmd(m []byte) { func logAction(sl string) { if strings.HasPrefix(sl, "log on") { *logDump = "on" - multi_writer := io.MultiWriter(&logger_ws, os.Stderr) - log.SetOutput(multi_writer) + multiWriter := io.MultiWriter(&loggerWs, os.Stderr) + log.SetOutput(multiWriter) } else if strings.HasPrefix(sl, "log off") { *logDump = "off" log.SetOutput(os.Stderr) - } else if strings.HasPrefix(sl, "log show") { + // } else if strings.HasPrefix(sl, "log show") { // TODO: send all the saved log to websocket //h.broadcastSys <- []byte("{\"BufFlowDebug\" : \"" + *logDump + "\"}") } diff --git a/icon/icondarwin.go b/icon/icondarwin.go index c8f1d5454..9719c39b3 100644 --- a/icon/icondarwin.go +++ b/icon/icondarwin.go @@ -1,3 +1,4 @@ +//go:build darwin // +build darwin // File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) @@ -9,12 +10,14 @@ import ( "strings" ) +// IsDarkMode will return if the system is in darkmode func IsDarkMode() bool { cmd := exec.Command("defaults", "read", "-g", "AppleInterfaceStyle") output, _ := cmd.Output() return strings.Contains(string(output), "Dark") } +// GetIcon will return the icon func GetIcon() []byte { if IsDarkMode() { return Data @@ -23,6 +26,7 @@ func GetIcon() []byte { } } +// GetIconHiber will return the hibernated icon func GetIconHiber() []byte { if IsDarkMode() { return DataDarkHibernate @@ -31,273 +35,277 @@ func GetIconHiber() []byte { } } +// DataLight represents the icon var DataLight []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x02, 0x16, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xcd, 0x57, 0x81, - 0x75, 0x82, 0x30, 0x10, 0xfd, 0x76, 0x81, 0xda, 0x0d, 0xe2, 0x06, 0x1d, - 0x21, 0x1b, 0xc8, 0x06, 0xd2, 0x09, 0x6a, 0x27, 0x90, 0x0d, 0x64, 0x03, - 0xdd, 0xa0, 0xed, 0x04, 0x74, 0x03, 0xdd, 0x00, 0x3a, 0x01, 0x6e, 0xd0, - 0xe6, 0x1e, 0xc4, 0x9e, 0x47, 0x12, 0x04, 0x41, 0xfa, 0xdf, 0xfb, 0xef, - 0x49, 0x2e, 0x77, 0xfe, 0xdc, 0x25, 0x17, 0x98, 0xe1, 0x76, 0x28, 0xc3, - 0x79, 0xfd, 0xfb, 0x64, 0x58, 0xe0, 0xce, 0xd0, 0x86, 0xa9, 0x61, 0x6e, - 0xf8, 0xe3, 0xe1, 0xc1, 0x70, 0x67, 0x18, 0x61, 0x24, 0x50, 0x06, 0x36, - 0x86, 0x65, 0x40, 0x84, 0x8f, 0x24, 0x7c, 0x85, 0x01, 0x11, 0xf5, 0x14, - 0x32, 0xb8, 0x30, 0xca, 0xca, 0x76, 0x00, 0x21, 0x92, 0x5b, 0xf4, 0x00, - 0x89, 0x39, 0x8c, 0x20, 0x86, 0xef, 0xb1, 0x39, 0x3a, 0x60, 0x4c, 0x31, - 0x96, 0x19, 0xae, 0xc4, 0x18, 0x65, 0xea, 0x5d, 0xbe, 0xf8, 0x8e, 0x62, - 0x2c, 0xbd, 0xad, 0x81, 0x6a, 0x9a, 0x4f, 0x20, 0x28, 0x87, 0x67, 0x3f, - 0xad, 0x27, 0x10, 0x63, 0x99, 0x58, 0x11, 0x33, 0x26, 0x88, 0x94, 0x2a, - 0x87, 0xd0, 0xc2, 0xf0, 0xd3, 0xf0, 0x68, 0xf8, 0x68, 0xb8, 0x30, 0x5c, - 0x7a, 0xe6, 0xba, 0xfc, 0xf2, 0xfa, 0x39, 0xe4, 0x47, 0x57, 0xce, 0x13, - 0x1f, 0x88, 0xe0, 0x4e, 0xa5, 0x86, 0x1f, 0x31, 0xdc, 0x25, 0xee, 0xeb, - 0x77, 0xe1, 0xb3, 0x77, 0x04, 0x55, 0xcc, 0x4e, 0x35, 0x7e, 0xae, 0x9d, - 0x78, 0xbd, 0x69, 0x0e, 0x6f, 0x11, 0xb2, 0xbf, 0x84, 0xfc, 0xa4, 0xa8, - 0x94, 0x0b, 0x92, 0x7d, 0x47, 0x31, 0xdb, 0x06, 0xcd, 0xab, 0x63, 0xcb, - 0xfe, 0xc0, 0x36, 0xd1, 0x5c, 0x8c, 0xb9, 0xfc, 0x36, 0x2c, 0xae, 0x16, - 0xb6, 0x03, 0x17, 0xc4, 0x0d, 0x3b, 0x36, 0x1e, 0xea, 0x49, 0x5c, 0x80, - 0xc2, 0xdf, 0x22, 0x5c, 0xab, 0xf7, 0xc5, 0xcf, 0x84, 0xed, 0x1c, 0x80, - 0x0f, 0x2e, 0x3d, 0x2b, 0x70, 0x31, 0x43, 0x13, 0xae, 0x6c, 0x27, 0x70, - 0xef, 0x97, 0x58, 0xce, 0x7d, 0x40, 0xb3, 0x07, 0x7c, 0x33, 0x41, 0x16, - 0xd4, 0x12, 0x5e, 0x18, 0x4f, 0x6c, 0xce, 0x9a, 0xcd, 0x7b, 0x45, 0xb5, - 0x67, 0x08, 0x47, 0x36, 0xf7, 0xc3, 0xf0, 0x8d, 0xcd, 0xb3, 0x73, 0xbe, - 0x20, 0xf0, 0x80, 0x26, 0x4e, 0xe8, 0x86, 0x92, 0xfd, 0xe6, 0x6d, 0x24, - 0x74, 0x79, 0xce, 0x43, 0x73, 0x14, 0xfa, 0x97, 0xec, 0xdd, 0x11, 0x4f, - 0xee, 0x0b, 0x8a, 0x9f, 0x88, 0x31, 0x9b, 0xa1, 0x08, 0x9e, 0xc3, 0xe4, - 0xdb, 0x17, 0xfb, 0x80, 0x18, 0x7e, 0xc4, 0x15, 0x0b, 0xd6, 0x76, 0x05, - 0xa5, 0x81, 0xf8, 0x67, 0xc8, 0x00, 0x9a, 0xd9, 0x12, 0x61, 0x2b, 0xeb, - 0xb1, 0xb9, 0x10, 0x20, 0x8f, 0x7d, 0xea, 0xf1, 0x03, 0x5b, 0x84, 0x5c, - 0xe0, 0x19, 0xd2, 0x39, 0x47, 0xb3, 0x31, 0x6a, 0x54, 0xa9, 0x6e, 0x6b, - 0x8c, 0xdc, 0x0f, 0x01, 0x3f, 0x99, 0x84, 0x9d, 0x74, 0x72, 0xf5, 0x99, - 0x15, 0xfc, 0x88, 0xe0, 0xbf, 0x3a, 0x42, 0x7e, 0x31, 0xdc, 0xef, 0xe8, - 0x9a, 0x8c, 0xfc, 0x54, 0x94, 0x70, 0xef, 0xfa, 0x02, 0xd5, 0xf1, 0x3c, - 0xd6, 0xcf, 0x8b, 0xfa, 0x0f, 0xdb, 0x5e, 0x41, 0xbb, 0xf8, 0x15, 0xb5, - 0xfd, 0x02, 0x09, 0xda, 0x4f, 0xd5, 0x58, 0x74, 0x66, 0x74, 0xca, 0x17, - 0x34, 0x2f, 0xa2, 0x09, 0x04, 0xad, 0xd0, 0x82, 0xf4, 0x8e, 0x62, 0x52, - 0x5c, 0x89, 0x7f, 0xf5, 0x19, 0x44, 0x18, 0xfb, 0x43, 0x31, 0x43, 0xc7, - 0x0f, 0x45, 0x8b, 0x31, 0xca, 0x77, 0x75, 0x99, 0x7c, 0x88, 0x31, 0xcc, - 0xe9, 0xa3, 0x18, 0x1a, 0x03, 0x22, 0x46, 0x3f, 0x61, 0xf2, 0xee, 0x1b, - 0x1c, 0x1a, 0xd5, 0x2d, 0x1d, 0xda, 0x63, 0x64, 0x4b, 0xd1, 0x23, 0x23, - 0x33, 0xdc, 0x0e, 0x25, 0x9e, 0x0b, 0xdc, 0x80, 0x5f, 0x8e, 0x2c, 0xaa, - 0x54, 0xb0, 0x94, 0xe9, 0x09, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, + 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, + 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, + 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, + 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, + 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, + 0x00, 0x02, 0x16, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xcd, 0x57, 0x81, + 0x75, 0x82, 0x30, 0x10, 0xfd, 0x76, 0x81, 0xda, 0x0d, 0xe2, 0x06, 0x1d, + 0x21, 0x1b, 0xc8, 0x06, 0xd2, 0x09, 0x6a, 0x27, 0x90, 0x0d, 0x64, 0x03, + 0xdd, 0xa0, 0xed, 0x04, 0x74, 0x03, 0xdd, 0x00, 0x3a, 0x01, 0x6e, 0xd0, + 0xe6, 0x1e, 0xc4, 0x9e, 0x47, 0x12, 0x04, 0x41, 0xfa, 0xdf, 0xfb, 0xef, + 0x49, 0x2e, 0x77, 0xfe, 0xdc, 0x25, 0x17, 0x98, 0xe1, 0x76, 0x28, 0xc3, + 0x79, 0xfd, 0xfb, 0x64, 0x58, 0xe0, 0xce, 0xd0, 0x86, 0xa9, 0x61, 0x6e, + 0xf8, 0xe3, 0xe1, 0xc1, 0x70, 0x67, 0x18, 0x61, 0x24, 0x50, 0x06, 0x36, + 0x86, 0x65, 0x40, 0x84, 0x8f, 0x24, 0x7c, 0x85, 0x01, 0x11, 0xf5, 0x14, + 0x32, 0xb8, 0x30, 0xca, 0xca, 0x76, 0x00, 0x21, 0x92, 0x5b, 0xf4, 0x00, + 0x89, 0x39, 0x8c, 0x20, 0x86, 0xef, 0xb1, 0x39, 0x3a, 0x60, 0x4c, 0x31, + 0x96, 0x19, 0xae, 0xc4, 0x18, 0x65, 0xea, 0x5d, 0xbe, 0xf8, 0x8e, 0x62, + 0x2c, 0xbd, 0xad, 0x81, 0x6a, 0x9a, 0x4f, 0x20, 0x28, 0x87, 0x67, 0x3f, + 0xad, 0x27, 0x10, 0x63, 0x99, 0x58, 0x11, 0x33, 0x26, 0x88, 0x94, 0x2a, + 0x87, 0xd0, 0xc2, 0xf0, 0xd3, 0xf0, 0x68, 0xf8, 0x68, 0xb8, 0x30, 0x5c, + 0x7a, 0xe6, 0xba, 0xfc, 0xf2, 0xfa, 0x39, 0xe4, 0x47, 0x57, 0xce, 0x13, + 0x1f, 0x88, 0xe0, 0x4e, 0xa5, 0x86, 0x1f, 0x31, 0xdc, 0x25, 0xee, 0xeb, + 0x77, 0xe1, 0xb3, 0x77, 0x04, 0x55, 0xcc, 0x4e, 0x35, 0x7e, 0xae, 0x9d, + 0x78, 0xbd, 0x69, 0x0e, 0x6f, 0x11, 0xb2, 0xbf, 0x84, 0xfc, 0xa4, 0xa8, + 0x94, 0x0b, 0x92, 0x7d, 0x47, 0x31, 0xdb, 0x06, 0xcd, 0xab, 0x63, 0xcb, + 0xfe, 0xc0, 0x36, 0xd1, 0x5c, 0x8c, 0xb9, 0xfc, 0x36, 0x2c, 0xae, 0x16, + 0xb6, 0x03, 0x17, 0xc4, 0x0d, 0x3b, 0x36, 0x1e, 0xea, 0x49, 0x5c, 0x80, + 0xc2, 0xdf, 0x22, 0x5c, 0xab, 0xf7, 0xc5, 0xcf, 0x84, 0xed, 0x1c, 0x80, + 0x0f, 0x2e, 0x3d, 0x2b, 0x70, 0x31, 0x43, 0x13, 0xae, 0x6c, 0x27, 0x70, + 0xef, 0x97, 0x58, 0xce, 0x7d, 0x40, 0xb3, 0x07, 0x7c, 0x33, 0x41, 0x16, + 0xd4, 0x12, 0x5e, 0x18, 0x4f, 0x6c, 0xce, 0x9a, 0xcd, 0x7b, 0x45, 0xb5, + 0x67, 0x08, 0x47, 0x36, 0xf7, 0xc3, 0xf0, 0x8d, 0xcd, 0xb3, 0x73, 0xbe, + 0x20, 0xf0, 0x80, 0x26, 0x4e, 0xe8, 0x86, 0x92, 0xfd, 0xe6, 0x6d, 0x24, + 0x74, 0x79, 0xce, 0x43, 0x73, 0x14, 0xfa, 0x97, 0xec, 0xdd, 0x11, 0x4f, + 0xee, 0x0b, 0x8a, 0x9f, 0x88, 0x31, 0x9b, 0xa1, 0x08, 0x9e, 0xc3, 0xe4, + 0xdb, 0x17, 0xfb, 0x80, 0x18, 0x7e, 0xc4, 0x15, 0x0b, 0xd6, 0x76, 0x05, + 0xa5, 0x81, 0xf8, 0x67, 0xc8, 0x00, 0x9a, 0xd9, 0x12, 0x61, 0x2b, 0xeb, + 0xb1, 0xb9, 0x10, 0x20, 0x8f, 0x7d, 0xea, 0xf1, 0x03, 0x5b, 0x84, 0x5c, + 0xe0, 0x19, 0xd2, 0x39, 0x47, 0xb3, 0x31, 0x6a, 0x54, 0xa9, 0x6e, 0x6b, + 0x8c, 0xdc, 0x0f, 0x01, 0x3f, 0x99, 0x84, 0x9d, 0x74, 0x72, 0xf5, 0x99, + 0x15, 0xfc, 0x88, 0xe0, 0xbf, 0x3a, 0x42, 0x7e, 0x31, 0xdc, 0xef, 0xe8, + 0x9a, 0x8c, 0xfc, 0x54, 0x94, 0x70, 0xef, 0xfa, 0x02, 0xd5, 0xf1, 0x3c, + 0xd6, 0xcf, 0x8b, 0xfa, 0x0f, 0xdb, 0x5e, 0x41, 0xbb, 0xf8, 0x15, 0xb5, + 0xfd, 0x02, 0x09, 0xda, 0x4f, 0xd5, 0x58, 0x74, 0x66, 0x74, 0xca, 0x17, + 0x34, 0x2f, 0xa2, 0x09, 0x04, 0xad, 0xd0, 0x82, 0xf4, 0x8e, 0x62, 0x52, + 0x5c, 0x89, 0x7f, 0xf5, 0x19, 0x44, 0x18, 0xfb, 0x43, 0x31, 0x43, 0xc7, + 0x0f, 0x45, 0x8b, 0x31, 0xca, 0x77, 0x75, 0x99, 0x7c, 0x88, 0x31, 0xcc, + 0xe9, 0xa3, 0x18, 0x1a, 0x03, 0x22, 0x46, 0x3f, 0x61, 0xf2, 0xee, 0x1b, + 0x1c, 0x1a, 0xd5, 0x2d, 0x1d, 0xda, 0x63, 0x64, 0x4b, 0xd1, 0x23, 0x23, + 0x33, 0xdc, 0x0e, 0x25, 0x9e, 0x0b, 0xdc, 0x80, 0x5f, 0x8e, 0x2c, 0xaa, + 0x54, 0xb0, 0x94, 0xe9, 0x09, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82, } +// DataLightHibernate represents the light icon hibernated var DataLightHibernate []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x03, 0x1e, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xc5, 0x58, 0x2d, - 0x9b, 0xda, 0x40, 0x10, 0x7e, 0x8f, 0x9e, 0x40, 0x20, 0x10, 0x15, 0x08, - 0x44, 0x44, 0x05, 0xa2, 0x02, 0x89, 0xa8, 0x40, 0x54, 0x20, 0x2a, 0x10, - 0x15, 0x48, 0xc4, 0xfd, 0x80, 0xca, 0xfe, 0x8c, 0xfe, 0x80, 0x0a, 0x64, - 0x45, 0x05, 0xa2, 0xe2, 0x44, 0x05, 0xe2, 0x04, 0x02, 0x71, 0xa2, 0x02, - 0x81, 0x88, 0x44, 0x54, 0x44, 0x9c, 0x40, 0x20, 0x9a, 0xf7, 0x32, 0xf3, - 0x64, 0xb2, 0xec, 0x06, 0xc2, 0x47, 0xfa, 0x3e, 0xcf, 0x1c, 0xc9, 0xee, - 0xce, 0xec, 0xec, 0x7c, 0xed, 0xe4, 0xee, 0x70, 0x39, 0xda, 0x29, 0x35, - 0xe5, 0x79, 0x97, 0x52, 0x82, 0x0b, 0x70, 0x87, 0xea, 0x88, 0x52, 0xea, - 0x09, 0xb5, 0x03, 0x6b, 0xb6, 0x42, 0x6b, 0xa1, 0xab, 0x2b, 0x44, 0x0b, - 0x0c, 0x84, 0x9a, 0xa8, 0x06, 0x5a, 0x6c, 0x91, 0xd2, 0xf3, 0x29, 0x8b, - 0x4f, 0x51, 0x88, 0x96, 0x18, 0x9f, 0xa1, 0x88, 0x8b, 0x93, 0x14, 0x7b, - 0x53, 0x32, 0x47, 0x05, 0x3e, 0xa6, 0x34, 0x4a, 0xe9, 0x1e, 0x97, 0x83, - 0xf2, 0x7a, 0xf2, 0xbb, 0x09, 0x2d, 0xba, 0x2b, 0x61, 0x9e, 0xa6, 0xd4, - 0xc1, 0x6d, 0xc0, 0xf8, 0x9a, 0x21, 0x4b, 0x82, 0x02, 0x42, 0x16, 0x7a, - 0xb8, 0xa1, 0x32, 0x44, 0x2b, 0xa5, 0x2e, 0x3c, 0xee, 0xf3, 0x29, 0x44, - 0x17, 0xf5, 0x70, 0x7b, 0x68, 0xb9, 0xd8, 0x94, 0x29, 0xd4, 0x47, 0x16, - 0x37, 0x75, 0x81, 0x56, 0xa2, 0xfb, 0xfe, 0xea, 0x40, 0xc3, 0x4c, 0x52, - 0xdb, 0x21, 0xea, 0xc7, 0x08, 0x26, 0x83, 0xad, 0x42, 0xb4, 0x4e, 0x1b, - 0xf5, 0x83, 0x7b, 0x0e, 0xf4, 0xc5, 0xa6, 0xf3, 0x20, 0xc0, 0xc0, 0xfa, - 0xc1, 0x6a, 0x4b, 0xd3, 0x36, 0x45, 0x40, 0x59, 0x95, 0x76, 0xf9, 0x12, - 0xb3, 0x71, 0x88, 0x8f, 0x7b, 0x2f, 0xf8, 0xa0, 0x69, 0xcf, 0x85, 0x13, - 0x8f, 0xc0, 0x79, 0x4a, 0x31, 0xfc, 0xa0, 0x45, 0x87, 0x9e, 0x0d, 0xce, - 0xe5, 0x9b, 0x91, 0x47, 0x83, 0xfa, 0x03, 0x8a, 0x69, 0x9e, 0xc8, 0x82, - 0xad, 0xbc, 0xd3, 0x32, 0x6f, 0x85, 0x58, 0x3b, 0xf6, 0xc8, 0xef, 0xaa, - 0x08, 0x59, 0x1a, 0x43, 0xc6, 0xbe, 0x23, 0x0f, 0xd2, 0x32, 0x3e, 0x2d, - 0x92, 0x0a, 0xce, 0x6f, 0xd4, 0x65, 0x1d, 0x8f, 0xb6, 0x6a, 0xea, 0x21, - 0x0e, 0xef, 0xb0, 0x25, 0x32, 0x13, 0xab, 0xe2, 0x53, 0x99, 0x9f, 0x89, - 0xe0, 0xd0, 0xdd, 0xb7, 0x30, 0x7c, 0x73, 0xe1, 0x53, 0x44, 0xfc, 0xa3, - 0x16, 0xfa, 0x64, 0x26, 0x9e, 0x91, 0x17, 0x2c, 0x66, 0x00, 0xad, 0xe7, - 0x5e, 0x1d, 0x4c, 0xd7, 0xf7, 0xb2, 0xee, 0xf5, 0x64, 0xf2, 0xfc, 0x82, - 0xcc, 0x15, 0x2c, 0xac, 0x3d, 0x0f, 0x5f, 0x24, 0xf3, 0x1a, 0x5b, 0xfa, - 0x4e, 0xd0, 0xca, 0x8b, 0x06, 0x0e, 0x7d, 0xb9, 0x36, 0xcc, 0xa1, 0x40, - 0x87, 0xf0, 0x69, 0xdc, 0x25, 0xc8, 0x2d, 0x3a, 0x71, 0x64, 0x7e, 0x83, - 0x04, 0xac, 0xa0, 0x2f, 0xb2, 0x81, 0xc3, 0x4a, 0xdd, 0xe6, 0x09, 0xdc, - 0x5b, 0x3c, 0x31, 0x0a, 0x29, 0x1e, 0x51, 0xbc, 0x77, 0xb4, 0x76, 0x44, - 0xa2, 0xf4, 0x52, 0xc6, 0xf9, 0xac, 0xee, 0xdf, 0xca, 0x38, 0xf9, 0xd6, - 0xf2, 0x3b, 0x92, 0x39, 0xae, 0x89, 0xe1, 0x09, 0xfc, 0x06, 0x0e, 0xb1, - 0x43, 0x35, 0x84, 0xd6, 0x97, 0xb5, 0x2b, 0xcd, 0xd0, 0x9a, 0x7b, 0x8f, - 0x40, 0x6a, 0x4f, 0x2b, 0xc5, 0x66, 0x6c, 0x04, 0x3f, 0x78, 0x72, 0x6b, - 0x76, 0x5a, 0x84, 0xb1, 0x13, 0x21, 0x73, 0xdb, 0x18, 0x99, 0xcb, 0x38, - 0x36, 0x74, 0xf8, 0x00, 0x4f, 0x4d, 0x6a, 0xe0, 0xb0, 0x07, 0xd6, 0xb8, - 0x89, 0x51, 0xde, 0x4c, 0xd1, 0x25, 0x73, 0x23, 0x58, 0x85, 0xff, 0x70, - 0x64, 0x7e, 0x71, 0x94, 0x59, 0x22, 0x2f, 0x27, 0xee, 0x25, 0x9e, 0x68, - 0x96, 0x31, 0xd0, 0x9a, 0x46, 0x78, 0x8c, 0xbc, 0xd2, 0x12, 0x91, 0x61, - 0xa2, 0x45, 0x9f, 0x52, 0xfa, 0x85, 0x3c, 0xc5, 0x1f, 0x44, 0x86, 0x66, - 0x1d, 0x7f, 0x69, 0xfd, 0xae, 0x87, 0xef, 0xb7, 0xd9, 0x67, 0x8c, 0xe2, - 0x01, 0x57, 0x5a, 0xa9, 0xe9, 0x12, 0x9b, 0x51, 0x5a, 0x5f, 0xf4, 0xa4, - 0xdc, 0xb4, 0x83, 0xfc, 0xab, 0x62, 0x67, 0x84, 0x4e, 0x50, 0x0c, 0x64, - 0xd7, 0x42, 0x51, 0x80, 0x6f, 0x8a, 0xa2, 0xcb, 0x78, 0x88, 0xb9, 0x5a, - 0x68, 0x2f, 0x27, 0x84, 0x51, 0xa0, 0x27, 0x02, 0xb6, 0x32, 0x4f, 0x81, - 0x2f, 0xf2, 0x0c, 0x99, 0xff, 0x8c, 0xac, 0x0a, 0x2b, 0x5a, 0x0e, 0x1f, - 0x3c, 0x7c, 0x7d, 0x39, 0x44, 0x0b, 0x45, 0x30, 0x93, 0x13, 0xdb, 0xc2, - 0x7e, 0x85, 0x3f, 0x33, 0x34, 0xc0, 0xb7, 0xe6, 0x74, 0x7d, 0x1c, 0x6f, - 0xfa, 0xab, 0xf0, 0x71, 0x2d, 0x83, 0xbf, 0xd0, 0x53, 0x0f, 0xf1, 0x7f, - 0xfa, 0x21, 0x82, 0xc9, 0xf1, 0x9a, 0x40, 0xb6, 0x0e, 0x31, 0xfa, 0x13, - 0xd4, 0x8f, 0x04, 0x26, 0x9b, 0xad, 0x42, 0xf4, 0xfb, 0x23, 0xea, 0xc7, - 0xc2, 0xbe, 0xb8, 0x3d, 0x35, 0xdb, 0x06, 0xfa, 0xb8, 0x8b, 0x7a, 0x40, - 0xaf, 0x3c, 0xd9, 0x01, 0xdf, 0xd5, 0x41, 0x2b, 0x6d, 0x71, 0x7b, 0xc4, - 0xf0, 0x78, 0x24, 0xf4, 0x5d, 0xf6, 0x27, 0xa5, 0x77, 0x38, 0x4c, 0xcd, - 0x6b, 0x2a, 0xc3, 0x7a, 0xb5, 0xc7, 0x89, 0x0a, 0x71, 0xe1, 0x0a, 0xb7, - 0x71, 0x1f, 0xdd, 0xf4, 0x13, 0x1e, 0x65, 0xca, 0x14, 0x52, 0xb0, 0xf1, - 0x62, 0x16, 0xb0, 0x12, 0x1f, 0xab, 0x3b, 0xc7, 0x40, 0x39, 0xb4, 0xca, - 0xaa, 0x6c, 0x51, 0x95, 0xff, 0x0f, 0x85, 0x9a, 0xf3, 0x63, 0x60, 0xf6, - 0x2e, 0x91, 0xf7, 0x46, 0xb8, 0x96, 0x42, 0x8a, 0x08, 0x99, 0x72, 0x1d, - 0x84, 0xbf, 0xff, 0x99, 0x14, 0x31, 0xb2, 0xcb, 0x39, 0x46, 0x05, 0x9c, - 0xa3, 0x90, 0x0b, 0xdf, 0x67, 0xd0, 0xd9, 0xf8, 0x07, 0x55, 0x8b, 0xc7, - 0x4d, 0x28, 0x32, 0x9b, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, + 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, + 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, + 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, + 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, + 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, + 0x00, 0x03, 0x1e, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xc5, 0x58, 0x2d, + 0x9b, 0xda, 0x40, 0x10, 0x7e, 0x8f, 0x9e, 0x40, 0x20, 0x10, 0x15, 0x08, + 0x44, 0x44, 0x05, 0xa2, 0x02, 0x89, 0xa8, 0x40, 0x54, 0x20, 0x2a, 0x10, + 0x15, 0x48, 0xc4, 0xfd, 0x80, 0xca, 0xfe, 0x8c, 0xfe, 0x80, 0x0a, 0x64, + 0x45, 0x05, 0xa2, 0xe2, 0x44, 0x05, 0xe2, 0x04, 0x02, 0x71, 0xa2, 0x02, + 0x81, 0x88, 0x44, 0x54, 0x44, 0x9c, 0x40, 0x20, 0x9a, 0xf7, 0x32, 0xf3, + 0x64, 0xb2, 0xec, 0x06, 0xc2, 0x47, 0xfa, 0x3e, 0xcf, 0x1c, 0xc9, 0xee, + 0xce, 0xec, 0xec, 0x7c, 0xed, 0xe4, 0xee, 0x70, 0x39, 0xda, 0x29, 0x35, + 0xe5, 0x79, 0x97, 0x52, 0x82, 0x0b, 0x70, 0x87, 0xea, 0x88, 0x52, 0xea, + 0x09, 0xb5, 0x03, 0x6b, 0xb6, 0x42, 0x6b, 0xa1, 0xab, 0x2b, 0x44, 0x0b, + 0x0c, 0x84, 0x9a, 0xa8, 0x06, 0x5a, 0x6c, 0x91, 0xd2, 0xf3, 0x29, 0x8b, + 0x4f, 0x51, 0x88, 0x96, 0x18, 0x9f, 0xa1, 0x88, 0x8b, 0x93, 0x14, 0x7b, + 0x53, 0x32, 0x47, 0x05, 0x3e, 0xa6, 0x34, 0x4a, 0xe9, 0x1e, 0x97, 0x83, + 0xf2, 0x7a, 0xf2, 0xbb, 0x09, 0x2d, 0xba, 0x2b, 0x61, 0x9e, 0xa6, 0xd4, + 0xc1, 0x6d, 0xc0, 0xf8, 0x9a, 0x21, 0x4b, 0x82, 0x02, 0x42, 0x16, 0x7a, + 0xb8, 0xa1, 0x32, 0x44, 0x2b, 0xa5, 0x2e, 0x3c, 0xee, 0xf3, 0x29, 0x44, + 0x17, 0xf5, 0x70, 0x7b, 0x68, 0xb9, 0xd8, 0x94, 0x29, 0xd4, 0x47, 0x16, + 0x37, 0x75, 0x81, 0x56, 0xa2, 0xfb, 0xfe, 0xea, 0x40, 0xc3, 0x4c, 0x52, + 0xdb, 0x21, 0xea, 0xc7, 0x08, 0x26, 0x83, 0xad, 0x42, 0xb4, 0x4e, 0x1b, + 0xf5, 0x83, 0x7b, 0x0e, 0xf4, 0xc5, 0xa6, 0xf3, 0x20, 0xc0, 0xc0, 0xfa, + 0xc1, 0x6a, 0x4b, 0xd3, 0x36, 0x45, 0x40, 0x59, 0x95, 0x76, 0xf9, 0x12, + 0xb3, 0x71, 0x88, 0x8f, 0x7b, 0x2f, 0xf8, 0xa0, 0x69, 0xcf, 0x85, 0x13, + 0x8f, 0xc0, 0x79, 0x4a, 0x31, 0xfc, 0xa0, 0x45, 0x87, 0x9e, 0x0d, 0xce, + 0xe5, 0x9b, 0x91, 0x47, 0x83, 0xfa, 0x03, 0x8a, 0x69, 0x9e, 0xc8, 0x82, + 0xad, 0xbc, 0xd3, 0x32, 0x6f, 0x85, 0x58, 0x3b, 0xf6, 0xc8, 0xef, 0xaa, + 0x08, 0x59, 0x1a, 0x43, 0xc6, 0xbe, 0x23, 0x0f, 0xd2, 0x32, 0x3e, 0x2d, + 0x92, 0x0a, 0xce, 0x6f, 0xd4, 0x65, 0x1d, 0x8f, 0xb6, 0x6a, 0xea, 0x21, + 0x0e, 0xef, 0xb0, 0x25, 0x32, 0x13, 0xab, 0xe2, 0x53, 0x99, 0x9f, 0x89, + 0xe0, 0xd0, 0xdd, 0xb7, 0x30, 0x7c, 0x73, 0xe1, 0x53, 0x44, 0xfc, 0xa3, + 0x16, 0xfa, 0x64, 0x26, 0x9e, 0x91, 0x17, 0x2c, 0x66, 0x00, 0xad, 0xe7, + 0x5e, 0x1d, 0x4c, 0xd7, 0xf7, 0xb2, 0xee, 0xf5, 0x64, 0xf2, 0xfc, 0x82, + 0xcc, 0x15, 0x2c, 0xac, 0x3d, 0x0f, 0x5f, 0x24, 0xf3, 0x1a, 0x5b, 0xfa, + 0x4e, 0xd0, 0xca, 0x8b, 0x06, 0x0e, 0x7d, 0xb9, 0x36, 0xcc, 0xa1, 0x40, + 0x87, 0xf0, 0x69, 0xdc, 0x25, 0xc8, 0x2d, 0x3a, 0x71, 0x64, 0x7e, 0x83, + 0x04, 0xac, 0xa0, 0x2f, 0xb2, 0x81, 0xc3, 0x4a, 0xdd, 0xe6, 0x09, 0xdc, + 0x5b, 0x3c, 0x31, 0x0a, 0x29, 0x1e, 0x51, 0xbc, 0x77, 0xb4, 0x76, 0x44, + 0xa2, 0xf4, 0x52, 0xc6, 0xf9, 0xac, 0xee, 0xdf, 0xca, 0x38, 0xf9, 0xd6, + 0xf2, 0x3b, 0x92, 0x39, 0xae, 0x89, 0xe1, 0x09, 0xfc, 0x06, 0x0e, 0xb1, + 0x43, 0x35, 0x84, 0xd6, 0x97, 0xb5, 0x2b, 0xcd, 0xd0, 0x9a, 0x7b, 0x8f, + 0x40, 0x6a, 0x4f, 0x2b, 0xc5, 0x66, 0x6c, 0x04, 0x3f, 0x78, 0x72, 0x6b, + 0x76, 0x5a, 0x84, 0xb1, 0x13, 0x21, 0x73, 0xdb, 0x18, 0x99, 0xcb, 0x38, + 0x36, 0x74, 0xf8, 0x00, 0x4f, 0x4d, 0x6a, 0xe0, 0xb0, 0x07, 0xd6, 0xb8, + 0x89, 0x51, 0xde, 0x4c, 0xd1, 0x25, 0x73, 0x23, 0x58, 0x85, 0xff, 0x70, + 0x64, 0x7e, 0x71, 0x94, 0x59, 0x22, 0x2f, 0x27, 0xee, 0x25, 0x9e, 0x68, + 0x96, 0x31, 0xd0, 0x9a, 0x46, 0x78, 0x8c, 0xbc, 0xd2, 0x12, 0x91, 0x61, + 0xa2, 0x45, 0x9f, 0x52, 0xfa, 0x85, 0x3c, 0xc5, 0x1f, 0x44, 0x86, 0x66, + 0x1d, 0x7f, 0x69, 0xfd, 0xae, 0x87, 0xef, 0xb7, 0xd9, 0x67, 0x8c, 0xe2, + 0x01, 0x57, 0x5a, 0xa9, 0xe9, 0x12, 0x9b, 0x51, 0x5a, 0x5f, 0xf4, 0xa4, + 0xdc, 0xb4, 0x83, 0xfc, 0xab, 0x62, 0x67, 0x84, 0x4e, 0x50, 0x0c, 0x64, + 0xd7, 0x42, 0x51, 0x80, 0x6f, 0x8a, 0xa2, 0xcb, 0x78, 0x88, 0xb9, 0x5a, + 0x68, 0x2f, 0x27, 0x84, 0x51, 0xa0, 0x27, 0x02, 0xb6, 0x32, 0x4f, 0x81, + 0x2f, 0xf2, 0x0c, 0x99, 0xff, 0x8c, 0xac, 0x0a, 0x2b, 0x5a, 0x0e, 0x1f, + 0x3c, 0x7c, 0x7d, 0x39, 0x44, 0x0b, 0x45, 0x30, 0x93, 0x13, 0xdb, 0xc2, + 0x7e, 0x85, 0x3f, 0x33, 0x34, 0xc0, 0xb7, 0xe6, 0x74, 0x7d, 0x1c, 0x6f, + 0xfa, 0xab, 0xf0, 0x71, 0x2d, 0x83, 0xbf, 0xd0, 0x53, 0x0f, 0xf1, 0x7f, + 0xfa, 0x21, 0x82, 0xc9, 0xf1, 0x9a, 0x40, 0xb6, 0x0e, 0x31, 0xfa, 0x13, + 0xd4, 0x8f, 0x04, 0x26, 0x9b, 0xad, 0x42, 0xf4, 0xfb, 0x23, 0xea, 0xc7, + 0xc2, 0xbe, 0xb8, 0x3d, 0x35, 0xdb, 0x06, 0xfa, 0xb8, 0x8b, 0x7a, 0x40, + 0xaf, 0x3c, 0xd9, 0x01, 0xdf, 0xd5, 0x41, 0x2b, 0x6d, 0x71, 0x7b, 0xc4, + 0xf0, 0x78, 0x24, 0xf4, 0x5d, 0xf6, 0x27, 0xa5, 0x77, 0x38, 0x4c, 0xcd, + 0x6b, 0x2a, 0xc3, 0x7a, 0xb5, 0xc7, 0x89, 0x0a, 0x71, 0xe1, 0x0a, 0xb7, + 0x71, 0x1f, 0xdd, 0xf4, 0x13, 0x1e, 0x65, 0xca, 0x14, 0x52, 0xb0, 0xf1, + 0x62, 0x16, 0xb0, 0x12, 0x1f, 0xab, 0x3b, 0xc7, 0x40, 0x39, 0xb4, 0xca, + 0xaa, 0x6c, 0x51, 0x95, 0xff, 0x0f, 0x85, 0x9a, 0xf3, 0x63, 0x60, 0xf6, + 0x2e, 0x91, 0xf7, 0x46, 0xb8, 0x96, 0x42, 0x8a, 0x08, 0x99, 0x72, 0x1d, + 0x84, 0xbf, 0xff, 0x99, 0x14, 0x31, 0xb2, 0xcb, 0x39, 0x46, 0x05, 0x9c, + 0xa3, 0x90, 0x0b, 0xdf, 0x67, 0xd0, 0xd9, 0xf8, 0x07, 0x55, 0x8b, 0xc7, + 0x4d, 0x28, 0x32, 0x9b, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, + 0x44, 0xae, 0x42, 0x60, 0x82, } +// Data represents the icon var Data []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x02, 0x40, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xcd, 0x58, 0x8b, - 0x71, 0xc2, 0x30, 0x0c, 0x55, 0x58, 0xa0, 0xe9, 0x06, 0x61, 0x03, 0xba, - 0x41, 0x36, 0x80, 0x0d, 0xa0, 0x13, 0x14, 0x26, 0x80, 0x0d, 0xc8, 0x06, - 0xb0, 0x41, 0xdb, 0x09, 0xd2, 0x0d, 0xc2, 0x06, 0x4e, 0x27, 0x80, 0x0d, - 0x54, 0xf9, 0xe2, 0x50, 0x45, 0xb1, 0x4d, 0x42, 0x3e, 0xf0, 0xee, 0x74, - 0xc1, 0x1f, 0x29, 0xcf, 0x96, 0x25, 0x39, 0x04, 0xd0, 0x11, 0x88, 0x18, - 0xd1, 0x23, 0x34, 0xcd, 0x4b, 0x10, 0x04, 0x39, 0x8c, 0x09, 0x22, 0x10, - 0x93, 0x24, 0x24, 0x0a, 0xdd, 0xc8, 0x48, 0x0e, 0x24, 0x0b, 0x18, 0x02, - 0x64, 0x38, 0x24, 0xd9, 0x92, 0x9c, 0xb1, 0x3d, 0x14, 0xc9, 0x12, 0xfa, - 0x82, 0x5e, 0xe5, 0x9d, 0x44, 0xfa, 0x25, 0x66, 0x76, 0x65, 0x8f, 0xfd, - 0x63, 0x0f, 0x6d, 0x61, 0xc8, 0x64, 0x38, 0x1c, 0xb4, 0xed, 0xb0, 0x0d, - 0xa1, 0x21, 0xc9, 0x94, 0x48, 0x9b, 0x92, 0x19, 0xc2, 0x4d, 0x2e, 0xec, - 0x6f, 0x91, 0x59, 0xe1, 0xf8, 0xa8, 0xa4, 0x86, 0x80, 0x91, 0xd1, 0x3e, - 0xcd, 0x48, 0x22, 0x18, 0x17, 0x39, 0xc9, 0x1b, 0x25, 0xd4, 0x8b, 0x6e, - 0x4c, 0xd8, 0xc0, 0xea, 0x01, 0x64, 0xc0, 0xbc, 0x73, 0x5d, 0x36, 0xf8, - 0x0e, 0x29, 0xb0, 0x13, 0xca, 0x49, 0xbe, 0x49, 0x4e, 0x24, 0x2f, 0x24, - 0x53, 0x92, 0x39, 0xdc, 0x26, 0x5f, 0xea, 0x29, 0xd3, 0xf6, 0xe9, 0xe9, - 0x92, 0xf3, 0x0a, 0x8c, 0xcc, 0xc2, 0xe2, 0x5b, 0x45, 0x12, 0x83, 0x03, - 0x58, 0x9c, 0x37, 0xd5, 0xa3, 0x5e, 0xcc, 0x27, 0x1d, 0x2d, 0x46, 0x23, - 0x36, 0xae, 0xf3, 0xd2, 0x0c, 0x8b, 0x3a, 0x16, 0xb2, 0xfe, 0x08, 0xab, - 0x29, 0x22, 0x13, 0xe3, 0x3e, 0x3d, 0x25, 0xde, 0x99, 0x70, 0x42, 0x32, - 0xef, 0x70, 0x32, 0x5b, 0xac, 0x97, 0x8e, 0x7d, 0xf9, 0x02, 0xfc, 0x4f, - 0xa2, 0x4a, 0xf4, 0xd9, 0xf4, 0xb6, 0xcc, 0x6e, 0x2c, 0xc6, 0x32, 0x4e, - 0x88, 0xe3, 0xc0, 0xfa, 0x7d, 0x39, 0x49, 0x31, 0x02, 0x51, 0xb9, 0x08, - 0xb4, 0xaf, 0xde, 0x65, 0x3f, 0xe5, 0x03, 0x7c, 0xfb, 0x38, 0xe6, 0x8e, - 0x15, 0xd8, 0x50, 0xcb, 0xb6, 0x68, 0xd9, 0x6d, 0x92, 0x9d, 0xe8, 0x8b, - 0xd9, 0x79, 0xaa, 0xcc, 0xd5, 0x61, 0x2f, 0x6b, 0xca, 0xaf, 0x79, 0xc6, - 0xac, 0x4f, 0x87, 0xe5, 0x3b, 0x93, 0x4b, 0x39, 0x87, 0x8c, 0xac, 0x19, - 0x99, 0x0f, 0x7a, 0xcc, 0x4c, 0xf3, 0xc4, 0xe6, 0x7e, 0x91, 0x6c, 0x98, - 0xbd, 0x72, 0xce, 0x0f, 0x08, 0x4c, 0xa0, 0x8e, 0x0b, 0xb4, 0xc3, 0x99, - 0xfd, 0x0e, 0xd8, 0x6f, 0x5f, 0xf1, 0x0c, 0x9d, 0x73, 0xb0, 0x9b, 0xcb, - 0x3e, 0x2d, 0xf6, 0xd2, 0x06, 0x2e, 0x9b, 0x99, 0xb9, 0x32, 0xdd, 0x44, - 0xa5, 0x11, 0x8e, 0x94, 0x19, 0x3f, 0xa2, 0x1b, 0xd7, 0x10, 0xc7, 0xea, - 0xa1, 0xd6, 0x11, 0xa6, 0x3c, 0x7a, 0x89, 0xcb, 0x3e, 0x5f, 0x95, 0x34, - 0x10, 0xb3, 0x31, 0xb9, 0xba, 0xb3, 0xe9, 0x0b, 0x05, 0x01, 0x25, 0xfa, - 0x12, 0x9b, 0x9e, 0xc7, 0x33, 0x95, 0xb0, 0x97, 0xca, 0x0a, 0xeb, 0x89, - 0x51, 0xbb, 0x70, 0x86, 0xb7, 0x13, 0x63, 0x24, 0x5c, 0xe8, 0xd2, 0x53, - 0xe2, 0x9d, 0x07, 0xa9, 0x84, 0x16, 0x52, 0xce, 0x3b, 0x30, 0x16, 0xfe, - 0x57, 0x77, 0xe8, 0xad, 0xd0, 0x7e, 0x47, 0x8f, 0xf5, 0x38, 0x2f, 0xae, - 0x3a, 0x5a, 0x6c, 0x91, 0x91, 0x43, 0x11, 0x9e, 0x27, 0xd3, 0xd6, 0x45, - 0x72, 0x09, 0xfe, 0x28, 0x6a, 0xab, 0x97, 0x53, 0x71, 0x9d, 0x4a, 0xe6, - 0x3b, 0x7c, 0x1c, 0xae, 0x3b, 0xfa, 0x14, 0x17, 0x34, 0xbe, 0x3b, 0xd7, - 0xc4, 0x68, 0x6e, 0x6c, 0x1b, 0x18, 0x1f, 0x3b, 0xef, 0x28, 0xd6, 0x23, - 0x6e, 0x48, 0x24, 0xd0, 0x04, 0xf8, 0x4c, 0x9f, 0x41, 0x86, 0xd0, 0xd0, - 0x1f, 0x8a, 0x29, 0xb6, 0xf9, 0x50, 0x1c, 0xd8, 0x7d, 0xcd, 0xdc, 0xe4, - 0x21, 0xe5, 0xba, 0x03, 0xb7, 0x85, 0x42, 0xcf, 0x5d, 0x7b, 0x4c, 0x62, - 0x95, 0xda, 0xd7, 0x3b, 0xb0, 0x28, 0x33, 0xba, 0x4a, 0xfb, 0xce, 0x98, - 0x1e, 0x4b, 0xee, 0xd9, 0x91, 0x00, 0x3a, 0x02, 0x45, 0x31, 0xed, 0xfa, - 0x97, 0xde, 0x1f, 0xd5, 0x42, 0xb4, 0x70, 0xf7, 0x10, 0xdd, 0x39, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, + 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, + 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, + 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, + 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, + 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, + 0x00, 0x02, 0x40, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xcd, 0x58, 0x8b, + 0x71, 0xc2, 0x30, 0x0c, 0x55, 0x58, 0xa0, 0xe9, 0x06, 0x61, 0x03, 0xba, + 0x41, 0x36, 0x80, 0x0d, 0xa0, 0x13, 0x14, 0x26, 0x80, 0x0d, 0xc8, 0x06, + 0xb0, 0x41, 0xdb, 0x09, 0xd2, 0x0d, 0xc2, 0x06, 0x4e, 0x27, 0x80, 0x0d, + 0x54, 0xf9, 0xe2, 0x50, 0x45, 0xb1, 0x4d, 0x42, 0x3e, 0xf0, 0xee, 0x74, + 0xc1, 0x1f, 0x29, 0xcf, 0x96, 0x25, 0x39, 0x04, 0xd0, 0x11, 0x88, 0x18, + 0xd1, 0x23, 0x34, 0xcd, 0x4b, 0x10, 0x04, 0x39, 0x8c, 0x09, 0x22, 0x10, + 0x93, 0x24, 0x24, 0x0a, 0xdd, 0xc8, 0x48, 0x0e, 0x24, 0x0b, 0x18, 0x02, + 0x64, 0x38, 0x24, 0xd9, 0x92, 0x9c, 0xb1, 0x3d, 0x14, 0xc9, 0x12, 0xfa, + 0x82, 0x5e, 0xe5, 0x9d, 0x44, 0xfa, 0x25, 0x66, 0x76, 0x65, 0x8f, 0xfd, + 0x63, 0x0f, 0x6d, 0x61, 0xc8, 0x64, 0x38, 0x1c, 0xb4, 0xed, 0xb0, 0x0d, + 0xa1, 0x21, 0xc9, 0x94, 0x48, 0x9b, 0x92, 0x19, 0xc2, 0x4d, 0x2e, 0xec, + 0x6f, 0x91, 0x59, 0xe1, 0xf8, 0xa8, 0xa4, 0x86, 0x80, 0x91, 0xd1, 0x3e, + 0xcd, 0x48, 0x22, 0x18, 0x17, 0x39, 0xc9, 0x1b, 0x25, 0xd4, 0x8b, 0x6e, + 0x4c, 0xd8, 0xc0, 0xea, 0x01, 0x64, 0xc0, 0xbc, 0x73, 0x5d, 0x36, 0xf8, + 0x0e, 0x29, 0xb0, 0x13, 0xca, 0x49, 0xbe, 0x49, 0x4e, 0x24, 0x2f, 0x24, + 0x53, 0x92, 0x39, 0xdc, 0x26, 0x5f, 0xea, 0x29, 0xd3, 0xf6, 0xe9, 0xe9, + 0x92, 0xf3, 0x0a, 0x8c, 0xcc, 0xc2, 0xe2, 0x5b, 0x45, 0x12, 0x83, 0x03, + 0x58, 0x9c, 0x37, 0xd5, 0xa3, 0x5e, 0xcc, 0x27, 0x1d, 0x2d, 0x46, 0x23, + 0x36, 0xae, 0xf3, 0xd2, 0x0c, 0x8b, 0x3a, 0x16, 0xb2, 0xfe, 0x08, 0xab, + 0x29, 0x22, 0x13, 0xe3, 0x3e, 0x3d, 0x25, 0xde, 0x99, 0x70, 0x42, 0x32, + 0xef, 0x70, 0x32, 0x5b, 0xac, 0x97, 0x8e, 0x7d, 0xf9, 0x02, 0xfc, 0x4f, + 0xa2, 0x4a, 0xf4, 0xd9, 0xf4, 0xb6, 0xcc, 0x6e, 0x2c, 0xc6, 0x32, 0x4e, + 0x88, 0xe3, 0xc0, 0xfa, 0x7d, 0x39, 0x49, 0x31, 0x02, 0x51, 0xb9, 0x08, + 0xb4, 0xaf, 0xde, 0x65, 0x3f, 0xe5, 0x03, 0x7c, 0xfb, 0x38, 0xe6, 0x8e, + 0x15, 0xd8, 0x50, 0xcb, 0xb6, 0x68, 0xd9, 0x6d, 0x92, 0x9d, 0xe8, 0x8b, + 0xd9, 0x79, 0xaa, 0xcc, 0xd5, 0x61, 0x2f, 0x6b, 0xca, 0xaf, 0x79, 0xc6, + 0xac, 0x4f, 0x87, 0xe5, 0x3b, 0x93, 0x4b, 0x39, 0x87, 0x8c, 0xac, 0x19, + 0x99, 0x0f, 0x7a, 0xcc, 0x4c, 0xf3, 0xc4, 0xe6, 0x7e, 0x91, 0x6c, 0x98, + 0xbd, 0x72, 0xce, 0x0f, 0x08, 0x4c, 0xa0, 0x8e, 0x0b, 0xb4, 0xc3, 0x99, + 0xfd, 0x0e, 0xd8, 0x6f, 0x5f, 0xf1, 0x0c, 0x9d, 0x73, 0xb0, 0x9b, 0xcb, + 0x3e, 0x2d, 0xf6, 0xd2, 0x06, 0x2e, 0x9b, 0x99, 0xb9, 0x32, 0xdd, 0x44, + 0xa5, 0x11, 0x8e, 0x94, 0x19, 0x3f, 0xa2, 0x1b, 0xd7, 0x10, 0xc7, 0xea, + 0xa1, 0xd6, 0x11, 0xa6, 0x3c, 0x7a, 0x89, 0xcb, 0x3e, 0x5f, 0x95, 0x34, + 0x10, 0xb3, 0x31, 0xb9, 0xba, 0xb3, 0xe9, 0x0b, 0x05, 0x01, 0x25, 0xfa, + 0x12, 0x9b, 0x9e, 0xc7, 0x33, 0x95, 0xb0, 0x97, 0xca, 0x0a, 0xeb, 0x89, + 0x51, 0xbb, 0x70, 0x86, 0xb7, 0x13, 0x63, 0x24, 0x5c, 0xe8, 0xd2, 0x53, + 0xe2, 0x9d, 0x07, 0xa9, 0x84, 0x16, 0x52, 0xce, 0x3b, 0x30, 0x16, 0xfe, + 0x57, 0x77, 0xe8, 0xad, 0xd0, 0x7e, 0x47, 0x8f, 0xf5, 0x38, 0x2f, 0xae, + 0x3a, 0x5a, 0x6c, 0x91, 0x91, 0x43, 0x11, 0x9e, 0x27, 0xd3, 0xd6, 0x45, + 0x72, 0x09, 0xfe, 0x28, 0x6a, 0xab, 0x97, 0x53, 0x71, 0x9d, 0x4a, 0xe6, + 0x3b, 0x7c, 0x1c, 0xae, 0x3b, 0xfa, 0x14, 0x17, 0x34, 0xbe, 0x3b, 0xd7, + 0xc4, 0x68, 0x6e, 0x6c, 0x1b, 0x18, 0x1f, 0x3b, 0xef, 0x28, 0xd6, 0x23, + 0x6e, 0x48, 0x24, 0xd0, 0x04, 0xf8, 0x4c, 0x9f, 0x41, 0x86, 0xd0, 0xd0, + 0x1f, 0x8a, 0x29, 0xb6, 0xf9, 0x50, 0x1c, 0xd8, 0x7d, 0xcd, 0xdc, 0xe4, + 0x21, 0xe5, 0xba, 0x03, 0xb7, 0x85, 0x42, 0xcf, 0x5d, 0x7b, 0x4c, 0x62, + 0x95, 0xda, 0xd7, 0x3b, 0xb0, 0x28, 0x33, 0xba, 0x4a, 0xfb, 0xce, 0x98, + 0x1e, 0x4b, 0xee, 0xd9, 0x91, 0x00, 0x3a, 0x02, 0x45, 0x31, 0xed, 0xfa, + 0x97, 0xde, 0x1f, 0xd5, 0x42, 0xb4, 0x70, 0xf7, 0x10, 0xdd, 0x39, 0x00, + 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, } +// DataDarkHibernate represents the dark icon hibernated var DataDarkHibernate []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x02, 0xf2, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xc5, 0x58, 0x2d, - 0xb7, 0xe2, 0x40, 0x0c, 0xbd, 0xe5, 0x3c, 0x81, 0x44, 0x22, 0x2b, 0x91, - 0x48, 0x64, 0x25, 0x72, 0x25, 0xb2, 0x3f, 0x61, 0xe5, 0xfe, 0x8c, 0x95, - 0x48, 0x24, 0x12, 0xf9, 0x24, 0xb2, 0x12, 0x89, 0xac, 0x7c, 0xb2, 0xb2, - 0x8e, 0x9d, 0xdb, 0x26, 0x6c, 0x3a, 0x9d, 0xce, 0xa3, 0x7c, 0xbd, 0x7b, - 0x4e, 0x4f, 0xcb, 0x74, 0x92, 0xb9, 0x4d, 0x32, 0x49, 0x86, 0x04, 0x0f, - 0xe2, 0x72, 0xb9, 0xcc, 0xdc, 0x6d, 0x2a, 0x3f, 0xeb, 0x24, 0x49, 0x2a, - 0x3c, 0x80, 0x04, 0x23, 0xe1, 0x08, 0xa4, 0xee, 0xb6, 0x90, 0x6b, 0x36, - 0x30, 0xed, 0x4b, 0xae, 0xb3, 0x23, 0x78, 0xc6, 0xb3, 0x09, 0x39, 0x12, - 0xb4, 0xc0, 0x4a, 0xae, 0x29, 0xc6, 0x81, 0x16, 0x3b, 0x3a, 0x62, 0xa7, - 0x5b, 0x26, 0x7f, 0x4b, 0xc8, 0x91, 0xa1, 0x25, 0x7e, 0xdd, 0x41, 0x04, - 0xf7, 0x10, 0x4b, 0x22, 0x44, 0x48, 0x20, 0x43, 0x6b, 0x95, 0x67, 0xa2, - 0x70, 0xa4, 0x3e, 0x31, 0x86, 0x90, 0x90, 0xc9, 0xdd, 0x35, 0xc7, 0x6b, - 0xc0, 0xf8, 0xda, 0x39, 0x62, 0xb5, 0xff, 0x62, 0x32, 0x20, 0x90, 0xbf, - 0x90, 0x0c, 0x44, 0xf7, 0x26, 0xf4, 0xa2, 0x47, 0xc8, 0x59, 0x67, 0x8d, - 0xd7, 0x92, 0x51, 0xa4, 0xb2, 0xd6, 0x30, 0x21, 0x37, 0x61, 0x89, 0xe7, - 0xc7, 0x4c, 0x0c, 0x2b, 0xd9, 0x34, 0x7d, 0x42, 0x26, 0x88, 0xdf, 0x8d, - 0xb5, 0xac, 0xdd, 0x25, 0xe4, 0x40, 0xeb, 0xcc, 0xf0, 0x7e, 0x70, 0xcd, - 0xab, 0x57, 0x3e, 0xcc, 0x8b, 0x21, 0x57, 0x31, 0x7f, 0x30, 0xdb, 0x72, - 0x67, 0x4c, 0x45, 0x41, 0x2c, 0x4b, 0xfb, 0x72, 0x95, 0x59, 0x78, 0x48, - 0x8e, 0x6b, 0x1f, 0xf9, 0xd0, 0x6c, 0x7b, 0xf1, 0xe3, 0x26, 0xa0, 0xf0, - 0xe0, 0xb6, 0x66, 0x19, 0x50, 0xa0, 0xf1, 0x96, 0x05, 0x16, 0xb8, 0x57, - 0x8e, 0x69, 0xa0, 0x54, 0x97, 0x2d, 0x02, 0x4a, 0x77, 0xaa, 0x94, 0x3e, - 0x76, 0xd7, 0x9c, 0x75, 0x4c, 0xfd, 0x2d, 0x19, 0x77, 0x87, 0xd6, 0x72, - 0x0a, 0x3e, 0x6f, 0x6f, 0x94, 0xf3, 0x8b, 0x70, 0xc3, 0x41, 0x5d, 0x36, - 0x0f, 0xb0, 0xad, 0x44, 0x69, 0x06, 0xaf, 0x86, 0xb9, 0xb1, 0x02, 0x6d, - 0x19, 0xa8, 0xdc, 0xf3, 0x0e, 0x6d, 0xde, 0x9a, 0x8a, 0x5c, 0x3d, 0x54, - 0xfb, 0xdc, 0x38, 0x65, 0x54, 0xee, 0x20, 0x72, 0x8a, 0x74, 0x88, 0xd0, - 0xc9, 0x90, 0x59, 0x23, 0x1c, 0x5b, 0x1c, 0x5b, 0xb8, 0xf7, 0x5b, 0x21, - 0xb0, 0x97, 0xaf, 0xaf, 0xa5, 0x1d, 0xc9, 0x11, 0x8e, 0x95, 0x8c, 0xef, - 0xdd, 0xbc, 0xc6, 0xa5, 0xee, 0xb9, 0x54, 0x22, 0xca, 0x61, 0x22, 0x0a, - 0x2c, 0xce, 0x42, 0x26, 0x45, 0x3c, 0x27, 0x51, 0x6e, 0x23, 0x44, 0x2a, - 0xd3, 0x07, 0x6d, 0xd0, 0x25, 0xf3, 0x17, 0x12, 0xb0, 0x82, 0xa5, 0xe8, - 0x26, 0x3a, 0x85, 0x96, 0x5c, 0x68, 0x21, 0xbf, 0x8a, 0xab, 0xe2, 0xd4, - 0x8c, 0xb1, 0x18, 0xda, 0xba, 0xb3, 0x16, 0x39, 0xc6, 0xc6, 0xca, 0x91, - 0x29, 0x44, 0x21, 0x3f, 0x40, 0xad, 0xcd, 0x78, 0x2a, 0x44, 0xee, 0x2c, - 0x77, 0xcd, 0xcc, 0x9c, 0x53, 0xca, 0xd5, 0x41, 0xa8, 0x96, 0xd5, 0x18, - 0x87, 0xa1, 0xf9, 0xb1, 0x76, 0x65, 0x3a, 0x34, 0xe7, 0x23, 0xa0, 0x90, - 0xec, 0x69, 0xa5, 0xd2, 0x8c, 0xf5, 0x6a, 0x8e, 0xe0, 0x6c, 0xfb, 0x1b, - 0x5a, 0x4a, 0x52, 0x48, 0x8a, 0xd6, 0x6d, 0xec, 0xa3, 0xe8, 0x32, 0x8e, - 0x65, 0x56, 0x4e, 0xee, 0xbd, 0x38, 0x9b, 0x04, 0x7a, 0xe0, 0x95, 0x28, - 0x2f, 0xe1, 0xf9, 0xd8, 0x03, 0x5d, 0xc2, 0x9d, 0xd2, 0xf8, 0xde, 0xc4, - 0xe2, 0x1e, 0xdd, 0x2d, 0xfd, 0xdb, 0x23, 0xc3, 0x7e, 0x48, 0x53, 0x45, - 0x27, 0xdd, 0x90, 0x8b, 0xba, 0xcc, 0x2a, 0x48, 0x35, 0xe8, 0xb8, 0x1b, - 0xd0, 0x0d, 0x48, 0xa2, 0x96, 0x31, 0xbb, 0xc5, 0x73, 0x5e, 0x7c, 0x96, - 0x1e, 0x67, 0x8b, 0x36, 0x7e, 0x7a, 0x72, 0xda, 0x9c, 0xc9, 0x07, 0x2c, - 0xbd, 0x0f, 0xbc, 0x66, 0x6a, 0x7f, 0x7b, 0x6b, 0x62, 0xd4, 0xed, 0xcf, - 0x45, 0xe7, 0xa2, 0xb4, 0xd2, 0xc6, 0x4a, 0x94, 0x6e, 0xd0, 0x0d, 0xe4, - 0xbd, 0xb5, 0xba, 0x7c, 0x5c, 0x48, 0x2e, 0x47, 0xd7, 0x65, 0xa7, 0x26, - 0x1d, 0x18, 0xa1, 0xdc, 0xfb, 0xa2, 0x68, 0x0f, 0x2c, 0xb1, 0xb2, 0x46, - 0xb8, 0x74, 0xc4, 0xe4, 0x96, 0xf8, 0xbf, 0x4b, 0x2d, 0x9a, 0xca, 0x90, - 0x98, 0x89, 0x7f, 0x10, 0xde, 0x19, 0x1a, 0xe0, 0xea, 0x77, 0x35, 0xf5, - 0x77, 0x4d, 0xff, 0x18, 0x39, 0x5a, 0x8f, 0xc1, 0x0f, 0x4b, 0x28, 0xc3, - 0xcf, 0xf4, 0x43, 0xc4, 0x41, 0x2d, 0x6a, 0xf3, 0x10, 0x83, 0xb0, 0xc2, - 0xfb, 0x51, 0x59, 0xf7, 0x5e, 0x09, 0x49, 0xc0, 0x7d, 0xe2, 0xfd, 0x38, - 0xda, 0x1f, 0x9d, 0x4c, 0x2d, 0xc7, 0xde, 0x02, 0xef, 0x43, 0xe1, 0x07, - 0x7f, 0xaf, 0x74, 0x48, 0x9e, 0xf8, 0xc2, 0xeb, 0x51, 0x86, 0x0e, 0x8c, - 0x43, 0xe7, 0xb2, 0x1d, 0x5e, 0x4b, 0xaa, 0x44, 0x9b, 0xd1, 0x7b, 0x88, - 0x9e, 0xed, 0x23, 0xfd, 0xd0, 0x23, 0x18, 0x7f, 0x94, 0xb6, 0x88, 0xf4, - 0xc0, 0x63, 0x11, 0xed, 0xb5, 0x6f, 0x26, 0xa4, 0x78, 0x80, 0x18, 0x77, - 0x2f, 0x37, 0x4a, 0x11, 0x3a, 0xcb, 0xdf, 0x4d, 0xc8, 0x10, 0x4b, 0xd1, - 0x66, 0xdc, 0x39, 0x86, 0x8f, 0xdc, 0x8c, 0xbf, 0x12, 0x6d, 0x7b, 0x52, - 0x62, 0x04, 0x46, 0x13, 0xf2, 0xe1, 0xb7, 0xc0, 0x8f, 0xfe, 0xa5, 0xf7, - 0x0f, 0x7b, 0x0e, 0x6f, 0xa0, 0x07, 0xba, 0x9c, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, + 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, + 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, + 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, + 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, + 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, + 0x00, 0x02, 0xf2, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xc5, 0x58, 0x2d, + 0xb7, 0xe2, 0x40, 0x0c, 0xbd, 0xe5, 0x3c, 0x81, 0x44, 0x22, 0x2b, 0x91, + 0x48, 0x64, 0x25, 0x72, 0x25, 0xb2, 0x3f, 0x61, 0xe5, 0xfe, 0x8c, 0x95, + 0x48, 0x24, 0x12, 0xf9, 0x24, 0xb2, 0x12, 0x89, 0xac, 0x7c, 0xb2, 0xb2, + 0x8e, 0x9d, 0xdb, 0x26, 0x6c, 0x3a, 0x9d, 0xce, 0xa3, 0x7c, 0xbd, 0x7b, + 0x4e, 0x4f, 0xcb, 0x74, 0x92, 0xb9, 0x4d, 0x32, 0x49, 0x86, 0x04, 0x0f, + 0xe2, 0x72, 0xb9, 0xcc, 0xdc, 0x6d, 0x2a, 0x3f, 0xeb, 0x24, 0x49, 0x2a, + 0x3c, 0x80, 0x04, 0x23, 0xe1, 0x08, 0xa4, 0xee, 0xb6, 0x90, 0x6b, 0x36, + 0x30, 0xed, 0x4b, 0xae, 0xb3, 0x23, 0x78, 0xc6, 0xb3, 0x09, 0x39, 0x12, + 0xb4, 0xc0, 0x4a, 0xae, 0x29, 0xc6, 0x81, 0x16, 0x3b, 0x3a, 0x62, 0xa7, + 0x5b, 0x26, 0x7f, 0x4b, 0xc8, 0x91, 0xa1, 0x25, 0x7e, 0xdd, 0x41, 0x04, + 0xf7, 0x10, 0x4b, 0x22, 0x44, 0x48, 0x20, 0x43, 0x6b, 0x95, 0x67, 0xa2, + 0x70, 0xa4, 0x3e, 0x31, 0x86, 0x90, 0x90, 0xc9, 0xdd, 0x35, 0xc7, 0x6b, + 0xc0, 0xf8, 0xda, 0x39, 0x62, 0xb5, 0xff, 0x62, 0x32, 0x20, 0x90, 0xbf, + 0x90, 0x0c, 0x44, 0xf7, 0x26, 0xf4, 0xa2, 0x47, 0xc8, 0x59, 0x67, 0x8d, + 0xd7, 0x92, 0x51, 0xa4, 0xb2, 0xd6, 0x30, 0x21, 0x37, 0x61, 0x89, 0xe7, + 0xc7, 0x4c, 0x0c, 0x2b, 0xd9, 0x34, 0x7d, 0x42, 0x26, 0x88, 0xdf, 0x8d, + 0xb5, 0xac, 0xdd, 0x25, 0xe4, 0x40, 0xeb, 0xcc, 0xf0, 0x7e, 0x70, 0xcd, + 0xab, 0x57, 0x3e, 0xcc, 0x8b, 0x21, 0x57, 0x31, 0x7f, 0x30, 0xdb, 0x72, + 0x67, 0x4c, 0x45, 0x41, 0x2c, 0x4b, 0xfb, 0x72, 0x95, 0x59, 0x78, 0x48, + 0x8e, 0x6b, 0x1f, 0xf9, 0xd0, 0x6c, 0x7b, 0xf1, 0xe3, 0x26, 0xa0, 0xf0, + 0xe0, 0xb6, 0x66, 0x19, 0x50, 0xa0, 0xf1, 0x96, 0x05, 0x16, 0xb8, 0x57, + 0x8e, 0x69, 0xa0, 0x54, 0x97, 0x2d, 0x02, 0x4a, 0x77, 0xaa, 0x94, 0x3e, + 0x76, 0xd7, 0x9c, 0x75, 0x4c, 0xfd, 0x2d, 0x19, 0x77, 0x87, 0xd6, 0x72, + 0x0a, 0x3e, 0x6f, 0x6f, 0x94, 0xf3, 0x8b, 0x70, 0xc3, 0x41, 0x5d, 0x36, + 0x0f, 0xb0, 0xad, 0x44, 0x69, 0x06, 0xaf, 0x86, 0xb9, 0xb1, 0x02, 0x6d, + 0x19, 0xa8, 0xdc, 0xf3, 0x0e, 0x6d, 0xde, 0x9a, 0x8a, 0x5c, 0x3d, 0x54, + 0xfb, 0xdc, 0x38, 0x65, 0x54, 0xee, 0x20, 0x72, 0x8a, 0x74, 0x88, 0xd0, + 0xc9, 0x90, 0x59, 0x23, 0x1c, 0x5b, 0x1c, 0x5b, 0xb8, 0xf7, 0x5b, 0x21, + 0xb0, 0x97, 0xaf, 0xaf, 0xa5, 0x1d, 0xc9, 0x11, 0x8e, 0x95, 0x8c, 0xef, + 0xdd, 0xbc, 0xc6, 0xa5, 0xee, 0xb9, 0x54, 0x22, 0xca, 0x61, 0x22, 0x0a, + 0x2c, 0xce, 0x42, 0x26, 0x45, 0x3c, 0x27, 0x51, 0x6e, 0x23, 0x44, 0x2a, + 0xd3, 0x07, 0x6d, 0xd0, 0x25, 0xf3, 0x17, 0x12, 0xb0, 0x82, 0xa5, 0xe8, + 0x26, 0x3a, 0x85, 0x96, 0x5c, 0x68, 0x21, 0xbf, 0x8a, 0xab, 0xe2, 0xd4, + 0x8c, 0xb1, 0x18, 0xda, 0xba, 0xb3, 0x16, 0x39, 0xc6, 0xc6, 0xca, 0x91, + 0x29, 0x44, 0x21, 0x3f, 0x40, 0xad, 0xcd, 0x78, 0x2a, 0x44, 0xee, 0x2c, + 0x77, 0xcd, 0xcc, 0x9c, 0x53, 0xca, 0xd5, 0x41, 0xa8, 0x96, 0xd5, 0x18, + 0x87, 0xa1, 0xf9, 0xb1, 0x76, 0x65, 0x3a, 0x34, 0xe7, 0x23, 0xa0, 0x90, + 0xec, 0x69, 0xa5, 0xd2, 0x8c, 0xf5, 0x6a, 0x8e, 0xe0, 0x6c, 0xfb, 0x1b, + 0x5a, 0x4a, 0x52, 0x48, 0x8a, 0xd6, 0x6d, 0xec, 0xa3, 0xe8, 0x32, 0x8e, + 0x65, 0x56, 0x4e, 0xee, 0xbd, 0x38, 0x9b, 0x04, 0x7a, 0xe0, 0x95, 0x28, + 0x2f, 0xe1, 0xf9, 0xd8, 0x03, 0x5d, 0xc2, 0x9d, 0xd2, 0xf8, 0xde, 0xc4, + 0xe2, 0x1e, 0xdd, 0x2d, 0xfd, 0xdb, 0x23, 0xc3, 0x7e, 0x48, 0x53, 0x45, + 0x27, 0xdd, 0x90, 0x8b, 0xba, 0xcc, 0x2a, 0x48, 0x35, 0xe8, 0xb8, 0x1b, + 0xd0, 0x0d, 0x48, 0xa2, 0x96, 0x31, 0xbb, 0xc5, 0x73, 0x5e, 0x7c, 0x96, + 0x1e, 0x67, 0x8b, 0x36, 0x7e, 0x7a, 0x72, 0xda, 0x9c, 0xc9, 0x07, 0x2c, + 0xbd, 0x0f, 0xbc, 0x66, 0x6a, 0x7f, 0x7b, 0x6b, 0x62, 0xd4, 0xed, 0xcf, + 0x45, 0xe7, 0xa2, 0xb4, 0xd2, 0xc6, 0x4a, 0x94, 0x6e, 0xd0, 0x0d, 0xe4, + 0xbd, 0xb5, 0xba, 0x7c, 0x5c, 0x48, 0x2e, 0x47, 0xd7, 0x65, 0xa7, 0x26, + 0x1d, 0x18, 0xa1, 0xdc, 0xfb, 0xa2, 0x68, 0x0f, 0x2c, 0xb1, 0xb2, 0x46, + 0xb8, 0x74, 0xc4, 0xe4, 0x96, 0xf8, 0xbf, 0x4b, 0x2d, 0x9a, 0xca, 0x90, + 0x98, 0x89, 0x7f, 0x10, 0xde, 0x19, 0x1a, 0xe0, 0xea, 0x77, 0x35, 0xf5, + 0x77, 0x4d, 0xff, 0x18, 0x39, 0x5a, 0x8f, 0xc1, 0x0f, 0x4b, 0x28, 0xc3, + 0xcf, 0xf4, 0x43, 0xc4, 0x41, 0x2d, 0x6a, 0xf3, 0x10, 0x83, 0xb0, 0xc2, + 0xfb, 0x51, 0x59, 0xf7, 0x5e, 0x09, 0x49, 0xc0, 0x7d, 0xe2, 0xfd, 0x38, + 0xda, 0x1f, 0x9d, 0x4c, 0x2d, 0xc7, 0xde, 0x02, 0xef, 0x43, 0xe1, 0x07, + 0x7f, 0xaf, 0x74, 0x48, 0x9e, 0xf8, 0xc2, 0xeb, 0x51, 0x86, 0x0e, 0x8c, + 0x43, 0xe7, 0xb2, 0x1d, 0x5e, 0x4b, 0xaa, 0x44, 0x9b, 0xd1, 0x7b, 0x88, + 0x9e, 0xed, 0x23, 0xfd, 0xd0, 0x23, 0x18, 0x7f, 0x94, 0xb6, 0x88, 0xf4, + 0xc0, 0x63, 0x11, 0xed, 0xb5, 0x6f, 0x26, 0xa4, 0x78, 0x80, 0x18, 0x77, + 0x2f, 0x37, 0x4a, 0x11, 0x3a, 0xcb, 0xdf, 0x4d, 0xc8, 0x10, 0x4b, 0xd1, + 0x66, 0xdc, 0x39, 0x86, 0x8f, 0xdc, 0x8c, 0xbf, 0x12, 0x6d, 0x7b, 0x52, + 0x62, 0x04, 0x46, 0x13, 0xf2, 0xe1, 0xb7, 0xc0, 0x8f, 0xfe, 0xa5, 0xf7, + 0x0f, 0x7b, 0x0e, 0x6f, 0xa0, 0x07, 0xba, 0x9c, 0x76, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, } diff --git a/icon/iconlinux.go b/icon/iconlinux.go index 98fee30e4..7b42eb1f2 100644 --- a/icon/iconlinux.go +++ b/icon/iconlinux.go @@ -1,292 +1,296 @@ +//go:build linux // +build linux // File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) package icon +// GetIcon will return the icon func GetIcon() []byte { return Data } +// GetIconHiber will return the hibernated icon func GetIconHiber() []byte { return DataHibernate } +// Data represents the icon var Data []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x55, 0xed, 0xb3, 0x47, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x05, 0xa5, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0x5c, 0xe1, - 0x75, 0xdb, 0x36, 0x10, 0x3e, 0xf5, 0xf9, 0x7f, 0xd5, 0x09, 0xca, 0x4e, - 0x10, 0x25, 0x0b, 0x98, 0xe9, 0x02, 0x51, 0xbb, 0x80, 0x9c, 0x09, 0xec, - 0x76, 0x01, 0x51, 0x13, 0x58, 0x59, 0xa0, 0xd2, 0x06, 0x6e, 0x17, 0x28, - 0x94, 0x09, 0xe4, 0x2c, 0x50, 0x72, 0x82, 0xca, 0x13, 0xf4, 0x8a, 0x0b, - 0xc0, 0x88, 0x91, 0x0e, 0x07, 0x80, 0xa4, 0x48, 0x51, 0xca, 0xf7, 0x1e, - 0x4c, 0x99, 0x3c, 0xe0, 0x80, 0x4f, 0x07, 0xe0, 0x70, 0x00, 0x05, 0xf0, - 0x0d, 0x22, 0x46, 0xd0, 0x23, 0x10, 0x31, 0xd1, 0x97, 0xb1, 0x4e, 0xe5, - 0xb5, 0x8a, 0xc2, 0x5e, 0x9f, 0x47, 0xa3, 0xd1, 0x0b, 0xf4, 0x84, 0xce, - 0x08, 0xd2, 0x64, 0x10, 0x01, 0x53, 0x9d, 0x26, 0x3a, 0xdd, 0x02, 0x4f, - 0x8a, 0x0b, 0x44, 0xd0, 0xb3, 0x4e, 0x9f, 0x74, 0xda, 0x50, 0xea, 0x93, - 0xb4, 0xd6, 0x40, 0xa4, 0xe8, 0x74, 0xaf, 0x93, 0xc2, 0xf6, 0xa1, 0x74, - 0x9a, 0x59, 0x2b, 0x1c, 0x16, 0x74, 0xa5, 0x53, 0x9d, 0x9e, 0x74, 0xda, - 0x61, 0x37, 0x58, 0x0d, 0x82, 0x28, 0x4b, 0x8c, 0xc2, 0xfe, 0xb0, 0xc2, - 0x73, 0x24, 0x0a, 0x4d, 0x57, 0x7a, 0xc4, 0xf3, 0xc1, 0x0a, 0xcf, 0x85, - 0x28, 0x5d, 0x91, 0x29, 0x76, 0xd7, 0x95, 0x62, 0x90, 0xeb, 0x34, 0x83, - 0xbe, 0x80, 0xe7, 0x67, 0x35, 0x2e, 0x3c, 0x42, 0x03, 0xd4, 0x9a, 0xe6, - 0xd1, 0x98, 0xef, 0x13, 0x98, 0x29, 0x7b, 0x08, 0x28, 0x74, 0x7a, 0xab, - 0x5d, 0x83, 0x02, 0x22, 0x11, 0x4d, 0x90, 0x25, 0x47, 0x81, 0xf1, 0x63, - 0x86, 0x84, 0x02, 0x6a, 0x90, 0x14, 0x45, 0x90, 0x26, 0x87, 0x2c, 0x86, - 0xc8, 0x09, 0x75, 0xf0, 0xce, 0x0d, 0x05, 0x44, 0x92, 0x14, 0x4c, 0x90, - 0xb5, 0x9c, 0x2d, 0x0c, 0x97, 0x9c, 0x12, 0x05, 0x44, 0x90, 0xf4, 0x5d, - 0x88, 0x50, 0xa5, 0x5b, 0x0d, 0x9d, 0x1c, 0x42, 0xa2, 0x93, 0xc2, 0x40, - 0x37, 0xc0, 0x6b, 0x41, 0x68, 0xd6, 0x50, 0x5b, 0x18, 0xde, 0x98, 0xe3, - 0x03, 0x2d, 0x82, 0x5f, 0xfb, 0x84, 0x42, 0x2c, 0x68, 0x0e, 0x97, 0x47, - 0x0e, 0x61, 0x12, 0xe2, 0x02, 0x88, 0x16, 0xa4, 0x0b, 0xb8, 0xd3, 0x97, - 0x15, 0x5c, 0x36, 0x68, 0x3c, 0xda, 0xb8, 0x1e, 0x3a, 0x09, 0x1a, 0xf0, - 0x74, 0x1e, 0x8b, 0x42, 0xa7, 0xd7, 0xae, 0xf0, 0x89, 0xd4, 0xc5, 0x32, - 0xb8, 0x7c, 0x72, 0x08, 0x09, 0x98, 0x61, 0x84, 0x05, 0x6b, 0x41, 0xd6, - 0x7a, 0x72, 0xb8, 0x2e, 0xfc, 0xc4, 0x4d, 0xfd, 0x2e, 0x0b, 0xca, 0xe0, - 0xfa, 0xc0, 0x8e, 0xb5, 0x47, 0x16, 0x74, 0xa5, 0xd6, 0x53, 0xe2, 0x68, - 0xc0, 0xbe, 0x61, 0x84, 0x32, 0x68, 0x86, 0xa2, 0xf2, 0x79, 0x0c, 0xa7, - 0x77, 0x2e, 0x8b, 0x83, 0xff, 0x13, 0xa8, 0x0f, 0x8a, 0x99, 0x6f, 0x9c, - 0x4f, 0xc9, 0x7a, 0x30, 0x1e, 0x14, 0x0b, 0xca, 0xd0, 0x44, 0x13, 0xc7, - 0x4c, 0x99, 0x63, 0xfb, 0x6c, 0x8d, 0x26, 0x46, 0xd3, 0x14, 0xa7, 0xd4, - 0xb7, 0xe3, 0xca, 0xac, 0x16, 0x7e, 0x17, 0x51, 0x58, 0x8e, 0x35, 0x02, - 0x52, 0x56, 0x47, 0x8e, 0xf1, 0xc8, 0x3b, 0xd2, 0xf7, 0x20, 0x15, 0xa6, - 0x02, 0x0b, 0x59, 0xa2, 0xc4, 0x74, 0x58, 0xc5, 0x33, 0x0c, 0x47, 0x23, - 0x7d, 0x68, 0x7a, 0xc6, 0x3a, 0x50, 0x97, 0x92, 0x0a, 0x09, 0x41, 0x06, - 0x2d, 0x01, 0xfd, 0xe1, 0x5a, 0x7a, 0x96, 0x42, 0x4b, 0xc0, 0xb0, 0x2f, - 0xe5, 0xab, 0x6e, 0x56, 0x1d, 0xa4, 0x43, 0xa2, 0x83, 0x0b, 0x3d, 0xca, - 0x67, 0x42, 0x05, 0x26, 0xb6, 0x9c, 0xc4, 0xde, 0xda, 0xe9, 0xf4, 0x51, - 0xe7, 0x79, 0xe6, 0xe4, 0xf5, 0xfd, 0x3f, 0x75, 0x9e, 0x02, 0xf8, 0x48, - 0x01, 0xdd, 0x17, 0xc3, 0x12, 0x35, 0xf4, 0x11, 0x41, 0xf4, 0xd1, 0xe9, - 0x18, 0xda, 0x7a, 0x50, 0x99, 0x9b, 0x43, 0x65, 0x4b, 0x0f, 0xb3, 0x4f, - 0xe0, 0xae, 0xe8, 0x3d, 0xca, 0x96, 0x90, 0xa3, 0x30, 0x7e, 0x50, 0x43, - 0x0f, 0xf2, 0xd3, 0xe7, 0x44, 0x90, 0x9f, 0x37, 0xd4, 0xa7, 0x50, 0xc6, - 0x32, 0x36, 0x13, 0x5b, 0x61, 0x34, 0xdd, 0x52, 0x61, 0x38, 0x72, 0x74, - 0x34, 0x1c, 0x4d, 0x77, 0x2b, 0x31, 0x05, 0x37, 0x91, 0x39, 0x86, 0x43, - 0x09, 0xf5, 0x96, 0x08, 0x56, 0x9c, 0x72, 0x29, 0xc3, 0xca, 0xa1, 0x24, - 0xc7, 0x78, 0x90, 0x1e, 0x17, 0x01, 0x64, 0xc5, 0x99, 0xe3, 0xd9, 0x0c, - 0xeb, 0x6d, 0x2f, 0xe5, 0xc8, 0xbb, 0x03, 0xd2, 0x78, 0xb4, 0x3b, 0x14, - 0x1e, 0x7b, 0x94, 0x24, 0x8c, 0x82, 0xd0, 0x59, 0xc1, 0x85, 0x14, 0x02, - 0x81, 0x86, 0x1c, 0x17, 0xf2, 0x4a, 0x72, 0xc1, 0xf5, 0x05, 0x4b, 0x18, - 0x57, 0x85, 0x53, 0x41, 0x50, 0x31, 0x85, 0xa7, 0xd8, 0x1c, 0xe2, 0x38, - 0x73, 0xd0, 0x10, 0xc9, 0x72, 0xd2, 0xc0, 0x06, 0xa7, 0x4c, 0xd9, 0x5b, - 0x41, 0x3e, 0x21, 0x99, 0x90, 0x88, 0xe2, 0x27, 0xe6, 0xde, 0x3d, 0x34, - 0x07, 0x7d, 0x43, 0x0a, 0x05, 0xff, 0xc6, 0x3e, 0x6b, 0x2b, 0x16, 0xce, - 0x75, 0xeb, 0x8f, 0x82, 0x7c, 0x42, 0x7f, 0x6e, 0xaa, 0xff, 0x38, 0xc0, - 0x4d, 0x99, 0xa9, 0x43, 0xee, 0xc5, 0xa3, 0x30, 0x61, 0xee, 0xd1, 0x94, - 0xfb, 0x9b, 0x23, 0x8f, 0x2b, 0xdc, 0x5b, 0xc0, 0x7e, 0x0d, 0x56, 0xd5, - 0xb9, 0xb1, 0xd7, 0x72, 0xaa, 0xae, 0xe2, 0x9d, 0x4e, 0x87, 0x5e, 0x32, - 0xeb, 0x0e, 0x54, 0xea, 0x66, 0x80, 0xf2, 0x12, 0x23, 0x3d, 0xcc, 0x29, - 0x99, 0xa4, 0x0b, 0x28, 0x8f, 0x59, 0x09, 0x23, 0x2f, 0x75, 0x99, 0xcc, - 0xa3, 0x8b, 0x1d, 0x02, 0x18, 0x39, 0xa9, 0xdd, 0x77, 0x24, 0x13, 0xd2, - 0xc5, 0xbe, 0x87, 0x7e, 0x70, 0x16, 0x5b, 0x4c, 0x37, 0x01, 0x32, 0x3f, - 0x30, 0xf7, 0xc8, 0xac, 0x0f, 0x1b, 0x40, 0x07, 0x19, 0xa4, 0x2e, 0x76, - 0xeb, 0xb8, 0xbf, 0xe0, 0xbc, 0x65, 0xf2, 0x86, 0x75, 0x79, 0x1f, 0x80, - 0x1f, 0xef, 0xde, 0xe9, 0x67, 0x3f, 0x56, 0xf3, 0xa3, 0x19, 0xaf, 0xca, - 0x5d, 0x0a, 0x8e, 0x5c, 0xae, 0x3b, 0x49, 0x5f, 0xc2, 0x7e, 0xaa, 0xc7, - 0xaf, 0x9d, 0xb4, 0x43, 0x1c, 0x79, 0x95, 0xd8, 0x7c, 0x8a, 0x2f, 0x21, - 0x06, 0xe6, 0xd0, 0xb8, 0x1f, 0xb9, 0xa7, 0x8c, 0xd4, 0xca, 0xfa, 0x66, - 0x31, 0x6e, 0xaa, 0x5f, 0xfa, 0xca, 0x2d, 0xbb, 0x58, 0x21, 0xd4, 0xf3, - 0x15, 0x73, 0x6f, 0x0d, 0xcd, 0x51, 0xe8, 0xf4, 0x56, 0x12, 0xb0, 0x3b, - 0x0d, 0x24, 0xd3, 0xc6, 0x81, 0xcd, 0x05, 0x73, 0xef, 0x56, 0x90, 0xdf, - 0xeb, 0xc4, 0x18, 0xa7, 0x69, 0x9f, 0xe7, 0x09, 0xeb, 0x83, 0xfc, 0x1a, - 0x76, 0x71, 0xec, 0xd0, 0x95, 0x7a, 0xca, 0xca, 0x51, 0xb6, 0x34, 0xae, - 0x17, 0xc4, 0xb5, 0x19, 0x65, 0x67, 0x2c, 0xe3, 0x1a, 0x82, 0xf5, 0x97, - 0x1a, 0x2e, 0x72, 0xe6, 0xe8, 0xd8, 0xed, 0xc4, 0xfa, 0x27, 0xd9, 0xc8, - 0x19, 0xe4, 0x48, 0x97, 0x86, 0x89, 0x1d, 0x57, 0x01, 0x25, 0x65, 0xc0, - 0x76, 0x16, 0xab, 0x0a, 0xdd, 0x8b, 0xd5, 0xfb, 0x8a, 0xdc, 0xcc, 0x21, - 0x13, 0xbb, 0xfe, 0x53, 0xc8, 0x93, 0xe3, 0xb3, 0x1e, 0x76, 0xb1, 0xba, - 0x8c, 0xce, 0xb4, 0xcf, 0x7b, 0xe7, 0xa9, 0xb8, 0xc2, 0xf8, 0x70, 0xc7, - 0xa4, 0xa1, 0xbe, 0xa9, 0x90, 0x7f, 0xeb, 0x69, 0xeb, 0x97, 0x2e, 0x39, - 0xaa, 0x64, 0xa2, 0x02, 0x9d, 0x31, 0x1f, 0x8b, 0x4c, 0x0f, 0x9c, 0x0b, - 0x41, 0x71, 0x19, 0xbc, 0x2a, 0x1b, 0x57, 0x80, 0x39, 0x15, 0x5f, 0x78, - 0xf2, 0x70, 0xcb, 0x89, 0xcf, 0x03, 0xb4, 0x2b, 0xf8, 0xd5, 0x40, 0x1f, - 0x79, 0xe7, 0x19, 0xc8, 0x38, 0xde, 0xaf, 0x47, 0xff, 0x8a, 0xbe, 0xc4, - 0x1c, 0x5a, 0x02, 0x86, 0x85, 0x30, 0x1e, 0xa0, 0x25, 0xa0, 0x19, 0xe3, - 0x42, 0x30, 0x76, 0x15, 0xa0, 0x02, 0x0b, 0x58, 0x61, 0x83, 0x73, 0xc8, - 0x18, 0x7f, 0x42, 0xf6, 0xb1, 0x05, 0x7d, 0xa1, 0xb3, 0xae, 0x92, 0x0a, - 0x7a, 0xc0, 0x70, 0xe4, 0x18, 0xb9, 0x0d, 0x63, 0x2b, 0x3a, 0xc7, 0xfa, - 0x81, 0xaf, 0x2e, 0xf4, 0xcd, 0x7c, 0x05, 0xc6, 0x56, 0x3e, 0x47, 0x63, - 0x51, 0xe4, 0xab, 0xb8, 0x36, 0xf2, 0x68, 0x8a, 0x5e, 0x62, 0x3d, 0x62, - 0x5c, 0xfa, 0xa6, 0x28, 0x6f, 0x1c, 0xd6, 0xd1, 0x77, 0xb4, 0x71, 0xc8, - 0xed, 0xcd, 0xaf, 0xf5, 0xa5, 0xc9, 0x09, 0xf5, 0x17, 0xd8, 0x7b, 0xa1, - 0x5d, 0x6c, 0x3d, 0xb7, 0xa9, 0x6f, 0xad, 0x07, 0xe7, 0xf7, 0xd5, 0x1b, - 0x1c, 0x41, 0x29, 0x98, 0x59, 0xe5, 0x1a, 0x71, 0x74, 0x04, 0xe6, 0x28, - 0xdc, 0x61, 0xa7, 0xb7, 0x0d, 0x5c, 0x1f, 0xd6, 0x6c, 0x54, 0x81, 0x93, - 0xbc, 0x52, 0x2b, 0x0a, 0x3f, 0x40, 0x65, 0xad, 0xe8, 0x03, 0x5c, 0x0f, - 0x96, 0x2e, 0xe7, 0x52, 0x3a, 0xc4, 0x49, 0x83, 0x1d, 0xc5, 0x6b, 0xce, - 0x22, 0xb2, 0x77, 0x42, 0x50, 0x1b, 0xdf, 0x44, 0x1f, 0xe2, 0xb4, 0x19, - 0xde, 0xc3, 0xe5, 0xe3, 0xf7, 0x91, 0xf0, 0x82, 0xb0, 0x18, 0x93, 0xa6, - 0xc3, 0x05, 0x70, 0xd9, 0x5d, 0x6d, 0x61, 0xdb, 0xe8, 0x44, 0xe8, 0xab, - 0x08, 0x34, 0x60, 0x4f, 0xe0, 0xb2, 0xb0, 0xd5, 0xe4, 0xbc, 0xf1, 0x09, - 0x79, 0x77, 0x35, 0xac, 0xf9, 0xfd, 0x02, 0x72, 0x58, 0x76, 0x68, 0xa0, - 0x71, 0xe7, 0xd7, 0x10, 0xc1, 0xd8, 0xd7, 0xa1, 0x2e, 0xe1, 0xe4, 0x3d, - 0x91, 0xf3, 0x73, 0xe8, 0xeb, 0x50, 0xb1, 0x2f, 0xd4, 0x25, 0x30, 0x6c, - 0x92, 0xa2, 0xc8, 0x21, 0x5c, 0xd3, 0x2b, 0x99, 0xd1, 0xe4, 0x10, 0x82, - 0x5e, 0xa8, 0xab, 0xc2, 0x2a, 0xa0, 0xad, 0x98, 0x67, 0x18, 0x0e, 0xe8, - 0x0b, 0x8d, 0x26, 0xa7, 0x31, 0xd0, 0x1f, 0xc7, 0xee, 0x1b, 0xff, 0x61, - 0xc3, 0xd7, 0xc2, 0xdb, 0x20, 0xc9, 0x17, 0x40, 0xef, 0x0b, 0xff, 0x60, - 0x8b, 0x27, 0x64, 0x1b, 0x01, 0xe3, 0xce, 0x21, 0x9f, 0x1a, 0x64, 0x35, - 0x19, 0x36, 0x3c, 0xc7, 0x7d, 0x12, 0x60, 0xbf, 0x44, 0x11, 0x31, 0x7f, - 0xe0, 0x40, 0x7e, 0x05, 0xa6, 0x2b, 0xa2, 0x88, 0x94, 0x7f, 0xb1, 0x61, - 0x50, 0xbf, 0x37, 0xa0, 0x89, 0x0f, 0xd3, 0x18, 0xa5, 0xb0, 0x3d, 0x94, - 0xa4, 0xfc, 0x6d, 0xcb, 0x3e, 0x69, 0x57, 0xea, 0xfa, 0x27, 0xba, 0x68, - 0x3d, 0x47, 0x1b, 0x94, 0xaf, 0xec, 0x67, 0x5f, 0xe3, 0xca, 0x53, 0x61, - 0xd5, 0x9f, 0xe8, 0xfa, 0x0b, 0x3a, 0xfc, 0x5d, 0xb3, 0xce, 0x08, 0xe2, - 0x60, 0x49, 0x4b, 0x60, 0x1f, 0x6c, 0xaf, 0x12, 0x56, 0xd8, 0xf4, 0x32, - 0xba, 0x84, 0xdf, 0x2b, 0xbb, 0x54, 0xfc, 0x0f, 0x85, 0xc2, 0xcb, 0xde, - 0x42, 0x6f, 0xed, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, + 0x08, 0x06, 0x00, 0x00, 0x00, 0x55, 0xed, 0xb3, 0x47, 0x00, 0x00, 0x00, + 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, + 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, + 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, + 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, + 0x00, 0x05, 0xa5, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0x5c, 0xe1, + 0x75, 0xdb, 0x36, 0x10, 0x3e, 0xf5, 0xf9, 0x7f, 0xd5, 0x09, 0xca, 0x4e, + 0x10, 0x25, 0x0b, 0x98, 0xe9, 0x02, 0x51, 0xbb, 0x80, 0x9c, 0x09, 0xec, + 0x76, 0x01, 0x51, 0x13, 0x58, 0x59, 0xa0, 0xd2, 0x06, 0x6e, 0x17, 0x28, + 0x94, 0x09, 0xe4, 0x2c, 0x50, 0x72, 0x82, 0xca, 0x13, 0xf4, 0x8a, 0x0b, + 0xc0, 0x88, 0x91, 0x0e, 0x07, 0x80, 0xa4, 0x48, 0x51, 0xca, 0xf7, 0x1e, + 0x4c, 0x99, 0x3c, 0xe0, 0x80, 0x4f, 0x07, 0xe0, 0x70, 0x00, 0x05, 0xf0, + 0x0d, 0x22, 0x46, 0xd0, 0x23, 0x10, 0x31, 0xd1, 0x97, 0xb1, 0x4e, 0xe5, + 0xb5, 0x8a, 0xc2, 0x5e, 0x9f, 0x47, 0xa3, 0xd1, 0x0b, 0xf4, 0x84, 0xce, + 0x08, 0xd2, 0x64, 0x10, 0x01, 0x53, 0x9d, 0x26, 0x3a, 0xdd, 0x02, 0x4f, + 0x8a, 0x0b, 0x44, 0xd0, 0xb3, 0x4e, 0x9f, 0x74, 0xda, 0x50, 0xea, 0x93, + 0xb4, 0xd6, 0x40, 0xa4, 0xe8, 0x74, 0xaf, 0x93, 0xc2, 0xf6, 0xa1, 0x74, + 0x9a, 0x59, 0x2b, 0x1c, 0x16, 0x74, 0xa5, 0x53, 0x9d, 0x9e, 0x74, 0xda, + 0x61, 0x37, 0x58, 0x0d, 0x82, 0x28, 0x4b, 0x8c, 0xc2, 0xfe, 0xb0, 0xc2, + 0x73, 0x24, 0x0a, 0x4d, 0x57, 0x7a, 0xc4, 0xf3, 0xc1, 0x0a, 0xcf, 0x85, + 0x28, 0x5d, 0x91, 0x29, 0x76, 0xd7, 0x95, 0x62, 0x90, 0xeb, 0x34, 0x83, + 0xbe, 0x80, 0xe7, 0x67, 0x35, 0x2e, 0x3c, 0x42, 0x03, 0xd4, 0x9a, 0xe6, + 0xd1, 0x98, 0xef, 0x13, 0x98, 0x29, 0x7b, 0x08, 0x28, 0x74, 0x7a, 0xab, + 0x5d, 0x83, 0x02, 0x22, 0x11, 0x4d, 0x90, 0x25, 0x47, 0x81, 0xf1, 0x63, + 0x86, 0x84, 0x02, 0x6a, 0x90, 0x14, 0x45, 0x90, 0x26, 0x87, 0x2c, 0x86, + 0xc8, 0x09, 0x75, 0xf0, 0xce, 0x0d, 0x05, 0x44, 0x92, 0x14, 0x4c, 0x90, + 0xb5, 0x9c, 0x2d, 0x0c, 0x97, 0x9c, 0x12, 0x05, 0x44, 0x90, 0xf4, 0x5d, + 0x88, 0x50, 0xa5, 0x5b, 0x0d, 0x9d, 0x1c, 0x42, 0xa2, 0x93, 0xc2, 0x40, + 0x37, 0xc0, 0x6b, 0x41, 0x68, 0xd6, 0x50, 0x5b, 0x18, 0xde, 0x98, 0xe3, + 0x03, 0x2d, 0x82, 0x5f, 0xfb, 0x84, 0x42, 0x2c, 0x68, 0x0e, 0x97, 0x47, + 0x0e, 0x61, 0x12, 0xe2, 0x02, 0x88, 0x16, 0xa4, 0x0b, 0xb8, 0xd3, 0x97, + 0x15, 0x5c, 0x36, 0x68, 0x3c, 0xda, 0xb8, 0x1e, 0x3a, 0x09, 0x1a, 0xf0, + 0x74, 0x1e, 0x8b, 0x42, 0xa7, 0xd7, 0xae, 0xf0, 0x89, 0xd4, 0xc5, 0x32, + 0xb8, 0x7c, 0x72, 0x08, 0x09, 0x98, 0x61, 0x84, 0x05, 0x6b, 0x41, 0xd6, + 0x7a, 0x72, 0xb8, 0x2e, 0xfc, 0xc4, 0x4d, 0xfd, 0x2e, 0x0b, 0xca, 0xe0, + 0xfa, 0xc0, 0x8e, 0xb5, 0x47, 0x16, 0x74, 0xa5, 0xd6, 0x53, 0xe2, 0x68, + 0xc0, 0xbe, 0x61, 0x84, 0x32, 0x68, 0x86, 0xa2, 0xf2, 0x79, 0x0c, 0xa7, + 0x77, 0x2e, 0x8b, 0x83, 0xff, 0x13, 0xa8, 0x0f, 0x8a, 0x99, 0x6f, 0x9c, + 0x4f, 0xc9, 0x7a, 0x30, 0x1e, 0x14, 0x0b, 0xca, 0xd0, 0x44, 0x13, 0xc7, + 0x4c, 0x99, 0x63, 0xfb, 0x6c, 0x8d, 0x26, 0x46, 0xd3, 0x14, 0xa7, 0xd4, + 0xb7, 0xe3, 0xca, 0xac, 0x16, 0x7e, 0x17, 0x51, 0x58, 0x8e, 0x35, 0x02, + 0x52, 0x56, 0x47, 0x8e, 0xf1, 0xc8, 0x3b, 0xd2, 0xf7, 0x20, 0x15, 0xa6, + 0x02, 0x0b, 0x59, 0xa2, 0xc4, 0x74, 0x58, 0xc5, 0x33, 0x0c, 0x47, 0x23, + 0x7d, 0x68, 0x7a, 0xc6, 0x3a, 0x50, 0x97, 0x92, 0x0a, 0x09, 0x41, 0x06, + 0x2d, 0x01, 0xfd, 0xe1, 0x5a, 0x7a, 0x96, 0x42, 0x4b, 0xc0, 0xb0, 0x2f, + 0xe5, 0xab, 0x6e, 0x56, 0x1d, 0xa4, 0x43, 0xa2, 0x83, 0x0b, 0x3d, 0xca, + 0x67, 0x42, 0x05, 0x26, 0xb6, 0x9c, 0xc4, 0xde, 0xda, 0xe9, 0xf4, 0x51, + 0xe7, 0x79, 0xe6, 0xe4, 0xf5, 0xfd, 0x3f, 0x75, 0x9e, 0x02, 0xf8, 0x48, + 0x01, 0xdd, 0x17, 0xc3, 0x12, 0x35, 0xf4, 0x11, 0x41, 0xf4, 0xd1, 0xe9, + 0x18, 0xda, 0x7a, 0x50, 0x99, 0x9b, 0x43, 0x65, 0x4b, 0x0f, 0xb3, 0x4f, + 0xe0, 0xae, 0xe8, 0x3d, 0xca, 0x96, 0x90, 0xa3, 0x30, 0x7e, 0x50, 0x43, + 0x0f, 0xf2, 0xd3, 0xe7, 0x44, 0x90, 0x9f, 0x37, 0xd4, 0xa7, 0x50, 0xc6, + 0x32, 0x36, 0x13, 0x5b, 0x61, 0x34, 0xdd, 0x52, 0x61, 0x38, 0x72, 0x74, + 0x34, 0x1c, 0x4d, 0x77, 0x2b, 0x31, 0x05, 0x37, 0x91, 0x39, 0x86, 0x43, + 0x09, 0xf5, 0x96, 0x08, 0x56, 0x9c, 0x72, 0x29, 0xc3, 0xca, 0xa1, 0x24, + 0xc7, 0x78, 0x90, 0x1e, 0x17, 0x01, 0x64, 0xc5, 0x99, 0xe3, 0xd9, 0x0c, + 0xeb, 0x6d, 0x2f, 0xe5, 0xc8, 0xbb, 0x03, 0xd2, 0x78, 0xb4, 0x3b, 0x14, + 0x1e, 0x7b, 0x94, 0x24, 0x8c, 0x82, 0xd0, 0x59, 0xc1, 0x85, 0x14, 0x02, + 0x81, 0x86, 0x1c, 0x17, 0xf2, 0x4a, 0x72, 0xc1, 0xf5, 0x05, 0x4b, 0x18, + 0x57, 0x85, 0x53, 0x41, 0x50, 0x31, 0x85, 0xa7, 0xd8, 0x1c, 0xe2, 0x38, + 0x73, 0xd0, 0x10, 0xc9, 0x72, 0xd2, 0xc0, 0x06, 0xa7, 0x4c, 0xd9, 0x5b, + 0x41, 0x3e, 0x21, 0x99, 0x90, 0x88, 0xe2, 0x27, 0xe6, 0xde, 0x3d, 0x34, + 0x07, 0x7d, 0x43, 0x0a, 0x05, 0xff, 0xc6, 0x3e, 0x6b, 0x2b, 0x16, 0xce, + 0x75, 0xeb, 0x8f, 0x82, 0x7c, 0x42, 0x7f, 0x6e, 0xaa, 0xff, 0x38, 0xc0, + 0x4d, 0x99, 0xa9, 0x43, 0xee, 0xc5, 0xa3, 0x30, 0x61, 0xee, 0xd1, 0x94, + 0xfb, 0x9b, 0x23, 0x8f, 0x2b, 0xdc, 0x5b, 0xc0, 0x7e, 0x0d, 0x56, 0xd5, + 0xb9, 0xb1, 0xd7, 0x72, 0xaa, 0xae, 0xe2, 0x9d, 0x4e, 0x87, 0x5e, 0x32, + 0xeb, 0x0e, 0x54, 0xea, 0x66, 0x80, 0xf2, 0x12, 0x23, 0x3d, 0xcc, 0x29, + 0x99, 0xa4, 0x0b, 0x28, 0x8f, 0x59, 0x09, 0x23, 0x2f, 0x75, 0x99, 0xcc, + 0xa3, 0x8b, 0x1d, 0x02, 0x18, 0x39, 0xa9, 0xdd, 0x77, 0x24, 0x13, 0xd2, + 0xc5, 0xbe, 0x87, 0x7e, 0x70, 0x16, 0x5b, 0x4c, 0x37, 0x01, 0x32, 0x3f, + 0x30, 0xf7, 0xc8, 0xac, 0x0f, 0x1b, 0x40, 0x07, 0x19, 0xa4, 0x2e, 0x76, + 0xeb, 0xb8, 0xbf, 0xe0, 0xbc, 0x65, 0xf2, 0x86, 0x75, 0x79, 0x1f, 0x80, + 0x1f, 0xef, 0xde, 0xe9, 0x67, 0x3f, 0x56, 0xf3, 0xa3, 0x19, 0xaf, 0xca, + 0x5d, 0x0a, 0x8e, 0x5c, 0xae, 0x3b, 0x49, 0x5f, 0xc2, 0x7e, 0xaa, 0xc7, + 0xaf, 0x9d, 0xb4, 0x43, 0x1c, 0x79, 0x95, 0xd8, 0x7c, 0x8a, 0x2f, 0x21, + 0x06, 0xe6, 0xd0, 0xb8, 0x1f, 0xb9, 0xa7, 0x8c, 0xd4, 0xca, 0xfa, 0x66, + 0x31, 0x6e, 0xaa, 0x5f, 0xfa, 0xca, 0x2d, 0xbb, 0x58, 0x21, 0xd4, 0xf3, + 0x15, 0x73, 0x6f, 0x0d, 0xcd, 0x51, 0xe8, 0xf4, 0x56, 0x12, 0xb0, 0x3b, + 0x0d, 0x24, 0xd3, 0xc6, 0x81, 0xcd, 0x05, 0x73, 0xef, 0x56, 0x90, 0xdf, + 0xeb, 0xc4, 0x18, 0xa7, 0x69, 0x9f, 0xe7, 0x09, 0xeb, 0x83, 0xfc, 0x1a, + 0x76, 0x71, 0xec, 0xd0, 0x95, 0x7a, 0xca, 0xca, 0x51, 0xb6, 0x34, 0xae, + 0x17, 0xc4, 0xb5, 0x19, 0x65, 0x67, 0x2c, 0xe3, 0x1a, 0x82, 0xf5, 0x97, + 0x1a, 0x2e, 0x72, 0xe6, 0xe8, 0xd8, 0xed, 0xc4, 0xfa, 0x27, 0xd9, 0xc8, + 0x19, 0xe4, 0x48, 0x97, 0x86, 0x89, 0x1d, 0x57, 0x01, 0x25, 0x65, 0xc0, + 0x76, 0x16, 0xab, 0x0a, 0xdd, 0x8b, 0xd5, 0xfb, 0x8a, 0xdc, 0xcc, 0x21, + 0x13, 0xbb, 0xfe, 0x53, 0xc8, 0x93, 0xe3, 0xb3, 0x1e, 0x76, 0xb1, 0xba, + 0x8c, 0xce, 0xb4, 0xcf, 0x7b, 0xe7, 0xa9, 0xb8, 0xc2, 0xf8, 0x70, 0xc7, + 0xa4, 0xa1, 0xbe, 0xa9, 0x90, 0x7f, 0xeb, 0x69, 0xeb, 0x97, 0x2e, 0x39, + 0xaa, 0x64, 0xa2, 0x02, 0x9d, 0x31, 0x1f, 0x8b, 0x4c, 0x0f, 0x9c, 0x0b, + 0x41, 0x71, 0x19, 0xbc, 0x2a, 0x1b, 0x57, 0x80, 0x39, 0x15, 0x5f, 0x78, + 0xf2, 0x70, 0xcb, 0x89, 0xcf, 0x03, 0xb4, 0x2b, 0xf8, 0xd5, 0x40, 0x1f, + 0x79, 0xe7, 0x19, 0xc8, 0x38, 0xde, 0xaf, 0x47, 0xff, 0x8a, 0xbe, 0xc4, + 0x1c, 0x5a, 0x02, 0x86, 0x85, 0x30, 0x1e, 0xa0, 0x25, 0xa0, 0x19, 0xe3, + 0x42, 0x30, 0x76, 0x15, 0xa0, 0x02, 0x0b, 0x58, 0x61, 0x83, 0x73, 0xc8, + 0x18, 0x7f, 0x42, 0xf6, 0xb1, 0x05, 0x7d, 0xa1, 0xb3, 0xae, 0x92, 0x0a, + 0x7a, 0xc0, 0x70, 0xe4, 0x18, 0xb9, 0x0d, 0x63, 0x2b, 0x3a, 0xc7, 0xfa, + 0x81, 0xaf, 0x2e, 0xf4, 0xcd, 0x7c, 0x05, 0xc6, 0x56, 0x3e, 0x47, 0x63, + 0x51, 0xe4, 0xab, 0xb8, 0x36, 0xf2, 0x68, 0x8a, 0x5e, 0x62, 0x3d, 0x62, + 0x5c, 0xfa, 0xa6, 0x28, 0x6f, 0x1c, 0xd6, 0xd1, 0x77, 0xb4, 0x71, 0xc8, + 0xed, 0xcd, 0xaf, 0xf5, 0xa5, 0xc9, 0x09, 0xf5, 0x17, 0xd8, 0x7b, 0xa1, + 0x5d, 0x6c, 0x3d, 0xb7, 0xa9, 0x6f, 0xad, 0x07, 0xe7, 0xf7, 0xd5, 0x1b, + 0x1c, 0x41, 0x29, 0x98, 0x59, 0xe5, 0x1a, 0x71, 0x74, 0x04, 0xe6, 0x28, + 0xdc, 0x61, 0xa7, 0xb7, 0x0d, 0x5c, 0x1f, 0xd6, 0x6c, 0x54, 0x81, 0x93, + 0xbc, 0x52, 0x2b, 0x0a, 0x3f, 0x40, 0x65, 0xad, 0xe8, 0x03, 0x5c, 0x0f, + 0x96, 0x2e, 0xe7, 0x52, 0x3a, 0xc4, 0x49, 0x83, 0x1d, 0xc5, 0x6b, 0xce, + 0x22, 0xb2, 0x77, 0x42, 0x50, 0x1b, 0xdf, 0x44, 0x1f, 0xe2, 0xb4, 0x19, + 0xde, 0xc3, 0xe5, 0xe3, 0xf7, 0x91, 0xf0, 0x82, 0xb0, 0x18, 0x93, 0xa6, + 0xc3, 0x05, 0x70, 0xd9, 0x5d, 0x6d, 0x61, 0xdb, 0xe8, 0x44, 0xe8, 0xab, + 0x08, 0x34, 0x60, 0x4f, 0xe0, 0xb2, 0xb0, 0xd5, 0xe4, 0xbc, 0xf1, 0x09, + 0x79, 0x77, 0x35, 0xac, 0xf9, 0xfd, 0x02, 0x72, 0x58, 0x76, 0x68, 0xa0, + 0x71, 0xe7, 0xd7, 0x10, 0xc1, 0xd8, 0xd7, 0xa1, 0x2e, 0xe1, 0xe4, 0x3d, + 0x91, 0xf3, 0x73, 0xe8, 0xeb, 0x50, 0xb1, 0x2f, 0xd4, 0x25, 0x30, 0x6c, + 0x92, 0xa2, 0xc8, 0x21, 0x5c, 0xd3, 0x2b, 0x99, 0xd1, 0xe4, 0x10, 0x82, + 0x5e, 0xa8, 0xab, 0xc2, 0x2a, 0xa0, 0xad, 0x98, 0x67, 0x18, 0x0e, 0xe8, + 0x0b, 0x8d, 0x26, 0xa7, 0x31, 0xd0, 0x1f, 0xc7, 0xee, 0x1b, 0xff, 0x61, + 0xc3, 0xd7, 0xc2, 0xdb, 0x20, 0xc9, 0x17, 0x40, 0xef, 0x0b, 0xff, 0x60, + 0x8b, 0x27, 0x64, 0x1b, 0x01, 0xe3, 0xce, 0x21, 0x9f, 0x1a, 0x64, 0x35, + 0x19, 0x36, 0x3c, 0xc7, 0x7d, 0x12, 0x60, 0xbf, 0x44, 0x11, 0x31, 0x7f, + 0xe0, 0x40, 0x7e, 0x05, 0xa6, 0x2b, 0xa2, 0x88, 0x94, 0x7f, 0xb1, 0x61, + 0x50, 0xbf, 0x37, 0xa0, 0x89, 0x0f, 0xd3, 0x18, 0xa5, 0xb0, 0x3d, 0x94, + 0xa4, 0xfc, 0x6d, 0xcb, 0x3e, 0x69, 0x57, 0xea, 0xfa, 0x27, 0xba, 0x68, + 0x3d, 0x47, 0x1b, 0x94, 0xaf, 0xec, 0x67, 0x5f, 0xe3, 0xca, 0x53, 0x61, + 0xd5, 0x9f, 0xe8, 0xfa, 0x0b, 0x3a, 0xfc, 0x5d, 0xb3, 0xce, 0x08, 0xe2, + 0x60, 0x49, 0x4b, 0x60, 0x1f, 0x6c, 0xaf, 0x12, 0x56, 0xd8, 0xf4, 0x32, + 0xba, 0x84, 0xdf, 0x2b, 0xbb, 0x54, 0xfc, 0x0f, 0x85, 0xc2, 0xcb, 0xde, + 0x42, 0x6f, 0xed, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, + 0xae, 0x42, 0x60, 0x82, } - +// DataHibernate represents the icon hibernated var DataHibernate []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x55, 0xed, 0xb3, 0x47, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x06, 0x38, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0x5c, 0xab, - 0x76, 0xeb, 0x3a, 0x10, 0xdd, 0xe9, 0x2a, 0x08, 0x2c, 0x2c, 0x34, 0x2c, - 0x2c, 0x0c, 0x34, 0x0c, 0x2c, 0x2c, 0x0c, 0x3c, 0xf0, 0xc0, 0xfb, 0x09, - 0x17, 0x1e, 0x78, 0x60, 0x60, 0x60, 0x60, 0xa1, 0x61, 0x60, 0x61, 0xa0, - 0x61, 0x60, 0x60, 0x59, 0xaf, 0x26, 0x1e, 0xe5, 0x2a, 0xca, 0xcc, 0x58, - 0x7e, 0xc4, 0x79, 0x75, 0xaf, 0xe5, 0xe5, 0x46, 0x95, 0x35, 0xf2, 0xd6, - 0x8c, 0x1e, 0xdb, 0xb2, 0x81, 0x1f, 0x98, 0x18, 0xe1, 0x8c, 0xf8, 0xfe, - 0xfe, 0x7e, 0x72, 0xa7, 0xb1, 0x3b, 0xfc, 0x39, 0xc4, 0x96, 0xcf, 0x9b, - 0xd1, 0x68, 0xf4, 0x85, 0x33, 0x61, 0x30, 0x82, 0x1c, 0x19, 0x44, 0xc0, - 0x8b, 0x3b, 0x9e, 0xdd, 0x91, 0x41, 0x26, 0x45, 0x03, 0x11, 0xb4, 0xe1, - 0xa3, 0xa4, 0x63, 0x28, 0xd2, 0x4e, 0x4a, 0x10, 0x93, 0xf2, 0x8a, 0x8a, - 0x98, 0x0c, 0xfd, 0xa2, 0x74, 0xc7, 0x27, 0x2a, 0xb2, 0xb6, 0x38, 0x11, - 0x4e, 0x42, 0x90, 0x23, 0x26, 0x73, 0xa7, 0x09, 0x2a, 0x52, 0x52, 0xbd, - 0xa4, 0x0b, 0x88, 0xa8, 0xe2, 0x14, 0x44, 0xf5, 0x4a, 0x10, 0x13, 0x93, - 0xa3, 0x7f, 0x6f, 0x49, 0x45, 0xef, 0x44, 0xf5, 0x42, 0x10, 0x87, 0x52, - 0x8e, 0xca, 0x6b, 0x2e, 0x01, 0xbd, 0x11, 0xd5, 0x99, 0x20, 0x47, 0x0e, - 0xf5, 0x2f, 0x6f, 0x18, 0x26, 0x94, 0x9a, 0x80, 0xc8, 0x21, 0x92, 0x3e, - 0xd1, 0x01, 0xad, 0x09, 0xba, 0x40, 0xaf, 0xd1, 0xb0, 0x72, 0x24, 0x7d, - 0xa0, 0x25, 0x5a, 0x11, 0xc4, 0xf3, 0x97, 0x77, 0x54, 0x43, 0xf6, 0x35, - 0x80, 0xbc, 0x69, 0xde, 0x26, 0xe4, 0x1a, 0x13, 0xc4, 0xe4, 0xcc, 0x50, - 0xcd, 0x63, 0xae, 0x09, 0xad, 0x48, 0x6a, 0x44, 0x90, 0x23, 0x87, 0x3c, - 0x66, 0x86, 0xcb, 0xeb, 0x6f, 0x52, 0xd1, 0x98, 0xa4, 0x87, 0xd4, 0x8c, - 0x81, 0xe7, 0x5c, 0x2b, 0x39, 0x84, 0xdd, 0x3d, 0xf0, 0xbd, 0x24, 0x21, - 0x89, 0xa0, 0x1b, 0x21, 0xc7, 0xa3, 0x11, 0x49, 0xb5, 0x04, 0xf1, 0x68, - 0x35, 0xc3, 0xf5, 0xf5, 0x39, 0x16, 0xfc, 0x20, 0x53, 0x8b, 0x14, 0x0f, - 0xca, 0x71, 0x5b, 0xe4, 0x78, 0x3c, 0xbb, 0xc6, 0x9f, 0xd6, 0x65, 0x32, - 0x09, 0x72, 0x05, 0xd0, 0x42, 0xf3, 0xd2, 0xe7, 0x39, 0x5d, 0x30, 0xe1, - 0xe5, 0x91, 0x0a, 0x95, 0x20, 0x8e, 0xd1, 0x1c, 0xb7, 0x8f, 0x37, 0xee, - 0x46, 0x44, 0x58, 0x1e, 0x94, 0xe3, 0x36, 0x43, 0x2b, 0x86, 0xe9, 0x08, - 0x22, 0x41, 0xec, 0x3d, 0xaf, 0xb8, 0x1f, 0x4c, 0xb4, 0x51, 0x4d, 0xf3, - 0xa0, 0x1c, 0xf7, 0x87, 0x37, 0x29, 0xf1, 0x88, 0xa0, 0x3b, 0xf4, 0x1e, - 0x8f, 0x4c, 0xea, 0xb0, 0x1f, 0x85, 0x8c, 0x39, 0xba, 0x21, 0x9c, 0xc6, - 0x8f, 0x71, 0xfa, 0xc9, 0x65, 0xbc, 0x6c, 0xe8, 0xd2, 0x6f, 0x92, 0x74, - 0x53, 0x86, 0x09, 0x07, 0x04, 0xb5, 0xf4, 0x1e, 0x12, 0xcf, 0x57, 0x5c, - 0xf0, 0xd1, 0x13, 0x08, 0x1e, 0x21, 0x9e, 0xb9, 0xdc, 0x0c, 0xdd, 0x3b, - 0xfe, 0x53, 0xda, 0x7b, 0x75, 0xd7, 0x17, 0x61, 0x99, 0xa3, 0xa8, 0x70, - 0x2a, 0xf4, 0x2d, 0xb1, 0xb0, 0x56, 0x82, 0x14, 0xdb, 0xc8, 0xd1, 0x9c, - 0xa8, 0xa1, 0xec, 0x7d, 0x38, 0x1b, 0x2b, 0xff, 0x23, 0x26, 0x68, 0x86, - 0x34, 0x3d, 0x99, 0x0a, 0x28, 0xba, 0x3c, 0x7a, 0x71, 0xb6, 0x72, 0xa4, - 0x87, 0x73, 0x27, 0x7b, 0xc1, 0x9c, 0x2e, 0x25, 0x3a, 0xe8, 0x29, 0xc9, - 0xdc, 0xff, 0x78, 0x8c, 0x0a, 0xc9, 0x12, 0x0a, 0xa0, 0x8a, 0x16, 0xe8, - 0x08, 0x2a, 0xc3, 0xd9, 0xa4, 0xe7, 0x5c, 0x96, 0x5c, 0x4b, 0x84, 0x2c, - 0x5c, 0xde, 0x12, 0xdd, 0x6c, 0x91, 0xf7, 0x2d, 0x9d, 0x3d, 0x3a, 0xe7, - 0x35, 0xd9, 0x69, 0x09, 0x32, 0xf6, 0x8d, 0x11, 0xf6, 0x41, 0x29, 0xea, - 0xa0, 0x49, 0x0e, 0xeb, 0x45, 0x74, 0x78, 0x77, 0x26, 0x23, 0xd4, 0x22, - 0x1b, 0x29, 0xbf, 0x4b, 0x5f, 0xbb, 0x6b, 0xe6, 0x90, 0x95, 0x82, 0x5a, - 0xed, 0xa6, 0x85, 0x3d, 0x6a, 0x14, 0xfa, 0x33, 0x87, 0x0e, 0xdf, 0x87, - 0x95, 0xf4, 0x23, 0x24, 0x28, 0x83, 0x8d, 0xb5, 0x46, 0x8e, 0x33, 0x3a, - 0x61, 0xa3, 0x63, 0xe5, 0xff, 0x6a, 0xff, 0x41, 0x37, 0x23, 0x90, 0x44, - 0x37, 0xaa, 0x92, 0xc3, 0xe1, 0x39, 0x69, 0x69, 0xaf, 0xe0, 0xe1, 0x3c, - 0x83, 0x8e, 0xfd, 0x68, 0x16, 0xce, 0x83, 0x2c, 0x0f, 0xa2, 0x0a, 0x7f, - 0x08, 0x15, 0x79, 0xe2, 0x7e, 0x6b, 0x0a, 0x7b, 0x38, 0xa7, 0x16, 0xa6, - 0x35, 0xcf, 0x6f, 0x69, 0xc6, 0xca, 0x2d, 0xbe, 0x0c, 0x92, 0x96, 0x12, - 0x39, 0xe4, 0x31, 0x54, 0x06, 0x8c, 0xc6, 0x88, 0xec, 0x69, 0xba, 0xcf, - 0x92, 0xef, 0x49, 0xc3, 0x9e, 0x8b, 0x54, 0x82, 0xd6, 0x71, 0x85, 0x03, - 0x11, 0x2d, 0x43, 0x3a, 0xe8, 0x9a, 0x5f, 0xfc, 0xa8, 0xe8, 0x00, 0x14, - 0x6e, 0xf8, 0xbf, 0x33, 0x5e, 0xc7, 0xff, 0xe7, 0xd1, 0x68, 0x86, 0x66, - 0xa3, 0x5f, 0x86, 0x4a, 0x1c, 0x1b, 0x47, 0xb6, 0xb6, 0x6c, 0x4b, 0xc3, - 0x21, 0x41, 0x5c, 0x80, 0xd5, 0x22, 0x85, 0x90, 0x96, 0xa3, 0xdd, 0x9c, - 0x86, 0xec, 0xbc, 0x4b, 0xb3, 0x56, 0x7a, 0x3c, 0x23, 0x85, 0x71, 0x30, - 0xfd, 0x90, 0xea, 0xb8, 0x0d, 0x0e, 0x09, 0x54, 0x47, 0x49, 0xf7, 0xb1, - 0xa6, 0x0b, 0x63, 0x4f, 0xaa, 0xf7, 0x20, 0xcb, 0x7b, 0x4a, 0xc1, 0x7b, - 0x32, 0x74, 0x5f, 0x8e, 0xbc, 0xa7, 0xc8, 0x9e, 0x9c, 0xc7, 0x12, 0xb6, - 0x28, 0x1c, 0xff, 0xb8, 0xf3, 0xdc, 0xc8, 0xf3, 0x1a, 0x37, 0x08, 0xdf, - 0xd3, 0xc6, 0xb8, 0xe6, 0x80, 0x20, 0x0b, 0x52, 0x21, 0x7d, 0x88, 0x68, - 0x3b, 0x29, 0xd7, 0xd2, 0x62, 0x02, 0xb9, 0xb7, 0x8f, 0xe5, 0xca, 0x8b, - 0x90, 0x56, 0x1a, 0xf9, 0x77, 0x8d, 0xf7, 0x18, 0xfe, 0x50, 0x20, 0x11, - 0x94, 0x29, 0xf9, 0xbe, 0x6a, 0x0c, 0x3e, 0x09, 0x69, 0x39, 0x84, 0x01, - 0x80, 0x91, 0x43, 0xae, 0x5b, 0x18, 0x52, 0xa1, 0xcd, 0x92, 0xcf, 0x7e, - 0xa8, 0x0e, 0xf1, 0x22, 0xd8, 0xb1, 0x3c, 0xe8, 0x80, 0x20, 0x0b, 0x52, - 0x6c, 0x4b, 0x2d, 0xba, 0xa8, 0x99, 0xb3, 0x50, 0x1f, 0x22, 0x85, 0x25, - 0x69, 0x31, 0x2b, 0x65, 0x10, 0xd0, 0x3c, 0xf5, 0x33, 0xee, 0xab, 0xf8, - 0xfa, 0x39, 0x5f, 0x9b, 0xa1, 0xf2, 0xbc, 0x10, 0x6d, 0xfa, 0xcb, 0xa4, - 0x10, 0x3b, 0xd7, 0xa3, 0x9e, 0x73, 0xd9, 0x3d, 0x40, 0x8a, 0x07, 0x49, - 0x15, 0xfd, 0x12, 0xd2, 0xa7, 0xae, 0xe5, 0xac, 0x10, 0xcb, 0x94, 0x74, - 0x71, 0x9b, 0x0a, 0x4f, 0x20, 0x69, 0x28, 0x96, 0xbc, 0xe8, 0x25, 0xe8, - 0xe0, 0x77, 0xd7, 0x73, 0x7f, 0x35, 0x35, 0xea, 0x2c, 0x85, 0x93, 0xd5, - 0x08, 0x07, 0x4b, 0x8d, 0xa4, 0x49, 0x53, 0x00, 0x9a, 0xa7, 0xc4, 0xe1, - 0x22, 0x75, 0x82, 0x75, 0xd8, 0xd6, 0xac, 0xeb, 0x0a, 0x2e, 0xf7, 0x49, - 0xa8, 0x93, 0xaf, 0x17, 0x0d, 0xd7, 0x44, 0xb0, 0xdf, 0xee, 0xa7, 0x41, - 0x22, 0xc8, 0x0a, 0xbb, 0x1d, 0x27, 0x3e, 0xc4, 0xb6, 0x46, 0x46, 0x89, - 0x20, 0x6b, 0x0e, 0x91, 0x8a, 0x7d, 0x9f, 0xa1, 0x81, 0x17, 0x8c, 0x94, - 0xa7, 0xb5, 0x6a, 0x10, 0xa0, 0x10, 0xd2, 0x32, 0x23, 0x7f, 0xb2, 0x07, - 0x65, 0xe1, 0xea, 0x96, 0x40, 0xab, 0x6b, 0x97, 0x46, 0x5e, 0xd4, 0xc6, - 0x6b, 0xbc, 0xbd, 0x85, 0xb2, 0x9c, 0x88, 0x6d, 0x51, 0xf8, 0x2c, 0x70, - 0xdc, 0xe9, 0x7a, 0xbc, 0xd7, 0x84, 0x36, 0x41, 0x1b, 0x04, 0xac, 0xf9, - 0xdf, 0x2e, 0xff, 0x83, 0xaf, 0x04, 0x6c, 0x92, 0xa4, 0x7e, 0x60, 0x09, - 0xdb, 0xf3, 0x34, 0xf8, 0x85, 0xe8, 0x91, 0xcb, 0x6b, 0x1a, 0x11, 0xcb, - 0x1d, 0x0b, 0xc8, 0x75, 0xf4, 0xfb, 0xac, 0xb5, 0x70, 0x21, 0x3b, 0x85, - 0x90, 0x9e, 0xc3, 0xa8, 0xa3, 0x6f, 0xa4, 0x87, 0xa8, 0x20, 0x0d, 0x47, - 0x8f, 0x45, 0x02, 0xf7, 0x2f, 0x91, 0x0e, 0xca, 0xfb, 0x57, 0x21, 0xc7, - 0x2b, 0x02, 0x13, 0x5e, 0x5a, 0x20, 0xb2, 0x47, 0x1e, 0xfb, 0x17, 0xcd, - 0x1a, 0xa5, 0x44, 0xd5, 0x18, 0xb1, 0x2c, 0x5b, 0x27, 0x2d, 0xef, 0xeb, - 0x37, 0x0a, 0x2e, 0xa2, 0x11, 0xc0, 0x9a, 0x21, 0x1f, 0x28, 0x6d, 0x91, - 0xc1, 0x3a, 0x59, 0xb3, 0x44, 0x35, 0x77, 0xf9, 0x54, 0xae, 0x8f, 0xf7, - 0x1d, 0xa9, 0x5e, 0xd6, 0xc0, 0xde, 0x4a, 0x5a, 0xf4, 0xf2, 0xf5, 0xbf, - 0x60, 0x87, 0xd7, 0x7e, 0xdb, 0x5e, 0x48, 0x10, 0xf5, 0x27, 0xef, 0xb0, - 0x91, 0x22, 0x98, 0x85, 0xb1, 0x4d, 0xad, 0x5d, 0x26, 0x88, 0x5e, 0x33, - 0x1c, 0x0f, 0xb9, 0x26, 0x49, 0x1d, 0xec, 0xe5, 0xa8, 0x57, 0x15, 0xe7, - 0x5e, 0xc5, 0x0c, 0x09, 0xa2, 0x0a, 0xfe, 0x83, 0x7a, 0xf4, 0x22, 0xb9, - 0xb2, 0x4d, 0xf2, 0x84, 0x3a, 0x2d, 0xe9, 0x40, 0x44, 0xef, 0x68, 0x2f, - 0x47, 0x9a, 0x0e, 0xfe, 0xef, 0x91, 0xe4, 0x4a, 0x09, 0xae, 0x80, 0x12, - 0xf5, 0xfa, 0x4e, 0xce, 0x31, 0xdc, 0x7a, 0x1f, 0x72, 0xc3, 0x1d, 0xb2, - 0x53, 0xb6, 0xb7, 0xea, 0x68, 0xef, 0x0d, 0x69, 0xa3, 0x6e, 0x69, 0x3d, - 0xf6, 0xa1, 0x0a, 0x4f, 0x91, 0x06, 0x55, 0xd6, 0xd4, 0xc0, 0x15, 0x9d, - 0xc0, 0x90, 0x4b, 0x2f, 0xc0, 0xde, 0x32, 0xb4, 0x31, 0x12, 0x0a, 0xfc, - 0x8d, 0x66, 0x95, 0xdf, 0xc5, 0x3d, 0xaa, 0xc9, 0xa3, 0xf6, 0x20, 0x2f, - 0xe3, 0xe3, 0x15, 0xdd, 0xd7, 0x58, 0xde, 0x1e, 0x75, 0xc0, 0xa5, 0xf1, - 0xe0, 0xf0, 0xa5, 0x85, 0x3d, 0x2a, 0xeb, 0x8f, 0xea, 0x41, 0x6c, 0x40, - 0x5b, 0x75, 0x37, 0x31, 0xe2, 0x0d, 0x0c, 0xf1, 0xe8, 0xb9, 0x4f, 0x7b, - 0x34, 0xd2, 0x2e, 0xc3, 0x04, 0x69, 0xb1, 0x4a, 0x9e, 0xd0, 0x85, 0xa0, - 0x21, 0x48, 0x39, 0x95, 0xbd, 0x22, 0x4e, 0x38, 0x92, 0x3b, 0x78, 0x78, - 0x2b, 0x71, 0x7f, 0xf8, 0x94, 0x06, 0x01, 0x4d, 0x0f, 0x2a, 0x70, 0x7f, - 0x28, 0xa4, 0x44, 0x91, 0x20, 0xf6, 0xa2, 0x5e, 0xe6, 0x1e, 0x57, 0x02, - 0x75, 0x0a, 0x61, 0x29, 0x8a, 0x05, 0xfa, 0x91, 0x19, 0x2e, 0x1d, 0xbb, - 0xe9, 0x83, 0xf6, 0x4f, 0x95, 0x20, 0x1e, 0xea, 0x96, 0xb8, 0x7d, 0x7c, - 0x8c, 0x8c, 0x5d, 0x23, 0xa6, 0x26, 0x1d, 0x3c, 0xed, 0xbc, 0x55, 0x14, - 0xda, 0x82, 0xd6, 0x23, 0x45, 0xb4, 0x2f, 0x60, 0x4b, 0x21, 0xd7, 0x8a, - 0x4d, 0xca, 0x9a, 0xb2, 0x96, 0x20, 0x76, 0x3f, 0x12, 0xab, 0x5a, 0xad, - 0x83, 0x2e, 0x14, 0x74, 0x2f, 0x8b, 0x94, 0x8c, 0xc9, 0xef, 0x8b, 0x5d, - 0xf1, 0x8b, 0x74, 0x31, 0x6a, 0xf7, 0x1d, 0x85, 0x68, 0xfa, 0x42, 0xdd, - 0xb5, 0x93, 0xd4, 0x88, 0x1c, 0xc2, 0xcf, 0x2b, 0x99, 0x35, 0xb8, 0x97, - 0x97, 0x7a, 0x4b, 0x28, 0x9b, 0xb2, 0xea, 0xd0, 0xe9, 0xbd, 0xf9, 0x04, - 0x1d, 0xfb, 0x12, 0x30, 0xfc, 0x6b, 0xe1, 0x21, 0xbe, 0xdb, 0xef, 0x7b, - 0x3e, 0x35, 0xc8, 0x5b, 0x96, 0xa3, 0xae, 0x3b, 0x64, 0xd1, 0x03, 0x1a, - 0xee, 0x43, 0x1e, 0x02, 0x05, 0x2a, 0xcf, 0xe9, 0xbc, 0x54, 0xea, 0xfb, - 0xe3, 0x26, 0xe7, 0x26, 0x8a, 0xb4, 0xac, 0xcb, 0xfb, 0xb8, 0x49, 0x8c, - 0x81, 0x89, 0x22, 0x2f, 0x21, 0x62, 0x56, 0x7d, 0x12, 0xe3, 0x31, 0xc4, - 0x07, 0x96, 0xbc, 0x36, 0x9c, 0xa1, 0x3f, 0xf8, 0x2f, 0x52, 0x11, 0x31, - 0xeb, 0x3e, 0x42, 0x49, 0xc3, 0xd0, 0x9f, 0xe8, 0xf2, 0x62, 0xba, 0xdf, - 0xbe, 0x92, 0x2a, 0x95, 0x7a, 0x42, 0xe8, 0xa0, 0xc5, 0xe5, 0x60, 0xdf, - 0x35, 0x3b, 0xf7, 0x47, 0xde, 0xfc, 0xc6, 0x83, 0x31, 0x8e, 0xb5, 0x65, - 0xbf, 0x0f, 0xf1, 0x6b, 0x28, 0x32, 0x7e, 0xd0, 0x02, 0xff, 0x01, 0x68, - 0x32, 0xf2, 0xde, 0x6e, 0x41, 0xa4, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, + 0x08, 0x06, 0x00, 0x00, 0x00, 0x55, 0xed, 0xb3, 0x47, 0x00, 0x00, 0x00, + 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, + 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, + 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, + 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, + 0x00, 0x06, 0x38, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0x5c, 0xab, + 0x76, 0xeb, 0x3a, 0x10, 0xdd, 0xe9, 0x2a, 0x08, 0x2c, 0x2c, 0x34, 0x2c, + 0x2c, 0x0c, 0x34, 0x0c, 0x2c, 0x2c, 0x0c, 0x3c, 0xf0, 0xc0, 0xfb, 0x09, + 0x17, 0x1e, 0x78, 0x60, 0x60, 0x60, 0x60, 0xa1, 0x61, 0x60, 0x61, 0xa0, + 0x61, 0x60, 0x60, 0x59, 0xaf, 0x26, 0x1e, 0xe5, 0x2a, 0xca, 0xcc, 0x58, + 0x7e, 0xc4, 0x79, 0x75, 0xaf, 0xe5, 0xe5, 0x46, 0x95, 0x35, 0xf2, 0xd6, + 0x8c, 0x1e, 0xdb, 0xb2, 0x81, 0x1f, 0x98, 0x18, 0xe1, 0x8c, 0xf8, 0xfe, + 0xfe, 0x7e, 0x72, 0xa7, 0xb1, 0x3b, 0xfc, 0x39, 0xc4, 0x96, 0xcf, 0x9b, + 0xd1, 0x68, 0xf4, 0x85, 0x33, 0x61, 0x30, 0x82, 0x1c, 0x19, 0x44, 0xc0, + 0x8b, 0x3b, 0x9e, 0xdd, 0x91, 0x41, 0x26, 0x45, 0x03, 0x11, 0xb4, 0xe1, + 0xa3, 0xa4, 0x63, 0x28, 0xd2, 0x4e, 0x4a, 0x10, 0x93, 0xf2, 0x8a, 0x8a, + 0x98, 0x0c, 0xfd, 0xa2, 0x74, 0xc7, 0x27, 0x2a, 0xb2, 0xb6, 0x38, 0x11, + 0x4e, 0x42, 0x90, 0x23, 0x26, 0x73, 0xa7, 0x09, 0x2a, 0x52, 0x52, 0xbd, + 0xa4, 0x0b, 0x88, 0xa8, 0xe2, 0x14, 0x44, 0xf5, 0x4a, 0x10, 0x13, 0x93, + 0xa3, 0x7f, 0x6f, 0x49, 0x45, 0xef, 0x44, 0xf5, 0x42, 0x10, 0x87, 0x52, + 0x8e, 0xca, 0x6b, 0x2e, 0x01, 0xbd, 0x11, 0xd5, 0x99, 0x20, 0x47, 0x0e, + 0xf5, 0x2f, 0x6f, 0x18, 0x26, 0x94, 0x9a, 0x80, 0xc8, 0x21, 0x92, 0x3e, + 0xd1, 0x01, 0xad, 0x09, 0xba, 0x40, 0xaf, 0xd1, 0xb0, 0x72, 0x24, 0x7d, + 0xa0, 0x25, 0x5a, 0x11, 0xc4, 0xf3, 0x97, 0x77, 0x54, 0x43, 0xf6, 0x35, + 0x80, 0xbc, 0x69, 0xde, 0x26, 0xe4, 0x1a, 0x13, 0xc4, 0xe4, 0xcc, 0x50, + 0xcd, 0x63, 0xae, 0x09, 0xad, 0x48, 0x6a, 0x44, 0x90, 0x23, 0x87, 0x3c, + 0x66, 0x86, 0xcb, 0xeb, 0x6f, 0x52, 0xd1, 0x98, 0xa4, 0x87, 0xd4, 0x8c, + 0x81, 0xe7, 0x5c, 0x2b, 0x39, 0x84, 0xdd, 0x3d, 0xf0, 0xbd, 0x24, 0x21, + 0x89, 0xa0, 0x1b, 0x21, 0xc7, 0xa3, 0x11, 0x49, 0xb5, 0x04, 0xf1, 0x68, + 0x35, 0xc3, 0xf5, 0xf5, 0x39, 0x16, 0xfc, 0x20, 0x53, 0x8b, 0x14, 0x0f, + 0xca, 0x71, 0x5b, 0xe4, 0x78, 0x3c, 0xbb, 0xc6, 0x9f, 0xd6, 0x65, 0x32, + 0x09, 0x72, 0x05, 0xd0, 0x42, 0xf3, 0xd2, 0xe7, 0x39, 0x5d, 0x30, 0xe1, + 0xe5, 0x91, 0x0a, 0x95, 0x20, 0x8e, 0xd1, 0x1c, 0xb7, 0x8f, 0x37, 0xee, + 0x46, 0x44, 0x58, 0x1e, 0x94, 0xe3, 0x36, 0x43, 0x2b, 0x86, 0xe9, 0x08, + 0x22, 0x41, 0xec, 0x3d, 0xaf, 0xb8, 0x1f, 0x4c, 0xb4, 0x51, 0x4d, 0xf3, + 0xa0, 0x1c, 0xf7, 0x87, 0x37, 0x29, 0xf1, 0x88, 0xa0, 0x3b, 0xf4, 0x1e, + 0x8f, 0x4c, 0xea, 0xb0, 0x1f, 0x85, 0x8c, 0x39, 0xba, 0x21, 0x9c, 0xc6, + 0x8f, 0x71, 0xfa, 0xc9, 0x65, 0xbc, 0x6c, 0xe8, 0xd2, 0x6f, 0x92, 0x74, + 0x53, 0x86, 0x09, 0x07, 0x04, 0xb5, 0xf4, 0x1e, 0x12, 0xcf, 0x57, 0x5c, + 0xf0, 0xd1, 0x13, 0x08, 0x1e, 0x21, 0x9e, 0xb9, 0xdc, 0x0c, 0xdd, 0x3b, + 0xfe, 0x53, 0xda, 0x7b, 0x75, 0xd7, 0x17, 0x61, 0x99, 0xa3, 0xa8, 0x70, + 0x2a, 0xf4, 0x2d, 0xb1, 0xb0, 0x56, 0x82, 0x14, 0xdb, 0xc8, 0xd1, 0x9c, + 0xa8, 0xa1, 0xec, 0x7d, 0x38, 0x1b, 0x2b, 0xff, 0x23, 0x26, 0x68, 0x86, + 0x34, 0x3d, 0x99, 0x0a, 0x28, 0xba, 0x3c, 0x7a, 0x71, 0xb6, 0x72, 0xa4, + 0x87, 0x73, 0x27, 0x7b, 0xc1, 0x9c, 0x2e, 0x25, 0x3a, 0xe8, 0x29, 0xc9, + 0xdc, 0xff, 0x78, 0x8c, 0x0a, 0xc9, 0x12, 0x0a, 0xa0, 0x8a, 0x16, 0xe8, + 0x08, 0x2a, 0xc3, 0xd9, 0xa4, 0xe7, 0x5c, 0x96, 0x5c, 0x4b, 0x84, 0x2c, + 0x5c, 0xde, 0x12, 0xdd, 0x6c, 0x91, 0xf7, 0x2d, 0x9d, 0x3d, 0x3a, 0xe7, + 0x35, 0xd9, 0x69, 0x09, 0x32, 0xf6, 0x8d, 0x11, 0xf6, 0x41, 0x29, 0xea, + 0xa0, 0x49, 0x0e, 0xeb, 0x45, 0x74, 0x78, 0x77, 0x26, 0x23, 0xd4, 0x22, + 0x1b, 0x29, 0xbf, 0x4b, 0x5f, 0xbb, 0x6b, 0xe6, 0x90, 0x95, 0x82, 0x5a, + 0xed, 0xa6, 0x85, 0x3d, 0x6a, 0x14, 0xfa, 0x33, 0x87, 0x0e, 0xdf, 0x87, + 0x95, 0xf4, 0x23, 0x24, 0x28, 0x83, 0x8d, 0xb5, 0x46, 0x8e, 0x33, 0x3a, + 0x61, 0xa3, 0x63, 0xe5, 0xff, 0x6a, 0xff, 0x41, 0x37, 0x23, 0x90, 0x44, + 0x37, 0xaa, 0x92, 0xc3, 0xe1, 0x39, 0x69, 0x69, 0xaf, 0xe0, 0xe1, 0x3c, + 0x83, 0x8e, 0xfd, 0x68, 0x16, 0xce, 0x83, 0x2c, 0x0f, 0xa2, 0x0a, 0x7f, + 0x08, 0x15, 0x79, 0xe2, 0x7e, 0x6b, 0x0a, 0x7b, 0x38, 0xa7, 0x16, 0xa6, + 0x35, 0xcf, 0x6f, 0x69, 0xc6, 0xca, 0x2d, 0xbe, 0x0c, 0x92, 0x96, 0x12, + 0x39, 0xe4, 0x31, 0x54, 0x06, 0x8c, 0xc6, 0x88, 0xec, 0x69, 0xba, 0xcf, + 0x92, 0xef, 0x49, 0xc3, 0x9e, 0x8b, 0x54, 0x82, 0xd6, 0x71, 0x85, 0x03, + 0x11, 0x2d, 0x43, 0x3a, 0xe8, 0x9a, 0x5f, 0xfc, 0xa8, 0xe8, 0x00, 0x14, + 0x6e, 0xf8, 0xbf, 0x33, 0x5e, 0xc7, 0xff, 0xe7, 0xd1, 0x68, 0x86, 0x66, + 0xa3, 0x5f, 0x86, 0x4a, 0x1c, 0x1b, 0x47, 0xb6, 0xb6, 0x6c, 0x4b, 0xc3, + 0x21, 0x41, 0x5c, 0x80, 0xd5, 0x22, 0x85, 0x90, 0x96, 0xa3, 0xdd, 0x9c, + 0x86, 0xec, 0xbc, 0x4b, 0xb3, 0x56, 0x7a, 0x3c, 0x23, 0x85, 0x71, 0x30, + 0xfd, 0x90, 0xea, 0xb8, 0x0d, 0x0e, 0x09, 0x54, 0x47, 0x49, 0xf7, 0xb1, + 0xa6, 0x0b, 0x63, 0x4f, 0xaa, 0xf7, 0x20, 0xcb, 0x7b, 0x4a, 0xc1, 0x7b, + 0x32, 0x74, 0x5f, 0x8e, 0xbc, 0xa7, 0xc8, 0x9e, 0x9c, 0xc7, 0x12, 0xb6, + 0x28, 0x1c, 0xff, 0xb8, 0xf3, 0xdc, 0xc8, 0xf3, 0x1a, 0x37, 0x08, 0xdf, + 0xd3, 0xc6, 0xb8, 0xe6, 0x80, 0x20, 0x0b, 0x52, 0x21, 0x7d, 0x88, 0x68, + 0x3b, 0x29, 0xd7, 0xd2, 0x62, 0x02, 0xb9, 0xb7, 0x8f, 0xe5, 0xca, 0x8b, + 0x90, 0x56, 0x1a, 0xf9, 0x77, 0x8d, 0xf7, 0x18, 0xfe, 0x50, 0x20, 0x11, + 0x94, 0x29, 0xf9, 0xbe, 0x6a, 0x0c, 0x3e, 0x09, 0x69, 0x39, 0x84, 0x01, + 0x80, 0x91, 0x43, 0xae, 0x5b, 0x18, 0x52, 0xa1, 0xcd, 0x92, 0xcf, 0x7e, + 0xa8, 0x0e, 0xf1, 0x22, 0xd8, 0xb1, 0x3c, 0xe8, 0x80, 0x20, 0x0b, 0x52, + 0x6c, 0x4b, 0x2d, 0xba, 0xa8, 0x99, 0xb3, 0x50, 0x1f, 0x22, 0x85, 0x25, + 0x69, 0x31, 0x2b, 0x65, 0x10, 0xd0, 0x3c, 0xf5, 0x33, 0xee, 0xab, 0xf8, + 0xfa, 0x39, 0x5f, 0x9b, 0xa1, 0xf2, 0xbc, 0x10, 0x6d, 0xfa, 0xcb, 0xa4, + 0x10, 0x3b, 0xd7, 0xa3, 0x9e, 0x73, 0xd9, 0x3d, 0x40, 0x8a, 0x07, 0x49, + 0x15, 0xfd, 0x12, 0xd2, 0xa7, 0xae, 0xe5, 0xac, 0x10, 0xcb, 0x94, 0x74, + 0x71, 0x9b, 0x0a, 0x4f, 0x20, 0x69, 0x28, 0x96, 0xbc, 0xe8, 0x25, 0xe8, + 0xe0, 0x77, 0xd7, 0x73, 0x7f, 0x35, 0x35, 0xea, 0x2c, 0x85, 0x93, 0xd5, + 0x08, 0x07, 0x4b, 0x8d, 0xa4, 0x49, 0x53, 0x00, 0x9a, 0xa7, 0xc4, 0xe1, + 0x22, 0x75, 0x82, 0x75, 0xd8, 0xd6, 0xac, 0xeb, 0x0a, 0x2e, 0xf7, 0x49, + 0xa8, 0x93, 0xaf, 0x17, 0x0d, 0xd7, 0x44, 0xb0, 0xdf, 0xee, 0xa7, 0x41, + 0x22, 0xc8, 0x0a, 0xbb, 0x1d, 0x27, 0x3e, 0xc4, 0xb6, 0x46, 0x46, 0x89, + 0x20, 0x6b, 0x0e, 0x91, 0x8a, 0x7d, 0x9f, 0xa1, 0x81, 0x17, 0x8c, 0x94, + 0xa7, 0xb5, 0x6a, 0x10, 0xa0, 0x10, 0xd2, 0x32, 0x23, 0x7f, 0xb2, 0x07, + 0x65, 0xe1, 0xea, 0x96, 0x40, 0xab, 0x6b, 0x97, 0x46, 0x5e, 0xd4, 0xc6, + 0x6b, 0xbc, 0xbd, 0x85, 0xb2, 0x9c, 0x88, 0x6d, 0x51, 0xf8, 0x2c, 0x70, + 0xdc, 0xe9, 0x7a, 0xbc, 0xd7, 0x84, 0x36, 0x41, 0x1b, 0x04, 0xac, 0xf9, + 0xdf, 0x2e, 0xff, 0x83, 0xaf, 0x04, 0x6c, 0x92, 0xa4, 0x7e, 0x60, 0x09, + 0xdb, 0xf3, 0x34, 0xf8, 0x85, 0xe8, 0x91, 0xcb, 0x6b, 0x1a, 0x11, 0xcb, + 0x1d, 0x0b, 0xc8, 0x75, 0xf4, 0xfb, 0xac, 0xb5, 0x70, 0x21, 0x3b, 0x85, + 0x90, 0x9e, 0xc3, 0xa8, 0xa3, 0x6f, 0xa4, 0x87, 0xa8, 0x20, 0x0d, 0x47, + 0x8f, 0x45, 0x02, 0xf7, 0x2f, 0x91, 0x0e, 0xca, 0xfb, 0x57, 0x21, 0xc7, + 0x2b, 0x02, 0x13, 0x5e, 0x5a, 0x20, 0xb2, 0x47, 0x1e, 0xfb, 0x17, 0xcd, + 0x1a, 0xa5, 0x44, 0xd5, 0x18, 0xb1, 0x2c, 0x5b, 0x27, 0x2d, 0xef, 0xeb, + 0x37, 0x0a, 0x2e, 0xa2, 0x11, 0xc0, 0x9a, 0x21, 0x1f, 0x28, 0x6d, 0x91, + 0xc1, 0x3a, 0x59, 0xb3, 0x44, 0x35, 0x77, 0xf9, 0x54, 0xae, 0x8f, 0xf7, + 0x1d, 0xa9, 0x5e, 0xd6, 0xc0, 0xde, 0x4a, 0x5a, 0xf4, 0xf2, 0xf5, 0xbf, + 0x60, 0x87, 0xd7, 0x7e, 0xdb, 0x5e, 0x48, 0x10, 0xf5, 0x27, 0xef, 0xb0, + 0x91, 0x22, 0x98, 0x85, 0xb1, 0x4d, 0xad, 0x5d, 0x26, 0x88, 0x5e, 0x33, + 0x1c, 0x0f, 0xb9, 0x26, 0x49, 0x1d, 0xec, 0xe5, 0xa8, 0x57, 0x15, 0xe7, + 0x5e, 0xc5, 0x0c, 0x09, 0xa2, 0x0a, 0xfe, 0x83, 0x7a, 0xf4, 0x22, 0xb9, + 0xb2, 0x4d, 0xf2, 0x84, 0x3a, 0x2d, 0xe9, 0x40, 0x44, 0xef, 0x68, 0x2f, + 0x47, 0x9a, 0x0e, 0xfe, 0xef, 0x91, 0xe4, 0x4a, 0x09, 0xae, 0x80, 0x12, + 0xf5, 0xfa, 0x4e, 0xce, 0x31, 0xdc, 0x7a, 0x1f, 0x72, 0xc3, 0x1d, 0xb2, + 0x53, 0xb6, 0xb7, 0xea, 0x68, 0xef, 0x0d, 0x69, 0xa3, 0x6e, 0x69, 0x3d, + 0xf6, 0xa1, 0x0a, 0x4f, 0x91, 0x06, 0x55, 0xd6, 0xd4, 0xc0, 0x15, 0x9d, + 0xc0, 0x90, 0x4b, 0x2f, 0xc0, 0xde, 0x32, 0xb4, 0x31, 0x12, 0x0a, 0xfc, + 0x8d, 0x66, 0x95, 0xdf, 0xc5, 0x3d, 0xaa, 0xc9, 0xa3, 0xf6, 0x20, 0x2f, + 0xe3, 0xe3, 0x15, 0xdd, 0xd7, 0x58, 0xde, 0x1e, 0x75, 0xc0, 0xa5, 0xf1, + 0xe0, 0xf0, 0xa5, 0x85, 0x3d, 0x2a, 0xeb, 0x8f, 0xea, 0x41, 0x6c, 0x40, + 0x5b, 0x75, 0x37, 0x31, 0xe2, 0x0d, 0x0c, 0xf1, 0xe8, 0xb9, 0x4f, 0x7b, + 0x34, 0xd2, 0x2e, 0xc3, 0x04, 0x69, 0xb1, 0x4a, 0x9e, 0xd0, 0x85, 0xa0, + 0x21, 0x48, 0x39, 0x95, 0xbd, 0x22, 0x4e, 0x38, 0x92, 0x3b, 0x78, 0x78, + 0x2b, 0x71, 0x7f, 0xf8, 0x94, 0x06, 0x01, 0x4d, 0x0f, 0x2a, 0x70, 0x7f, + 0x28, 0xa4, 0x44, 0x91, 0x20, 0xf6, 0xa2, 0x5e, 0xe6, 0x1e, 0x57, 0x02, + 0x75, 0x0a, 0x61, 0x29, 0x8a, 0x05, 0xfa, 0x91, 0x19, 0x2e, 0x1d, 0xbb, + 0xe9, 0x83, 0xf6, 0x4f, 0x95, 0x20, 0x1e, 0xea, 0x96, 0xb8, 0x7d, 0x7c, + 0x8c, 0x8c, 0x5d, 0x23, 0xa6, 0x26, 0x1d, 0x3c, 0xed, 0xbc, 0x55, 0x14, + 0xda, 0x82, 0xd6, 0x23, 0x45, 0xb4, 0x2f, 0x60, 0x4b, 0x21, 0xd7, 0x8a, + 0x4d, 0xca, 0x9a, 0xb2, 0x96, 0x20, 0x76, 0x3f, 0x12, 0xab, 0x5a, 0xad, + 0x83, 0x2e, 0x14, 0x74, 0x2f, 0x8b, 0x94, 0x8c, 0xc9, 0xef, 0x8b, 0x5d, + 0xf1, 0x8b, 0x74, 0x31, 0x6a, 0xf7, 0x1d, 0x85, 0x68, 0xfa, 0x42, 0xdd, + 0xb5, 0x93, 0xd4, 0x88, 0x1c, 0xc2, 0xcf, 0x2b, 0x99, 0x35, 0xb8, 0x97, + 0x97, 0x7a, 0x4b, 0x28, 0x9b, 0xb2, 0xea, 0xd0, 0xe9, 0xbd, 0xf9, 0x04, + 0x1d, 0xfb, 0x12, 0x30, 0xfc, 0x6b, 0xe1, 0x21, 0xbe, 0xdb, 0xef, 0x7b, + 0x3e, 0x35, 0xc8, 0x5b, 0x96, 0xa3, 0xae, 0x3b, 0x64, 0xd1, 0x03, 0x1a, + 0xee, 0x43, 0x1e, 0x02, 0x05, 0x2a, 0xcf, 0xe9, 0xbc, 0x54, 0xea, 0xfb, + 0xe3, 0x26, 0xe7, 0x26, 0x8a, 0xb4, 0xac, 0xcb, 0xfb, 0xb8, 0x49, 0x8c, + 0x81, 0x89, 0x22, 0x2f, 0x21, 0x62, 0x56, 0x7d, 0x12, 0xe3, 0x31, 0xc4, + 0x07, 0x96, 0xbc, 0x36, 0x9c, 0xa1, 0x3f, 0xf8, 0x2f, 0x52, 0x11, 0x31, + 0xeb, 0x3e, 0x42, 0x49, 0xc3, 0xd0, 0x9f, 0xe8, 0xf2, 0x62, 0xba, 0xdf, + 0xbe, 0x92, 0x2a, 0x95, 0x7a, 0x42, 0xe8, 0xa0, 0xc5, 0xe5, 0x60, 0xdf, + 0x35, 0x3b, 0xf7, 0x47, 0xde, 0xfc, 0xc6, 0x83, 0x31, 0x8e, 0xb5, 0x65, + 0xbf, 0x0f, 0xf1, 0x6b, 0x28, 0x32, 0x7e, 0xd0, 0x02, 0xff, 0x01, 0x68, + 0x32, 0xf2, 0xde, 0x6e, 0x41, 0xa4, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x49, + 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, } diff --git a/icon/iconwin.go b/icon/iconwin.go index fa03c28f7..d75f4280c 100644 --- a/icon/iconwin.go +++ b/icon/iconwin.go @@ -1,1631 +1,1636 @@ +//go:build windows // +build windows // File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) package icon +// GetIcon will return the icon func GetIcon() []byte { return Data } +// GetIconHiber will return the hibernated icon func GetIconHiber() []byte { return DataHibernate } +// Data represents the icon var Data []byte = []byte{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, - 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x13, 0x0b, - 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0xaf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x90, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x4f, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0xa0, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, - 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, - 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, - 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, - 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, - 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, - 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, - 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, - 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, - 0x80, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, + 0x20, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x13, 0x0b, + 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0xaf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, + 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x6f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x30, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0x90, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xef, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x4f, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x6f, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, + 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0xa0, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x6f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, + 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, + 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, + 0xff, 0xbf, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, + 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, + 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xe0, + 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x1f, + 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, + 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, 0x00, 0x00, 0x81, 0xc0, + 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, + 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, 0x00, 0x00, 0x83, 0x00, + 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, + 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, 0x00, 0x00, 0x83, 0x00, + 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, + 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, 0x00, 0x00, 0x81, 0xc0, + 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, + 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x1f, + 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0xe0, + 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, + 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, + 0x80, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, } +// DataHibernate represents the icon hibernated var DataHibernate []byte = []byte{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, - 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x13, 0x0b, - 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x58, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x08, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x18, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x48, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x58, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x18, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x08, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x08, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, - 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, - 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, - 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, - 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, - 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, - 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, - 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, - 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, - 0x80, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, + 0x20, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x13, 0x0b, + 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x58, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x08, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, + 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, + 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x18, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0x48, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x78, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x58, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x28, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, + 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x18, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x30, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, + 0xff, 0x38, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x08, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x20, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, + 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, + 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, + 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x08, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, + 0xff, 0x50, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, + 0xff, 0x60, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, + 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, + 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, + 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xe0, + 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, + 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x1f, + 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, + 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, 0x00, 0x00, 0x81, 0xc0, + 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, + 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, 0x00, 0x00, 0x83, 0x00, + 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, + 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, 0x00, 0x00, 0x83, 0x00, + 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, + 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, 0x00, 0x00, 0x81, 0xc0, + 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, + 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x1f, + 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0xe0, + 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, + 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, + 0x80, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, } diff --git a/info.go b/info.go index fd8596525..88145c02b 100644 --- a/info.go +++ b/info.go @@ -35,7 +35,7 @@ func infoHandler(c *gin.Context) { "ws": "ws://" + host + port, "wss": "wss://localhost" + portSSL, "origins": origins, - "update_url": updateUrl, + "update_url": updateURL, "os": runtime.GOOS + ":" + runtime.GOARCH, }) } diff --git a/killbrowser/killbrowser_darwin.go b/killbrowser/killbrowser_darwin.go index 28ca5e321..2ff4c3e64 100644 --- a/killbrowser/killbrowser_darwin.go +++ b/killbrowser/killbrowser_darwin.go @@ -15,14 +15,17 @@ package browser +// Find will find the browser func Find(process string) ([]byte, error) { return nil, nil } +// Kill will kill a process func Kill(process string) ([]byte, error) { return nil, nil } +// Start will start a command func Start(command []byte, url string) ([]byte, error) { return nil, nil } diff --git a/killbrowser/killbrowser_linux.go b/killbrowser/killbrowser_linux.go index 393a5e979..4e4a1e987 100644 --- a/killbrowser/killbrowser_linux.go +++ b/killbrowser/killbrowser_linux.go @@ -22,6 +22,7 @@ import ( "github.com/arduino/arduino-create-agent/utilities" ) +// Find will find the browser func Find(process string) ([]byte, error) { ps := exec.Command("ps", "-A", "-o", "command") grep := exec.Command("grep", process) @@ -30,11 +31,13 @@ func Find(process string) ([]byte, error) { return utilities.PipeCommands(ps, grep, head) } +// Kill will kill a process func Kill(process string) ([]byte, error) { cmd := exec.Command("pkill", "-9", process) return cmd.Output() } +// Start will start a command func Start(command []byte, url string) ([]byte, error) { parts := strings.Split(string(command), " ") cmd := exec.Command(parts[0], url) diff --git a/killbrowser/killbrowser_windows.go b/killbrowser/killbrowser_windows.go index 89b45ce38..0f6628482 100644 --- a/killbrowser/killbrowser_windows.go +++ b/killbrowser/killbrowser_windows.go @@ -17,15 +17,18 @@ package browser import "os/exec" +// Find will find the browser func Find(process string) ([]byte, error) { return []byte(process), nil } +// Kill will kill a process func Kill(process string) ([]byte, error) { cmd := exec.Command("Taskkill", "/F", "/IM", process+".exe") return cmd.Output() } +// Start will start a command func Start(command []byte, url string) ([]byte, error) { cmd := exec.Command("cmd", "/C", "start", string(command), url) return cmd.Output() diff --git a/main.go b/main.go index 2f33b6aba..323ef1eac 100755 --- a/main.go +++ b/main.go @@ -47,8 +47,8 @@ import ( var ( version = "x.x.x-dev" //don't modify it, Jenkins will take care - git_revision = "xxxxxxxx" //don't modify it, Jenkins will take care - embedded_autoextract = false + commit = "xxxxxxxx" //don't modify it, Jenkins will take care + embeddedAutoextract = false port string portSSL string requiredToolsAPILevel = "v1" @@ -80,7 +80,7 @@ var ( origins = iniConf.String("origins", "", "Allowed origin list for CORS") regExpFilter = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") signatureKey = iniConf.String("signatureKey", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF\nIE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1\nZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1\npFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z\nCeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn\n2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9\ntwIDAQAB\n-----END PUBLIC KEY-----", "Pem-encoded public key to verify signed commandlines") - updateUrl = iniConf.String("updateUrl", "", "") + updateURL = iniConf.String("updateUrl", "", "") verbose = iniConf.Bool("v", true, "show debug logging") crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") ) @@ -91,9 +91,9 @@ var ( Systray systray.Systray ) -type NullWriter int +type nullWriter int -func (NullWriter) Write([]byte) (int, error) { return 0, nil } +func (nullWriter) Write([]byte) (int, error) { return 0, nil } type logWriter struct{} @@ -102,7 +102,7 @@ func (u *logWriter) Write(p []byte) (n int, err error) { return len(p), nil } -var logger_ws logWriter +var loggerWs logWriter func homeHandler(c *gin.Context) { homeTemplate.Execute(c.Writer, c.Request.Host) @@ -122,7 +122,7 @@ func main() { flag.Parse() // Generate certificates - if *genCert == true { + if *genCert { generateCertificates() os.Exit(0) } @@ -133,7 +133,7 @@ func main() { // SetupSystray is the main thread Systray = systray.Systray{ Hibernate: *hibernate, - Version: version + "-" + git_revision, + Version: version + "-" + commit, DebugURL: func() string { return "http://" + *address + port }, @@ -187,7 +187,7 @@ func loop() { src, _ := osext.Executable() dest := filepath.Dir(src) - if embedded_autoextract { + if embeddedAutoextract { // save the config.ini (if it exists) if _, err := os.Stat(filepath.Join(dest, "config.ini")); os.IsNotExist(err) { log.Println("First run, unzipping self") @@ -304,7 +304,7 @@ func loop() { if !*verbose { log.Println("You can enter verbose mode to see all logging by starting with the -v command line switch.") - log.SetOutput(new(NullWriter)) //route all logging to nullwriter + log.SetOutput(new(nullWriter)) //route all logging to nullwriter } // save crashreport to file @@ -422,11 +422,11 @@ func loop() { }() } -var homeTemplate = template.Must(template.New("home").Parse(homeTemplateHtml)) +var homeTemplate = template.Must(template.New("home").Parse(homeTemplateHTML)) // If you navigate to this server's homepage, you'll get this HTML // so you can directly interact with the serial port server -const homeTemplateHtml = ` +const homeTemplateHTML = ` Arduino Create Agent Debug Console diff --git a/redirect_stderr_unix.go b/redirect_stderr_unix.go index fead4e3ea..77c16dc44 100644 --- a/redirect_stderr_unix.go +++ b/redirect_stderr_unix.go @@ -15,6 +15,7 @@ // Log the panic under unix to the log file +//go:build !windows // +build !windows package main diff --git a/redirect_stderr_win.go b/redirect_stderr_win.go index 87053c8b1..c9debd902 100644 --- a/redirect_stderr_win.go +++ b/redirect_stderr_win.go @@ -4,6 +4,7 @@ // // https://play.golang.org/p/kLtct7lSUg +//go:build windows // +build windows package main diff --git a/serial.go b/serial.go index a7504f9e4..77c9c69f6 100755 --- a/serial.go +++ b/serial.go @@ -49,12 +49,14 @@ type serialhub struct { mu sync.Mutex } +// SpPortList is the serial port list type SpPortList struct { Ports []SpPortItem Network bool Mu sync.Mutex `json:"-"` } +// SpPortItem is the serial port item type SpPortItem struct { Name string SerialNumber string @@ -231,8 +233,8 @@ func spListDual(network bool) { BufferAlgorithm: "", Ver: version, NetworkPort: item.NetworkPort, - VendorID: item.IdVendor, - ProductID: item.IdProduct, + VendorID: item.IDVendor, + ProductID: item.IDProduct, } // figure out if port is open diff --git a/seriallist.go b/seriallist.go index 04c09c36b..d24c5554b 100755 --- a/seriallist.go +++ b/seriallist.go @@ -26,17 +26,19 @@ import ( "go.bug.st/serial/enumerator" ) +// OsSerialPort is the Os serial port type OsSerialPort struct { Name string DeviceClass string Manufacturer string Product string - IdProduct string - IdVendor string + IDProduct string + IDVendor string ISerial string NetworkPort bool } +// GetList will return the OS serial port func GetList(network bool) ([]OsSerialPort, error) { if network { @@ -58,7 +60,7 @@ func GetList(network bool) ([]OsSerialPort, error) { vidString := fmt.Sprintf("0x%s", vid) pidString := fmt.Sprintf("0x%s", pid) if vid != "0000" && pid != "0000" { - arrPorts = append(arrPorts, OsSerialPort{Name: element.Name, IdVendor: vidString, IdProduct: pidString, ISerial: element.SerialNumber}) + arrPorts = append(arrPorts, OsSerialPort{Name: element.Name, IDVendor: vidString, IDProduct: pidString, ISerial: element.SerialNumber}) } } } diff --git a/serialport.go b/serialport.go index 2ab8e7a90..b965782b8 100755 --- a/serialport.go +++ b/serialport.go @@ -27,6 +27,7 @@ import ( serial "go.bug.st/serial" ) +// SerialConfig is the serial port configuration type SerialConfig struct { Name string Baud int @@ -63,11 +64,13 @@ type serport struct { bufferwatcher Bufferflow } +// SpPortMessage is the serial port message type SpPortMessage struct { P string // the port, i.e. com22 D string // the data, i.e. G0 X0 Y0 } +// SpPortMessageRaw is the raw serial port message type SpPortMessageRaw struct { P string // the port, i.e. com22 D []byte // the data, i.e. G0 X0 Y0 @@ -76,7 +79,7 @@ type SpPortMessageRaw struct { func (p *serport) reader(buftype string) { timeCheckOpen := time.Now() - var buffered_ch bytes.Buffer + var bufferedCh bytes.Buffer serialBuffer := make([]byte, 1024) for { @@ -108,17 +111,17 @@ func (p *serport) reader(buftype string) { p.bufferwatcher.OnIncomingData(data) case "default": // the bufferbuftype is actually called default 🤷‍♂️ // save the left out bytes for the next iteration due to UTF-8 encoding - bufferPart = append(buffered_ch.Bytes(), bufferPart[:n]...) - n += len(buffered_ch.Bytes()) - buffered_ch.Reset() + bufferPart = append(bufferedCh.Bytes(), bufferPart[:n]...) + n += len(bufferedCh.Bytes()) + bufferedCh.Reset() for i, w := 0, 0; i < n; i += w { runeValue, width := utf8.DecodeRune(bufferPart[i:n]) // try to decode the first i bytes in the buffer (UTF8 runes do not have a fixed length) if runeValue == utf8.RuneError { - buffered_ch.Write(bufferPart[i:n]) + bufferedCh.Write(bufferPart[i:n]) break } if i == n { - buffered_ch.Reset() + bufferedCh.Reset() } data += string(runeValue) w = width diff --git a/systray/systray_fake.go b/systray/systray_fake.go index d2bb6002c..b66c8fa3e 100644 --- a/systray/systray_fake.go +++ b/systray/systray_fake.go @@ -13,6 +13,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +//go:build cli // +build cli // Systray_fake gets compiled when the tag 'cli' is present. This is useful to build an agent without trayicon functionalities diff --git a/systray/systray_real.go b/systray/systray_real.go index 5ea8fe986..0ed0d7dea 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -13,9 +13,11 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +//go:build !cli // +build !cli // Systray_real gets compiled when the tag 'cli' is missing. This is the default case + package systray import ( @@ -55,7 +57,7 @@ func (s *Systray) start() { menuVer.Disable() // Add links - mUrl := systray.AddMenuItem("Go to Arduino Create", "Arduino Create") + mURL := systray.AddMenuItem("Go to Arduino Create", "Arduino Create") mDebug := systray.AddMenuItem("Open Debug Console", "Debug console") // Remove crash-reports @@ -74,7 +76,7 @@ func (s *Systray) start() { go func() { for { select { - case <-mUrl.ClickedCh: + case <-mURL.ClickedCh: _ = open.Start("https://create.arduino.cc") case <-mDebug.ClickedCh: _ = open.Start(s.DebugURL()) diff --git a/tools/download.go b/tools/download.go index 48cf37b79..6102ae241 100644 --- a/tools/download.go +++ b/tools/download.go @@ -52,11 +52,9 @@ type system struct { } type tool struct { - Name string `json:"name"` - Version string `json:"version"` - Systems []system `json:"systems"` - url string - destination string + Name string `json:"name"` + Version string `json:"version"` + Systems []system `json:"systems"` } type index struct { @@ -110,7 +108,8 @@ func checkGPGSig(fileName string, sigFileName string) error { return err } -func (t *Tools) DownloadPackageIndex(index_file, signature_file string) error { +// DownloadPackageIndex will download a package_index file +func (t *Tools) DownloadPackageIndex(indexFile, signatureFile string) error { // Fetch the index resp, err := http.Get(t.IndexURL) if err != nil { @@ -132,12 +131,12 @@ func (t *Tools) DownloadPackageIndex(index_file, signature_file string) error { defer signature.Body.Close() // Read the body - signature_body, err := ioutil.ReadAll(signature.Body) + signatureBody, err := ioutil.ReadAll(signature.Body) if err != nil { return err } - ioutil.WriteFile(index_file, body, 0644) - ioutil.WriteFile(signature_file, signature_body, 0644) + ioutil.WriteFile(indexFile, body, 0644) + ioutil.WriteFile(signatureFile, signatureBody, 0644) t.LastRefresh = time.Now() @@ -172,23 +171,23 @@ func pathExists(path string) bool { // if it already exists. func (t *Tools) Download(pack, name, version, behaviour string) error { - index_file := path.Join(t.Directory, "package_index.json") - signature_file := path.Join(t.Directory, "package_index.json.sig") + indexFile := path.Join(t.Directory, "package_index.json") + signatureFile := path.Join(t.Directory, "package_index.json.sig") if _, err := os.Stat(path.Join(t.Directory, "package_index.json")); err != nil || time.Since(t.LastRefresh) > 1*time.Hour { // Download the file again and save it - err = t.DownloadPackageIndex(index_file, signature_file) + err = t.DownloadPackageIndex(indexFile, signatureFile) if err != nil { return err } } - err := checkGPGSig(index_file, signature_file) + err := checkGPGSig(indexFile, signatureFile) if err != nil { return err } - body, err := ioutil.ReadFile(index_file) + body, err := ioutil.ReadFile(indexFile) if err != nil { return err } @@ -240,7 +239,7 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { checkSumString := "SHA-256:" + hex.EncodeToString(checksum[:sha256.Size]) if checkSumString != correctSystem.CheckSum { - return errors.New("Checksum doesn't match") + return errors.New("checksum doesn't match") } // Decompress @@ -319,28 +318,19 @@ func findTool(pack, name, version string, data index) (tool, system) { // Find the url based on system var correctSystem system - max_similarity := 0.7 + maxSimilarity := 0.7 for _, s := range correctTool.Systems { similarity := smetrics.Jaro(s.Host, systems[runtime.GOOS+runtime.GOARCH]) - if similarity > max_similarity { + if similarity > maxSimilarity { correctSystem = s - max_similarity = similarity + maxSimilarity = similarity } } return correctTool, correctSystem } -func stringInSlice(str string, list []string) bool { - for _, v := range list { - if v == str { - return true - } - } - return false -} - func commonPrefix(sep byte, paths []string) string { // Handle special cases. switch len(paths) { @@ -415,7 +405,7 @@ func findBaseDir(dirList []string) string { } func extractZip(log func(msg string), body []byte, location string) (string, error) { - path, err := utilities.SaveFileonTempDir("tooldownloaded.zip", bytes.NewReader(body)) + path, _ := utilities.SaveFileonTempDir("tooldownloaded.zip", bytes.NewReader(body)) r, err := zip.OpenReader(path) if err != nil { return location, err @@ -490,7 +480,7 @@ func extractTarGz(log func(msg string), body []byte, location string) (string, e if err == io.EOF { break } else if err != nil { - //return location, err + return location, err } path := filepath.Join(location, strings.Replace(header.Name, basedir, "", -1)) @@ -510,7 +500,7 @@ func extractTarGz(log func(msg string), body []byte, location string) (string, e } if header.Typeflag == tar.TypeSymlink { - err = os.Symlink(header.Linkname, path) + _ = os.Symlink(header.Linkname, path) continue } @@ -520,7 +510,7 @@ func extractTarGz(log func(msg string), body []byte, location string) (string, e } _, err = io.Copy(file, tarReader) if err != nil { - //return location, err + return location, err } file.Close() } @@ -575,7 +565,7 @@ func extractBz2(log func(msg string), body []byte, location string) (string, err } if header.Typeflag == tar.TypeSymlink { - err = os.Symlink(header.Linkname, path) + _ = os.Symlink(header.Linkname, path) continue } @@ -586,7 +576,7 @@ func extractBz2(log func(msg string), body []byte, location string) (string, err } _, err = io.Copy(file, tarReader) if err != nil { - //return location, err + return location, err } file.Close() } @@ -594,7 +584,7 @@ func extractBz2(log func(msg string), body []byte, location string) (string, err } func (t *Tools) installDrivers(location string) error { - OK_PRESSED := 6 + OkPressed := 6 extension := ".bat" preamble := "" if runtime.GOOS != "windows" { @@ -605,7 +595,7 @@ func (t *Tools) installDrivers(location string) error { if _, err := os.Stat(filepath.Join(location, "post_install"+extension)); err == nil { t.Logger("Installing drivers") ok := MessageBox("Installing drivers", "We are about to install some drivers needed to use Arduino/Genuino boards\nDo you want to continue?") - if ok == OK_PRESSED { + if ok == OkPressed { os.Chdir(location) t.Logger(preamble + "post_install" + extension) oscmd := exec.Command(preamble + "post_install" + extension) @@ -615,25 +605,8 @@ func (t *Tools) installDrivers(location string) error { } err = oscmd.Run() return err - } else { - return errors.New("Could not install drivers") - } - } - return nil -} - -func makeExecutable(location string) error { - location = path.Join(location, "bin") - files, err := ioutil.ReadDir(location) - if err != nil { - return err - } - - for _, file := range files { - err = os.Chmod(path.Join(location, file.Name()), 0755) - if err != nil { - return err } + return errors.New("could not install drivers") } return nil } diff --git a/tools/hidefile_darwin.go b/tools/hidefile_darwin.go index a0fb6df90..b9f04e4c9 100644 --- a/tools/hidefile_darwin.go +++ b/tools/hidefile_darwin.go @@ -23,9 +23,11 @@ func hideFile(path string) { } +// TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(_ *exec.Cmd) { } +// MessageBox will open a dialog func MessageBox(title, text string) int { return 6 } diff --git a/tools/hidefile_linux.go b/tools/hidefile_linux.go index a0fb6df90..b9f04e4c9 100644 --- a/tools/hidefile_linux.go +++ b/tools/hidefile_linux.go @@ -23,9 +23,11 @@ func hideFile(path string) { } +// TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(_ *exec.Cmd) { } +// MessageBox will open a dialog func MessageBox(title, text string) int { return 6 } diff --git a/tools/hidefile_windows.go b/tools/hidefile_windows.go index e5c76a1f7..632b87b34 100644 --- a/tools/hidefile_windows.go +++ b/tools/hidefile_windows.go @@ -28,10 +28,12 @@ func hideFile(path string) { syscall.SetFileAttributes(cpath, syscall.FILE_ATTRIBUTE_HIDDEN) } +// TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(oscmd *exec.Cmd) { oscmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} } +// MessageBox will open a dialog func MessageBox(title, text string) int { var mod = syscall.NewLazyDLL("user32.dll") var proc = mod.NewProc("MessageBoxW") diff --git a/tools/tools.go b/tools/tools.go index df56a10c6..7a39303d7 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -45,6 +45,8 @@ import ( // IndexURL: "https://downloads.arduino.cc/packages/package_index.json" // Logger: log.Logger // } + +// Tools will represent the installed tools type Tools struct { Directory string IndexURL string diff --git a/update.go b/update.go index 6a81190d4..78c1d9e1a 100644 --- a/update.go +++ b/update.go @@ -46,8 +46,8 @@ func updateHandler(c *gin.Context) { var up = &updater.Updater{ CurrentVersion: version, - APIURL: *updateUrl, - BinURL: *updateUrl, + APIURL: *updateURL, + BinURL: *updateURL, DiffURL: "", Dir: "update/", CmdName: *appName, diff --git a/updater/updater.go b/updater/updater.go index ff42f4bfd..51864e648 100644 --- a/updater/updater.go +++ b/updater/updater.go @@ -28,7 +28,6 @@ import ( "path/filepath" "runtime" "strings" - "time" "github.com/kr/binarydist" log "github.com/sirupsen/logrus" @@ -67,10 +66,8 @@ const ( plat = runtime.GOOS + "-" + runtime.GOARCH ) -const devValidTime = 7 * 24 * time.Hour - var errHashMismatch = errors.New("new file hash mismatch after patch") -var errDiffUrlUndefined = errors.New("DiffURL is not defined, I cannot fetch and apply patch, reverting to full bin") +var errDiffURLUndefined = errors.New("DiffURL is not defined, I cannot fetch and apply patch, reverting to full bin") var up = update.New() // TempPath generates a temporary path for the executable (adding "-temp") @@ -95,17 +92,17 @@ func BinPath(path string) string { // // Example: // -// updater := &selfupdate.Updater{ -// CurrentVersion: version, -// ApiURL: "http://updates.yourdomain.com/", -// BinURL: "http://updates.yourdownmain.com/", -// DiffURL: "http://updates.yourdomain.com/", -// Dir: "update/", -// CmdName: "myapp", // app name -// } -// if updater != nil { -// go updater.BackgroundRun() -// } +// updater := &selfupdate.Updater{ +// CurrentVersion: version, +// ApiURL: "http://updates.yourdomain.com/", +// BinURL: "http://updates.yourdownmain.com/", +// DiffURL: "http://updates.yourdomain.com/", +// Dir: "update/", +// CmdName: "myapp", // app name +// } +// if updater != nil { +// go updater.BackgroundRun() +// } type Updater struct { CurrentVersion string // Currently running version. APIURL string // Base URL for API requests (json files). @@ -158,7 +155,7 @@ func verifySha(bin []byte, sha []byte) bool { func (u *Updater) fetchAndApplyPatch(old io.Reader) ([]byte, error) { if u.DiffURL == "" { - return nil, errDiffUrlUndefined + return nil, errDiffURLUndefined } r, err := fetch(u.DiffURL + u.CmdName + "/" + u.CurrentVersion + "/" + u.Info.Version + "/" + plat) if err != nil { @@ -260,7 +257,7 @@ func (u *Updater) update() error { switch err { case errHashMismatch: log.Println("update: hash mismatch from patched binary") - case errDiffUrlUndefined: + case errDiffURLUndefined: log.Println("update: ", err) default: log.Println("update: patching binary, ", err) diff --git a/upload/doc.go b/upload/doc.go index 9358ac84f..0cf02682d 100644 --- a/upload/doc.go +++ b/upload/doc.go @@ -20,10 +20,10 @@ // // Make sure that you have a compiled sketch somewhere on your disk // -// ```go -// commandline = ``"/usr/bin/avrdude" "-C/usr/bin/avrdude.conf" -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:./sketch.hex:i"`` -// err := upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, nil) -// ``` +// ```go +// commandline = ``"/usr/bin/avrdude" "-C/usr/bin/avrdude.conf" -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:./sketch.hex:i"`` +// err := upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, nil) +// ``` // // note that the commandline contains the path of the sketch (sketch.hex) // @@ -31,9 +31,9 @@ // // Make sure that you have a compiled sketch somewhere on your disk // -// ```go -// err := upload.Network("127.0.10.120", "arduino:avr:yun, "./sketch.hex", "", upload.Auth{}, nil) -// ``` +// ```go +// err := upload.Network("127.0.10.120", "arduino:avr:yun, "./sketch.hex", "", upload.Auth{}, nil) +// ``` // // The commandline can be empty or it can contain instructions (depends on the board) // @@ -41,19 +41,19 @@ // // If you happen to have an unresolved commandline (full of {} parameters) you can resolve it // -// ```go -// t := tools.Tools{} -// commandline = upload.Resolve("/dev/ttyACM0", "arduino:avr:leonardo", "./sketch.hex", commandline, upload.Extra{}, t) -// ``` +// ```go +// t := tools.Tools{} +// commandline = upload.Resolve("/dev/ttyACM0", "arduino:avr:leonardo", "./sketch.hex", commandline, upload.Extra{}, t) +// ``` // // 't' must implement the locater interface (the Tools package does!) // // **Logging** // If you're interested in the output of the commands, you can implement the logger interface. Here's an example: // -// ```go -// logger := logrus.New() -// logger.Level = logrus.DebugLevel -// upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, logger) -// ``` +// ```go +// logger := logrus.New() +// logger.Level = logrus.DebugLevel +// upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, logger) +// ``` package upload diff --git a/utilities/utilities.go b/utilities/utilities.go index 95bc008a8..e690e5e75 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -105,6 +105,7 @@ func call(stack []*exec.Cmd, pipes []*io.PipeWriter) (err error) { return stack[0].Wait() } +// Unzip will unzip a file to a destination func Unzip(zippath string, destination string) (err error) { r, err := zip.OpenReader(zippath) if err != nil { diff --git a/utilities/utilities_darwin.go b/utilities/utilities_darwin.go index ab30cd777..ab567497a 100644 --- a/utilities/utilities_darwin.go +++ b/utilities/utilities_darwin.go @@ -17,5 +17,6 @@ package utilities import "os/exec" +// TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(_ *exec.Cmd) { } diff --git a/utilities/utilities_linux.go b/utilities/utilities_linux.go index ab30cd777..ab567497a 100644 --- a/utilities/utilities_linux.go +++ b/utilities/utilities_linux.go @@ -17,5 +17,6 @@ package utilities import "os/exec" +// TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(_ *exec.Cmd) { } diff --git a/utilities/utilities_windows.go b/utilities/utilities_windows.go index 716b00f20..658aaec8c 100644 --- a/utilities/utilities_windows.go +++ b/utilities/utilities_windows.go @@ -20,6 +20,7 @@ import ( "syscall" ) +// TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(oscmd *exec.Cmd) { oscmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} } diff --git a/v2/http.go b/v2/http.go index 89cb7201b..a3e9c6318 100644 --- a/v2/http.go +++ b/v2/http.go @@ -31,6 +31,7 @@ import ( "goa.design/goa/http/middleware" ) +// Server is the actual server func Server(home string) http.Handler { mux := goahttp.NewMuxer() diff --git a/v2/log.go b/v2/log.go index dc6502b2c..8d683ad18 100644 --- a/v2/log.go +++ b/v2/log.go @@ -22,10 +22,12 @@ import ( "github.com/sirupsen/logrus" ) +// LogAdapter is the adapter for the logger type LogAdapter struct { *logrus.Logger } +// Log is the log function func (a LogAdapter) Log(keyvals ...interface{}) error { n := (len(keyvals) + 1) / 2 if len(keyvals)%2 != 0 { diff --git a/v2/pkgs/pkgs.go b/v2/pkgs/pkgs.go index 997bbb207..9896fdd77 100644 --- a/v2/pkgs/pkgs.go +++ b/v2/pkgs/pkgs.go @@ -31,8 +31,8 @@ type Index struct { } // Tool is the go representation of the info about a -//tool contained in a package-index file, stripped from -//every non-used field. +// tool contained in a package-index file, stripped from +// every non-used field. type Tool struct { Name string `json:"name"` Version string `json:"version"` diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index b7624a465..a320b82be 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -39,13 +39,15 @@ import ( // Tools is a client that implements github.com/arduino/arduino-create-agent/gen/tools.Service interface. // It saves tools in a specified folder with this structure: packager/name/version // For example: -// folder -// └── arduino -// └── bossac -// ├── 1.6.1-arduino -// │   └── bossac -// └── 1.7.0 -// └── bossac +// +// folder +// └── arduino +// └── bossac +// ├── 1.6.1-arduino +// │   └── bossac +// └── 1.7.0 +// └── bossac +// // It requires an Indexes client to list and read package index files: use the Indexes struct type Tools struct { Indexes interface { From 64742a0fd0d12916a9b3aea5f6467f68c7ef679f Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 2 Dec 2022 15:01:46 +0100 Subject: [PATCH 066/233] Bump GO to 1.19 (#744) * bump go version to the latest available one * bump go mod to 1.19 * forgot to remove this in #742 * `go get` starting from 1.17 is deprecated to install binaries https://go.dev/doc/go-get-install-deprecation * Go dropped support for x87 in go 1.15 https://github.com/golang/go/issues/40255 * fix buildtag --- .../workflows/check-go-dependencies-task.yml | 2 +- .github/workflows/publish-go-tester-task.yml | 5 +- .github/workflows/release.yml | 15 ++--- .../workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- .../go/github.com/ugorji/go/codec.dep.yml | 6 +- .../field.dep.yml => poly1305.dep.yml} | 7 ++- go.mod | 60 ++++++++++++++----- go.sum | 7 +-- icon/icondarwin.go | 1 - icon/iconlinux.go | 1 - icon/iconwin.go | 1 - icon/make_icon.bat | 4 +- icon/make_icon.sh | 4 +- redirect_stderr_unix.go | 1 - redirect_stderr_win.go | 1 - systray/systray_fake.go | 1 - systray/systray_real.go | 1 - 18 files changed, 69 insertions(+), 52 deletions(-) rename .licenses/arduino-create-agent/go/golang.org/x/crypto/{curve25519/internal/field.dep.yml => poly1305.dep.yml} (93%) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 2c792b607..2a78cbba5 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -3,7 +3,7 @@ name: Check Go Dependencies env: # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.14" + GO_VERSION: "1.19" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 8b3ef4a69..8732887e4 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -30,7 +30,7 @@ on: repository_dispatch: env: - GO_VERSION: "1.14" + GO_VERSION: "1.19" jobs: run-determination: @@ -116,14 +116,13 @@ jobs: # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. - name: Download tool to embed manifest in win binary - run: go get github.com/akavel/rsrc + run: go install github.com/akavel/rsrc@latest if: runner.os == 'Windows' # building the agent for win requires a different task because of an extra flag - name: Build the Agent for win32 env: GOARCH: 386 # 32bit architecture (for support) - GO386: 387 # support old instruction sets without MMX (used in the Pentium 4) (will be deprecated in GO > 1.15 https://golang.org/doc/go1.15) run: task go:build-win if: runner.os == 'Windows' && matrix.arch == '-386' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 45ec5151f..59d086a03 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,6 +20,8 @@ env: INSTALLER_CERT_MAC_PATH: "/tmp/ArduinoCerts2020.p12" AC_USERNAME: ${{ secrets.AC_USERNAME }} # used by gon AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon + # See: https://github.com/actions/setup-go/tree/v3#readme + GO_VERSION: "1.19" jobs: # The build job is responsible for: configuring the environment, testing and compiling process @@ -64,7 +66,7 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - go-version: "1.14" + go-version: ${{ env.GO_VERSION }} # dependencies used for compiling the GUI - name: Install Dependencies (Linux) @@ -72,13 +74,7 @@ jobs: if: matrix.os == 'ubuntu-20.04' - name: Install Go deps - # Since 10/23/2019 pwsh is the default shell - # on Windows, but pwsh fails to install protoc-gen-go so - # we force bash as default shell for all OSes in this task - run: | - go get github.com/golangci/govet - go get golang.org/x/lint/golint - go get -u github.com/sanbornm/go-selfupdate/... + run: go install github.com/sanbornm/go-selfupdate/...@latest - name: Install Taskfile uses: arduino/setup-task@v1 @@ -98,14 +94,13 @@ jobs: # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. - name: Download tool to embed manifest in win binary - run: go get github.com/akavel/rsrc + run: go install github.com/akavel/rsrc@latest if: matrix.os == 'windows-2019' # building the agent for win requires a different task because of an extra flag - name: Build the Agent for win32 env: GOARCH: 386 # 32bit architecture (for support) - GO386: 387 # support old instruction sets without MMX (used in the Pentium 4) (will be deprecated in GO > 1.15 https://golang.org/doc/go1.15) run: task go:build-win if: matrix.os == 'windows-2019' && matrix.arch == '-386' diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 36f2b2622..7e357d588 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -3,7 +3,7 @@ name: Test Integration env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.14" + GO_VERSION: "1.19" # See: https://github.com/actions/setup-python/tree/v2#available-versions-of-python PYTHON_VERSION: "3.9" diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index fe20d9af5..a2fbb29c4 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -3,7 +3,7 @@ name: Test Go env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.14" + GO_VERSION: "1.19" # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows on: diff --git a/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml b/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml index 4ee4e68aa..eb52f1cb0 100644 --- a/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ugorji/go/codec.dep.yml @@ -1,17 +1,17 @@ --- name: github.com/ugorji/go/codec -version: v1.2.7 +version: v1.1.6 type: go summary: Package codec provides a High Performance, Feature-Rich Idiomatic Go 1.4+ codec/encoding library for binc, msgpack, cbor, json. homepage: https://pkg.go.dev/github.com/ugorji/go/codec license: mit licenses: -- sources: LICENSE +- sources: go@v1.1.6/LICENSE text: | The MIT License (MIT) - Copyright (c) 2012-2020 Ugorji Nwoke. + Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519/internal/field.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml similarity index 93% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519/internal/field.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml index 195f634b2..845af3986 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519/internal/field.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml @@ -1,9 +1,10 @@ --- -name: golang.org/x/crypto/curve25519/internal/field +name: golang.org/x/crypto/poly1305 version: v0.0.0-20210711020723-a769d52b0f97 type: go -summary: Package field implements fast arithmetic modulo 2^255-19. -homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519/internal/field +summary: Package poly1305 implements Poly1305 one-time message authentication code + as specified in https://cr.yp.to/mac/poly1305-20050329.pdf. +homepage: https://pkg.go.dev/golang.org/x/crypto/poly1305 license: bsd-3-clause licenses: - sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE diff --git a/go.mod b/go.mod index b5f732c70..f71006df3 100644 --- a/go.mod +++ b/go.mod @@ -1,45 +1,77 @@ module github.com/arduino/arduino-create-agent -go 1.14 +go 1.19 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.0.2 - github.com/davidmz/go-pageant v1.0.1 // indirect - github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect - github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect github.com/getlantern/systray v1.1.0 github.com/gin-gonic/gin v1.8.1 github.com/go-ini/ini v1.62.0 - github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect - github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 - github.com/h2non/filetype v1.1.0 // indirect - github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 github.com/kr/binarydist v0.1.0 - github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect - github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b // indirect github.com/mattn/go-shellwords v1.0.12 - github.com/miekg/dns v1.1.35 // indirect github.com/mitchellh/go-homedir v1.1.0 - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228 github.com/pkg/errors v0.9.1 - github.com/pkg/sftp v1.12.0 // indirect github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c github.com/sirupsen/logrus v1.8.1 github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c github.com/stretchr/testify v1.8.1 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 - github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 go.bug.st/serial v1.3.0 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa +) + +require ( + github.com/creack/goselect v0.1.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davidmz/go-pageant v1.0.1 // indirect + github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect + github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect + github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect + github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 // indirect + github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7 // indirect + github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7 // indirect + github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect + github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-playground/locales v0.14.0 // indirect + github.com/go-playground/universal-translator v0.18.0 // indirect + github.com/go-playground/validator/v10 v10.10.0 // indirect + github.com/go-stack/stack v1.8.0 // indirect + github.com/goccy/go-json v0.9.7 // indirect + github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect + github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect + github.com/gorilla/websocket v1.4.0 // indirect + github.com/h2non/filetype v1.1.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect + github.com/kr/fs v0.1.0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect + github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/miekg/dns v1.1.35 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect + github.com/pelletier/go-toml/v2 v2.0.1 // indirect + github.com/pkg/sftp v1.12.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/ugorji/go v1.1.6 // indirect + github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect + golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 // indirect + golang.org/x/text v0.3.6 // indirect + google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 2ce2aafb9..482a94949 100644 --- a/go.sum +++ b/go.sum @@ -228,7 +228,6 @@ github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228/go.mod h1:MGuVJ1 github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= @@ -304,10 +303,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= -github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= -github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= +github.com/ugorji/go v1.1.6 h1:zoJUBK8kLIUDNJ9LGB04qOQRfoDRoWBBpl0X7pZyi5I= +github.com/ugorji/go v1.1.6/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= diff --git a/icon/icondarwin.go b/icon/icondarwin.go index 9719c39b3..2eb38dd59 100644 --- a/icon/icondarwin.go +++ b/icon/icondarwin.go @@ -1,5 +1,4 @@ //go:build darwin -// +build darwin // File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) diff --git a/icon/iconlinux.go b/icon/iconlinux.go index 7b42eb1f2..27df134ce 100644 --- a/icon/iconlinux.go +++ b/icon/iconlinux.go @@ -1,5 +1,4 @@ //go:build linux -// +build linux // File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) diff --git a/icon/iconwin.go b/icon/iconwin.go index d75f4280c..104f4725a 100644 --- a/icon/iconwin.go +++ b/icon/iconwin.go @@ -1,5 +1,4 @@ //go:build windows -// +build windows // File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) diff --git a/icon/make_icon.bat b/icon/make_icon.bat index 93ada6c1b..15dc48423 100644 --- a/icon/make_icon.bat +++ b/icon/make_icon.bat @@ -17,12 +17,12 @@ GOTO DONE :INSTALL ECHO Installing 2goarray... -go get github.com/cratonica/2goarray +go install github.com/cratonica/2goarray@latest IF ERRORLEVEL 1 GOTO GETFAIL GOTO POSTINSTALL :GETFAIL -ECHO Failure running go get github.com/cratonica/2goarray. Ensure that go and git are in PATH +ECHO Failure running go install github.com/cratonica/2goarray@latest. Ensure that go and git are in PATH GOTO DONE :NOGO diff --git a/icon/make_icon.sh b/icon/make_icon.sh index 7e48c0216..77bf6f6d2 100755 --- a/icon/make_icon.sh +++ b/icon/make_icon.sh @@ -7,9 +7,9 @@ fi if [ ! -e "$GOPATH/bin/2goarray" ]; then echo "Installing 2goarray..." - go get github.com/cratonica/2goarray + go install github.com/cratonica/2goarray@latest if [ $? -ne 0 ]; then - echo Failure executing go get github.com/cratonica/2goarray + echo Failure executing go install github.com/cratonica/2goarray@latest exit fi fi diff --git a/redirect_stderr_unix.go b/redirect_stderr_unix.go index 77c16dc44..ed3e3f988 100644 --- a/redirect_stderr_unix.go +++ b/redirect_stderr_unix.go @@ -16,7 +16,6 @@ // Log the panic under unix to the log file //go:build !windows -// +build !windows package main diff --git a/redirect_stderr_win.go b/redirect_stderr_win.go index c9debd902..19279c756 100644 --- a/redirect_stderr_win.go +++ b/redirect_stderr_win.go @@ -5,7 +5,6 @@ // https://play.golang.org/p/kLtct7lSUg //go:build windows -// +build windows package main diff --git a/systray/systray_fake.go b/systray/systray_fake.go index b66c8fa3e..f86b516e0 100644 --- a/systray/systray_fake.go +++ b/systray/systray_fake.go @@ -14,7 +14,6 @@ // along with this program. If not, see . //go:build cli -// +build cli // Systray_fake gets compiled when the tag 'cli' is present. This is useful to build an agent without trayicon functionalities package systray diff --git a/systray/systray_real.go b/systray/systray_real.go index 0ed0d7dea..ff7a0769b 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -14,7 +14,6 @@ // along with this program. If not, see . //go:build !cli -// +build !cli // Systray_real gets compiled when the tag 'cli' is missing. This is the default case From 3c0fefed0ae61e758116ae25aed8f4b2009cb852 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 5 Dec 2022 12:27:40 +0100 Subject: [PATCH 067/233] enhance the taskfile (#745) --- Taskfile.yml | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/Taskfile.yml b/Taskfile.yml index f02378e68..6b7852762 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -1,4 +1,4 @@ -version: '3' +version: "3" tasks: # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies-task/Taskfile.yml @@ -30,17 +30,14 @@ tasks: desc: Build the project, to use a specific version use `task build TAG_VERSION=x.x.x` dir: "{{.DEFAULT_GO_MODULE_PATH}}" cmds: - - go build -v -i {{default "" .ADDITIONAL_FLAGS}} -o {{default "arduino-create-agent" .APP_NAME}} -ldflags '-X main.version={{default .TAG_TEST .TAG_VERSION}} -X main.commit={{.COMMIT}} {{default "" .WIN_FLAGS}}' - vars: - COMMIT: - sh: git log -n 1 --format=%h + - go build -v {{.ADDITIONAL_FLAGS}} -o {{.PROJECT_NAME}} {{.LDFLAGS}} {{.WIN_FLAGS}}' go:build-cli: desc: Build the project without tray icon support cmds: - task: go:build vars: - APP_NAME: arduino-create-agent_cli + PROJECT_NAME: arduino-create-agent_cli ADDITIONAL_FLAGS: -tags cli go:build-win: @@ -49,16 +46,19 @@ tasks: - rsrc -arch {{.GOARCH}} -manifest manifest.xml # GOARCH shoud be either amd64 or 386 - task: go:build vars: - APP_NAME: arduino-create-agent.exe + PROJECT_NAME: arduino-create-agent.exe WIN_FLAGS: -H=windowsgui - rm *.syso # rm file to avoid compilation problems on other platforms + vars: + GOARCH: + sh: go env GOARCH go:build-win-cli: - desc: Build the project fow win without tray icon support + desc: Build the project for win without tray icon support cmds: - task: go:build vars: - APP_NAME: arduino-create-agent_cli.exe + PROJECT_NAME: arduino-create-agent_cli.exe ADDITIONAL_FLAGS: -tags cli # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-go-task/Taskfile.yml @@ -137,17 +137,27 @@ tasks: cmds: - task: go:vet - task: go:lint - - task: python:lint - - task: protoc:check vars: + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/release-go-task/Taskfile.yml + PROJECT_NAME: arduino-create-agent + # build vars + COMMIT: + sh: echo "$(git log --no-show-signature -n 1 --format=%h)" + TIMESTAMP_SHORT: + sh: echo "{{now | date "20060102"}}" + TAG: + sh: echo "$(git tag --points-at=HEAD 2> /dev/null | head -n1)" TAG_TEST: "0.0.0-dev" - GOARCH: - sh: go env GOARCH - # all modules of this project except for "gen/..." module - DEFAULT_TARGETS: - sh: echo `go list ./... | grep -v 'arduino-create-agent/gen/' | tr '\n' ' '` + VERSION: "{{if .NIGHTLY}}nightly-{{.TIMESTAMP_SHORT}}{{else if .TAG}}{{.TAG}}{{else}}{{.TAG_TEST}}{{end}}" + CONFIGURATION_PACKAGE: main + LDFLAGS: >- + -ldflags + ' + -X {{.CONFIGURATION_PACKAGE}}.version={{.VERSION}} + -X {{.CONFIGURATION_PACKAGE}}.commit={{.COMMIT}} + # Path of the project's primary Go module: DEFAULT_GO_MODULE_PATH: ./ DEFAULT_GO_PACKAGES: sh: | From 4ceaa5ab6c7f32f7891f31cab2ffbd06a9838172 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 5 Dec 2022 16:22:27 +0100 Subject: [PATCH 068/233] Bump dependencies (#746) * bump `go.bug.st/serial` to 1.4.1 * replace `osext` direct dep with `os` from stdlib * bump github.com/oleksandr/bonjour lib * bump github.com/sfreiberg/simplessh lib * bump github.com/sirupsen/logrus lib * bump github.com/skratchdot/open-golang/open lib * bump github.com/xrash/smetrics lib * bump go.bug.st/downloader lib * bump golang.org/x/crypto and golang.org/x/sys libs --- .../go/github.com/kardianos/osext.dep.yml | 2 +- .../go/github.com/oleksandr/bonjour.dep.yml | 5 +- .../go/github.com/pkg/sftp.dep.yml | 2 +- .../internal/encoding/ssh/filexfer.dep.yml | 21 +++++++ .../go/github.com/sfreiberg/simplessh.dep.yml | 2 +- .../go/github.com/sirupsen/logrus.dep.yml | 2 +- .../skratchdot/open-golang/open.dep.yml | 6 +- .../go/github.com/xrash/smetrics.dep.yml | 6 +- .../v2.dep.yml} | 6 +- .../go/go.bug.st/serial.dep.yml | 4 +- .../go/go.bug.st/serial/enumerator.dep.yml | 8 +-- .../go/go.bug.st/serial/unixutils.dep.yml | 8 +-- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +- .../internal/alias.dep.yml} | 13 ++-- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +- .../golang.org/x/crypto/openpgp/armor.dep.yml | 6 +- .../x/crypto/openpgp/elgamal.dep.yml | 6 +- .../x/crypto/openpgp/errors.dep.yml | 6 +- .../x/crypto/openpgp/packet.dep.yml | 6 +- .../golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +- .../go/golang.org/x/crypto/poly1305.dep.yml | 63 ------------------- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +- .../crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +- .../go/golang.org/x/net/bpf.dep.yml | 6 +- .../go/golang.org/x/net/http2.dep.yml | 6 +- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +- .../golang.org/x/net/internal/socket.dep.yml | 6 +- .../go/golang.org/x/net/ipv4.dep.yml | 6 +- .../go/golang.org/x/net/ipv6.dep.yml | 6 +- .../go/golang.org/x/sys/unix.dep.yml | 6 +- .../x/text/internal/language.dep.yml | 6 +- .../x/text/internal/language/compact.dep.yml | 6 +- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +- .../go/golang.org/x/text/language.dep.yml | 6 +- go.mod | 28 ++++----- go.sum | 58 +++++++++-------- main.go | 7 +-- systray/systray.go | 7 +-- systray/systray_real.go | 7 +-- update.go | 5 +- updater/updater.go | 8 +-- v2/pkgs/indexes.go | 2 +- 47 files changed, 189 insertions(+), 231 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml rename .licenses/arduino-create-agent/go/go.bug.st/{downloader.dep.yml => downloader/v2.dep.yml} (93%) rename .licenses/arduino-create-agent/go/golang.org/x/{sys/internal/unsafeheader.dep.yml => crypto/internal/alias.dep.yml} (88%) delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml b/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml index 578fc888a..d7afd8fad 100644 --- a/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/kardianos/osext.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/kardianos/osext -version: v0.0.0-20170510131534-ae77be60afb1 +version: v0.0.0-20190222173326-2bc1f35cddc0 type: go summary: Extensions to the standard "os" package. homepage: https://pkg.go.dev/github.com/kardianos/osext diff --git a/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml b/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml index c79e98fe0..974494620 100644 --- a/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml @@ -1,9 +1,8 @@ --- name: github.com/oleksandr/bonjour -version: v0.0.0-20160508152359-5dcf00d8b228 +version: v0.0.0-20210301155756-30f43c61b915 type: go -summary: bonjour This is a simple Multicast DNS-SD (Apple Bonjour) library written - in Golang. +summary: bonjour homepage: https://pkg.go.dev/github.com/oleksandr/bonjour license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml b/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml index d0b7d872c..886a95a36 100644 --- a/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/pkg/sftp -version: v1.12.0 +version: v1.13.4 type: go summary: Package sftp implements the SSH File Transfer Protocol as described in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02 homepage: https://pkg.go.dev/github.com/pkg/sftp diff --git a/.licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml b/.licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml new file mode 100644 index 000000000..6723aaaeb --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml @@ -0,0 +1,21 @@ +--- +name: github.com/pkg/sftp/internal/encoding/ssh/filexfer +version: v1.13.4 +type: go +summary: Package filexfer implements the wire encoding for secsh-filexfer as described + in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02 +homepage: https://pkg.go.dev/github.com/pkg/sftp/internal/encoding/ssh/filexfer +license: bsd-2-clause +licenses: +- sources: sftp@v1.13.4/LICENSE + text: | + Copyright (c) 2013, Dave Cheney + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml b/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml index 27f80d290..6c56c1543 100644 --- a/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/sfreiberg/simplessh -version: v0.0.0-20180301191542-495cbb862a9c +version: v0.0.0-20220719182921-185eafd40485 type: go summary: homepage: https://pkg.go.dev/github.com/sfreiberg/simplessh diff --git a/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml b/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml index 9f1ef415f..2ee6f96a2 100644 --- a/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/sirupsen/logrus -version: v1.8.1 +version: v1.9.0 type: go summary: Package logrus is a structured logger for Go, completely API compatible with the standard library logger. diff --git a/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml b/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml index 7fb2f9c27..2cd61387d 100644 --- a/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/skratchdot/open-golang/open.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/skratchdot/open-golang/open -version: v0.0.0-20160302144031-75fb7ed4208c +version: v0.0.0-20200116055534-eef842397966 type: go summary: Open a file, directory, or URI using the OS's default application for that object type. homepage: https://pkg.go.dev/github.com/skratchdot/open-golang/open license: mit licenses: -- sources: open-golang@v0.0.0-20160302144031-75fb7ed4208c/LICENSE-MIT +- sources: open-golang@v0.0.0-20200116055534-eef842397966/LICENSE text: | Copyright (c) 2013 skratchdot @@ -31,6 +31,6 @@ licenses: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: open-golang@v0.0.0-20160302144031-75fb7ed4208c/README.md +- sources: open-golang@v0.0.0-20200116055534-eef842397966/README.md text: "Copyright (c) 2013 skratchdot \nLicensed under the MIT license." notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml index 597eb647a..9a413a094 100644 --- a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml @@ -1,9 +1,9 @@ --- name: github.com/xrash/smetrics -version: v0.0.0-20170218160415-a3153f7040e9 +version: v0.0.0-20201216005158-039620a65673 type: go -summary: "# String metrics This library contains implementations of the Levenshtein - distance, Jaro-Winkler and Soundex algorithms written in Go (golang)." +summary: Package smetrics provides a bunch of algorithms for calculating the distance + between strings. homepage: https://pkg.go.dev/github.com/xrash/smetrics license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml similarity index 93% rename from .licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml rename to .licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml index 00eb3d6d9..e255579fe 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/downloader.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml @@ -1,9 +1,9 @@ --- -name: go.bug.st/downloader -version: v0.0.0-20181116113543-9b8976a44d87 +name: go.bug.st/downloader/v2 +version: v2.1.1 type: go summary: -homepage: https://pkg.go.dev/go.bug.st/downloader +homepage: https://pkg.go.dev/go.bug.st/downloader/v2 license: bsd-3-clause licenses: - sources: LICENSE diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml index a7ecb3b18..a3ba42c32 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml @@ -1,6 +1,6 @@ --- name: go.bug.st/serial -version: v1.3.0 +version: v1.4.1 type: go summary: Package serial is a cross-platform serial library for the go language. homepage: https://pkg.go.dev/go.bug.st/serial @@ -9,7 +9,7 @@ licenses: - sources: LICENSE text: |2+ - Copyright (c) 2014-2020, Cristian Maglie. + Copyright (c) 2014-2021, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml index 06284620a..0078a4a60 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml @@ -1,16 +1,16 @@ --- name: go.bug.st/serial/enumerator -version: v1.3.0 +version: v1.4.1 type: go summary: Package enumerator is a golang cross-platform library for USB serial port discovery. homepage: https://pkg.go.dev/go.bug.st/serial/enumerator license: bsd-3-clause licenses: -- sources: serial@v1.3.0/LICENSE +- sources: serial@v1.4.1/LICENSE text: |2+ - Copyright (c) 2014-2020, Cristian Maglie. + Copyright (c) 2014-2021, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -42,7 +42,7 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.3.0/README.md +- sources: serial@v1.4.1/README.md text: |- The software is release under a [BSD 3-clause license] diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml index 0be1fed1d..ad23c8bc3 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml @@ -1,15 +1,15 @@ --- name: go.bug.st/serial/unixutils -version: v1.3.0 +version: v1.4.1 type: go summary: homepage: https://pkg.go.dev/go.bug.st/serial/unixutils license: bsd-3-clause licenses: -- sources: serial@v1.3.0/LICENSE +- sources: serial@v1.4.1/LICENSE text: |2+ - Copyright (c) 2014-2020, Cristian Maglie. + Copyright (c) 2014-2021, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,7 +41,7 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.3.0/README.md +- sources: serial@v1.4.1/README.md text: |- The software is release under a [BSD 3-clause license] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index f0569d63b..95c3fa959 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index def870b73..1fe8a2ce1 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index e6fc33ee0..43607f75a 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml similarity index 88% rename from .licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml index 3d25adc5d..21821f919 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/internal/unsafeheader.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml @@ -1,13 +1,12 @@ --- -name: golang.org/x/sys/internal/unsafeheader -version: v0.0.0-20210806184541-e5e7981a1069 +name: golang.org/x/crypto/internal/alias +version: v0.3.0 type: go -summary: Package unsafeheader contains header declarations for the Go runtime's slice - and string implementations. -homepage: https://pkg.go.dev/golang.org/x/sys/internal/unsafeheader +summary: Package alias implements memory aliasing tests. +homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias license: bsd-3-clause licenses: -- sources: sys@v0.0.0-20210806184541-e5e7981a1069/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.0.0-20210806184541-e5e7981a1069/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 4a1e8a35e..06afbf03c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 429491b86..32b583f0e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 0570ad6cf..42e014698 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index 6643301bc..d617e2f07 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index 7000e90c8..b837bf616 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index a9b4dac4d..6d1eaf9ee 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml deleted file mode 100644 index 845af3986..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/poly1305.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/crypto/poly1305 -version: v0.0.0-20210711020723-a769d52b0f97 -type: go -summary: Package poly1305 implements Poly1305 one-time message authentication code - as specified in https://cr.yp.to/mac/poly1305-20050329.pdf. -homepage: https://pkg.go.dev/golang.org/x/crypto/poly1305 -license: bsd-3-clause -licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 1e351691b..1ed32fe00 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index b42d66b59..5b6595258 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index cc054687b..92547aef0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index a270f6e80..872209231 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.0.0-20210711020723-a769d52b0f97 +version: v0.3.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/LICENSE +- sources: crypto@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.0.0-20210711020723-a769d52b0f97/PATENTS +- sources: crypto@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index fdadf5eb9..b5ab87dd2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 7203ee1a0..1af875976 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index a36deaa36..f958e4777 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 727195d13..064bcc71e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 1ab083a17..33b6e83eb 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index a4a0e4db3..0244ee4f0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 69777e4ed..c4ac32f34 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.0.0-20210226172049-e18ecbb05110 +version: v0.2.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.0.0-20210226172049-e18ecbb05110/LICENSE +- sources: net@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.0.0-20210226172049-e18ecbb05110/PATENTS +- sources: net@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 965526ae3..5311b1523 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.0.0-20210806184541-e5e7981a1069 +version: v0.2.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.0.0-20210806184541-e5e7981a1069/LICENSE +- sources: sys@v0.2.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.0.0-20210806184541-e5e7981a1069/PATENTS +- sources: sys@v0.2.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index 29a8d762c..d49b005e9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.3.6 +version: v0.4.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.3.6/LICENSE +- sources: text@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.3.6/PATENTS +- sources: text@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index 308be1aa7..6b9e00cc8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.3.6 +version: v0.4.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.3.6/LICENSE +- sources: text@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.3.6/PATENTS +- sources: text@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index bb43d6084..1075c7a62 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.3.6 +version: v0.4.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.3.6/LICENSE +- sources: text@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.3.6/PATENTS +- sources: text@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index 918f0c876..91543ffc8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.3.6 +version: v0.4.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.3.6/LICENSE +- sources: text@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.3.6/PATENTS +- sources: text@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index f71006df3..a6d2ae8c7 100644 --- a/go.mod +++ b/go.mod @@ -11,29 +11,28 @@ require ( github.com/gin-gonic/gin v1.8.1 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 - github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 github.com/kr/binarydist v0.1.0 github.com/mattn/go-shellwords v1.0.12 github.com/mitchellh/go-homedir v1.1.0 - github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228 + github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 github.com/pkg/errors v0.9.1 - github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c - github.com/sirupsen/logrus v1.8.1 - github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c + github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 + github.com/sirupsen/logrus v1.9.0 + github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.8.1 - github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 - go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 - go.bug.st/serial v1.3.0 + github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 + go.bug.st/downloader/v2 v2.1.1 + go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 - golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069 + golang.org/x/crypto v0.3.0 + golang.org/x/sys v0.2.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) require ( github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/davidmz/go-pageant v1.0.1 // indirect + github.com/davidmz/go-pageant v1.0.2 // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect @@ -54,6 +53,7 @@ require ( github.com/h2non/filetype v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect + github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect @@ -64,12 +64,12 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pelletier/go-toml/v2 v2.0.1 // indirect - github.com/pkg/sftp v1.12.0 // indirect + github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect - golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 // indirect - golang.org/x/text v0.3.6 // indirect + golang.org/x/net v0.2.0 // indirect + golang.org/x/text v0.4.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 482a94949..109885051 100644 --- a/go.sum +++ b/go.sum @@ -48,8 +48,8 @@ github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CL github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidmz/go-pageant v1.0.1 h1:kzCt64aTc557QYvy5VBSN1pVWO/tNAcqzwlpUsZ8IEE= -github.com/davidmz/go-pageant v1.0.1/go.mod h1:WWOKE/93DhgsPq15jaipH4fVY+MLKKWH4Yku5Ei92rE= +github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= +github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= @@ -167,8 +167,8 @@ github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0/go.mod h1:hpGvhGHPVbN github.com/juju/utils v0.0.0-20180808125547-9dfc6dbfb02b/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= github.com/juju/version v0.0.0-20161031051906-1f41e27e54f2/go.mod h1:kE8gK5X0CImdr7qpSKl3xB2PmpySSmfj7zVbkZFs81U= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1 h1:PJPDf8OUfOK1bb/NeTKd4f1QXZItOX389VN3B6qC8ro= -github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= +github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= +github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -223,8 +223,9 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228 h1:Cvfd2dOlXIPTeEkOT/h8PyK4phBngOM4at9/jlgy7d4= github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= +github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 h1:d291KOLbN1GthTPA1fLKyWdclX3k1ZP+CzYtun+a5Es= +github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= @@ -236,8 +237,8 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.12.0 h1:/f3b24xrDhkhddlaobPe2JgBqfdt+gC/NYl0QY9IOuI= -github.com/pkg/sftp v1.12.0/go.mod h1:fUqqXB5vEgVCZ131L+9say31RAri6aF6KDViawhxKK8= +github.com/pkg/sftp v1.13.4 h1:Lb0RYJCmgUcBgZosfoi9Y9sbl6+LJgOIgk/2Y4YjMFg= +github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583/go.mod h1:sFPiU/UgDcsQVu3vkqpZLCXWFwUoQRpHGu9ATihPAl0= @@ -263,15 +264,15 @@ github.com/segmentio/objconv v1.0.1/go.mod h1:auayaH5k3137Cl4SoXTgrzQcuQDmvuVtZg github.com/segmentio/stats/v4 v4.5.3/go.mod h1:LsaahUJR7iiSs8mnkvQvdQ/RLHAS5adGLxuntg0ydGo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c h1:7Q+2oF0uBoLEV+j13E3/xUkPkI7f+sFNPZOPo2jmrWk= -github.com/sfreiberg/simplessh v0.0.0-20180301191542-495cbb862a9c/go.mod h1:sB7d6wQapoRM+qx5MgQYB6JVHtel4YHRr0NXXCkXiwQ= +github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 h1:ZMBZ2DKX1sScUSo9ZUwGI7jCMukslPNQNfZaw9vVyfY= +github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485/go.mod h1:9qeq2P58+4+LyuncL3waJDG+giOfXgowfrRZZF9XdWk= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c h1:fyKiXKO1/I/B6Y2U8T7WdQGWzwehOuGIrljPtt7YTTI= -github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= @@ -310,18 +311,17 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= -github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea h1:CyhwejzVGvZ3Q2PSbQ4NRRYn+ZWv5eS1vlaEusT+bAI= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea/go.mod h1:eNr558nEUjP8acGw8FFjTeWvSgU1stO7FAO6eknhHe4= go.bug.st/cleanup v1.0.0/go.mod h1:EqVmTg2IBk4znLbPD28xne3abjsJftMdqqJEjhn70bk= -go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87 h1:8W/hwyrc25HrXxbtG8Ghiwgq/hDB8KCh7hKMf78gp90= -go.bug.st/downloader v0.0.0-20181116113543-9b8976a44d87/go.mod h1:OUL7bexo6Ir+BRE5E7Cs3qUvO6ZgJL5Hjk/qwiy6Ze0= +go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18/go.mod h1:Cx1VqMtEhE9pIkEyUj3LVVVPkv89dgW8aCKrRPDR/uE= go.bug.st/serial v1.1.2/go.mod h1:VmYBeyJWp5BnJ0tw2NUJHZdJTGl2ecBGABHlzRK1knY= -go.bug.st/serial v1.3.0 h1:liPN6f/Xk0qaUByg0H2LOSns+2RuAuNXmXZyQOLVwVE= -go.bug.st/serial v1.3.0/go.mod h1:8TT7u/SwwNIpJ8QaG4s+HTjFt9ReXs2cdOU7ZEk50Dk= +go.bug.st/serial v1.4.1 h1:AwYUNixVf90XymNeJaUkMrPp+GZQe3RMFQmpVdHIUK8= +go.bug.st/serial v1.4.1/go.mod h1:z8CesKorE90Qr/oRSJiEuvzYRKol9r/anJZEb5kt304= go.bug.st/serial.v1 v0.0.0-20180827123349-5f7892a7bb45/go.mod h1:dRSl/CVCTf56CkXgJMDOdSwNfo2g1orOGE/gBGdvjZw= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -336,9 +336,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -358,8 +360,9 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -378,22 +381,25 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069 h1:siQdpVirKtzPhKl3lZWozZraCFObP8S1v6PRp0bLrtU= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/main.go b/main.go index 323ef1eac..df33dc7c1 100755 --- a/main.go +++ b/main.go @@ -40,7 +40,6 @@ import ( v2 "github.com/arduino/arduino-create-agent/v2" "github.com/gin-gonic/gin" "github.com/go-ini/ini" - "github.com/kardianos/osext" log "github.com/sirupsen/logrus" //"github.com/sanbornm/go-selfupdate/selfupdate" #included in update.go to change heavily ) @@ -140,7 +139,7 @@ func main() { AdditionalConfig: *additionalConfig, } - path, err := osext.Executable() + path, err := os.Executable() if err != nil { panic(err) } @@ -184,7 +183,7 @@ func loop() { return } // autoextract self - src, _ := osext.Executable() + src, _ := os.Executable() dest := filepath.Dir(src) if embeddedAutoextract { @@ -310,7 +309,7 @@ func loop() { // save crashreport to file if *crashreport { logFilename := "crashreport_" + time.Now().Format("20060102150405") + ".log" - currDir, err := osext.ExecutableFolder() + currDir, err := os.Getwd() if err != nil { panic(err) } diff --git a/systray/systray.go b/systray/systray.go index 7b6b0b99a..b103395f7 100644 --- a/systray/systray.go +++ b/systray/systray.go @@ -17,12 +17,11 @@ package systray import ( "fmt" + "os" "os/exec" "strings" log "github.com/sirupsen/logrus" - - "github.com/kardianos/osext" ) // Systray manages the systray icon with its menu and actions. It also handles the pause/resume behaviour of the agent @@ -46,9 +45,9 @@ func (s *Systray) Restart() { if s.path == "" { log.Println("Update binary path not set") var err error - s.path, err = osext.Executable() + s.path, err = os.Executable() if err != nil { - log.Printf("Error getting exe path using osext lib. err: %v\n", err) + log.Printf("Error getting exe path using os lib. err: %v\n", err) } } else { log.Println("Starting updated binary: ", s.path) diff --git a/systray/systray_real.go b/systray/systray_real.go index ff7a0769b..f06502fc6 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -29,7 +29,6 @@ import ( "github.com/arduino/arduino-create-agent/icon" "github.com/getlantern/systray" "github.com/go-ini/ini" - "github.com/kardianos/osext" "github.com/skratchdot/open-golang/open" ) @@ -102,7 +101,7 @@ func (s *Systray) updateMenuItem(item *systray.MenuItem, disable bool) { // CrashesIsEmpty checks if the folder containing crash-reports is empty func (s *Systray) CrashesIsEmpty() bool { - currDir, err := osext.ExecutableFolder() + currDir, err := os.Getwd() if err != nil { log.Error("Cannot determine executable path: ", err) } @@ -115,7 +114,7 @@ func (s *Systray) CrashesIsEmpty() bool { // RemoveCrashes removes the crash-reports from `logs` folder func (s *Systray) RemoveCrashes() { - currDir, err := osext.ExecutableFolder() + currDir, err := os.Getwd() if err != nil { log.Error("Cannot determine executable path: ", err) } @@ -190,7 +189,7 @@ type configIni struct { // getconfigs parses all config files in the executable folder func getConfigs() []configIni { // config.ini must be there, so call it Default - src, _ := osext.Executable() + src, _ := os.Executable() dest := filepath.Dir(src) var configs []configIni diff --git a/update.go b/update.go index 78c1d9e1a..af86df7a3 100644 --- a/update.go +++ b/update.go @@ -30,14 +30,15 @@ package main import ( + "os" + "github.com/arduino/arduino-create-agent/updater" "github.com/gin-gonic/gin" - "github.com/kardianos/osext" ) func updateHandler(c *gin.Context) { - path, err := osext.Executable() + path, err := os.Executable() if err != nil { c.JSON(500, gin.H{"error": err.Error()}) diff --git a/updater/updater.go b/updater/updater.go index 51864e648..b04d43a7a 100644 --- a/updater/updater.go +++ b/updater/updater.go @@ -32,8 +32,6 @@ import ( "github.com/kr/binarydist" log "github.com/sirupsen/logrus" "gopkg.in/inconshreveable/go-update.v0" - - "github.com/kardianos/osext" ) // Update protocol: @@ -123,7 +121,7 @@ func (u *Updater) BackgroundRun() error { log.Println(err) return err } - //self, err := osext.Executable() + //self, err := os.Executable() //if err != nil { // fail update, couldn't figure out path to self //return @@ -225,13 +223,13 @@ func (u *Updater) fetchInfo() error { } func (u *Updater) getExecRelativeDir(dir string) string { - filename, _ := osext.Executable() + filename, _ := os.Executable() path := filepath.Join(filepath.Dir(filename), dir) return path } func (u *Updater) update() error { - path, err := osext.Executable() + path, err := os.Executable() if err != nil { return err } diff --git a/v2/pkgs/indexes.go b/v2/pkgs/indexes.go index 1f482917b..2b83239ca 100644 --- a/v2/pkgs/indexes.go +++ b/v2/pkgs/indexes.go @@ -27,7 +27,7 @@ import ( "github.com/arduino/arduino-create-agent/gen/indexes" "github.com/sirupsen/logrus" - "go.bug.st/downloader" + "go.bug.st/downloader/v2" ) // Indexes is a client that implements github.com/arduino/arduino-create-agent/gen/indexes.Service interface From bf6d707141ce7d6da8aa3bebef7afd5f09762461 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:42:31 +0100 Subject: [PATCH 069/233] Bump golang.org/x/sys from 0.2.0 to 0.3.0 (#747) * Bump golang.org/x/sys from 0.2.0 to 0.3.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.2.0 to 0.3.0. - [Release notes](https://github.com/golang/sys/releases) - [Commits](https://github.com/golang/sys/compare/v0.2.0...v0.3.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licenses Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: umbynos --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 5311b1523..fd5fab8d2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.2.0 +version: v0.3.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.2.0/LICENSE +- sources: sys@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.2.0/PATENTS +- sources: sys@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index a6d2ae8c7..c0a2c0064 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 golang.org/x/crypto v0.3.0 - golang.org/x/sys v0.2.0 + golang.org/x/sys v0.3.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 109885051..b30b7c0b6 100644 --- a/go.sum +++ b/go.sum @@ -390,8 +390,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From a316c0a0b945383ac5d19b880a14fdd1c7110c25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 12:52:21 +0100 Subject: [PATCH 070/233] Bump golang.org/x/crypto from 0.3.0 to 0.4.0 (#748) * Bump golang.org/x/crypto from 0.3.0 to 0.4.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.3.0 to 0.4.0. - [Release notes](https://github.com/golang/crypto/releases) - [Commits](https://github.com/golang/crypto/compare/v0.3.0...v0.4.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licenses Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: umbynos --- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/internal/alias.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/armor.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/elgamal.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/errors.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/packet.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/net/bpf.dep.yml | 6 +++--- .../go/golang.org/x/net/http2.dep.yml | 6 +++--- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/socket.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv4.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv6.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/language.dep.yml | 6 +++--- .../x/text/internal/language/compact.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +++--- .../go/golang.org/x/text/language.dep.yml | 6 +++--- go.mod | 6 +++--- go.sum | 14 +++++++------- 27 files changed, 85 insertions(+), 85 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index 95c3fa959..e1eab608f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.3.0 +version: v0.4.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index 1fe8a2ce1..a9f14f795 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.3.0 +version: v0.4.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index 43607f75a..b9e3dc3bb 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.3.0 +version: v0.4.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml index 21821f919..fa658b0d4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/internal/alias -version: v0.3.0 +version: v0.4.0 type: go summary: Package alias implements memory aliasing tests. homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 06afbf03c..1e6e4bc02 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.3.0 +version: v0.4.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 32b583f0e..e2487e295 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.3.0 +version: v0.4.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 42e014698..cadfadcf6 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.3.0 +version: v0.4.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index d617e2f07..2f88afc30 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.3.0 +version: v0.4.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index b837bf616..1f0597fe7 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.3.0 +version: v0.4.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index 6d1eaf9ee..9043907ef 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.3.0 +version: v0.4.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 1ed32fe00..9bb048622 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.3.0 +version: v0.4.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 5b6595258..6a42d77d4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.3.0 +version: v0.4.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index 92547aef0..11b9493d3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.3.0 +version: v0.4.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 872209231..58e72efcc 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.3.0 +version: v0.4.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.3.0/LICENSE +- sources: crypto@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.3.0/PATENTS +- sources: crypto@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index b5ab87dd2..b688998c9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.2.0 +version: v0.3.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 1af875976..f0d200682 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.2.0 +version: v0.3.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index f958e4777..0e3819c51 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.2.0 +version: v0.3.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 064bcc71e..37e6dc093 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.2.0 +version: v0.3.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 33b6e83eb..de472f535 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.2.0 +version: v0.3.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index 0244ee4f0..ca11811ad 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.2.0 +version: v0.3.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index c4ac32f34..e45123352 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.2.0 +version: v0.3.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.2.0/LICENSE +- sources: net@v0.3.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.2.0/PATENTS +- sources: net@v0.3.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index d49b005e9..b120aa082 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.4.0 +version: v0.5.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.4.0/LICENSE +- sources: text@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.4.0/PATENTS +- sources: text@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index 6b9e00cc8..a37e1f20f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.4.0 +version: v0.5.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.4.0/LICENSE +- sources: text@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.4.0/PATENTS +- sources: text@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index 1075c7a62..4323a6875 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.4.0 +version: v0.5.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.4.0/LICENSE +- sources: text@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.4.0/PATENTS +- sources: text@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index 91543ffc8..438381bbd 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.4.0 +version: v0.5.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.4.0/LICENSE +- sources: text@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.4.0/PATENTS +- sources: text@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index c0a2c0064..6de16baee 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.3.0 + golang.org/x/crypto v0.4.0 golang.org/x/sys v0.3.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -68,8 +68,8 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect - golang.org/x/net v0.2.0 // indirect - golang.org/x/text v0.4.0 // indirect + golang.org/x/net v0.3.0 // indirect + golang.org/x/text v0.5.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index b30b7c0b6..d23d9720c 100644 --- a/go.sum +++ b/go.sum @@ -339,8 +339,8 @@ golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= -golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= +golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -361,8 +361,8 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.3.0 h1:VWL6FNY2bEEmsGVKabSlHu5Irp34xmMRoqb/9lF9lxk= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -393,13 +393,13 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= +golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 58d29608f0818c248cd8ad28e9fca80e7b5be994 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Dec 2022 15:16:08 +0100 Subject: [PATCH 071/233] Bump github.com/codeclysm/extract/v3 from 3.0.2 to 3.1.0 (#749) * Bump github.com/codeclysm/extract/v3 from 3.0.2 to 3.1.0 Bumps [github.com/codeclysm/extract/v3](https://github.com/codeclysm/extract) from 3.0.2 to 3.1.0. - [Release notes](https://github.com/codeclysm/extract/releases) - [Commits](https://github.com/codeclysm/extract/compare/v3.0.2...v3.1.0) --- updated-dependencies: - dependency-name: github.com/codeclysm/extract/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licenses Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: umbynos --- .../github.com/codeclysm/extract/v3.dep.yml | 2 +- .../go/github.com/h2non/filetype.dep.yml | 2 +- .../h2non/filetype/matchers.dep.yml | 6 +- .../h2non/filetype/matchers/isobmff.dep.yml | 6 +- .../github.com/h2non/filetype/types.dep.yml | 6 +- .../go/github.com/klauspost/compress.dep.yml | 318 ++++++++++++++++ .../github.com/klauspost/compress/fse.dep.yml | 315 ++++++++++++++++ .../klauspost/compress/huff0.dep.yml | 316 ++++++++++++++++ .../compress/internal/cpuinfo.dep.yml | 318 ++++++++++++++++ .../compress/internal/snapref.dep.yml | 347 ++++++++++++++++++ .../klauspost/compress/zstd.dep.yml | 315 ++++++++++++++++ .../compress/zstd/internal/xxhash.dep.yml | 339 +++++++++++++++++ .../go/github.com/ulikunitz/xz.dep.yml | 37 ++ .../ulikunitz/xz/internal/hash.dep.yml | 37 ++ .../ulikunitz/xz/internal/xlog.dep.yml | 38 ++ .../go/github.com/ulikunitz/xz/lzma.dep.yml | 37 ++ go.mod | 6 +- go.sum | 11 +- 18 files changed, 2440 insertions(+), 16 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml index a2c2101e7..5389a442f 100644 --- a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/codeclysm/extract/v3 -version: v3.0.2 +version: v3.1.0 type: go summary: Package extract allows to extract archives in zip, tar.gz or tar.bz2 formats easily. diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml index 014a75d60..02102b9ee 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/h2non/filetype -version: v1.1.0 +version: v1.1.3 type: go summary: homepage: https://pkg.go.dev/github.com/h2non/filetype diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml index 240a31b02..e9421e1f8 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/h2non/filetype/matchers -version: v1.1.0 +version: v1.1.3 type: go summary: homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers license: mit licenses: -- sources: filetype@v1.1.0/LICENSE +- sources: filetype@v1.1.3/LICENSE text: | The MIT License @@ -32,6 +32,6 @@ licenses: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: filetype@v1.1.0/README.md +- sources: filetype@v1.1.3/README.md text: MIT - Tomas Aparicio notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml index a27597282..0a3984965 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/h2non/filetype/matchers/isobmff -version: v1.1.0 +version: v1.1.3 type: go summary: homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers/isobmff license: mit licenses: -- sources: filetype@v1.1.0/LICENSE +- sources: filetype@v1.1.3/LICENSE text: | The MIT License @@ -32,6 +32,6 @@ licenses: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: filetype@v1.1.0/README.md +- sources: filetype@v1.1.3/README.md text: MIT - Tomas Aparicio notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml index ea4db4f6f..f8fe41654 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/h2non/filetype/types -version: v1.1.0 +version: v1.1.3 type: go summary: homepage: https://pkg.go.dev/github.com/h2non/filetype/types license: mit licenses: -- sources: filetype@v1.1.0/LICENSE +- sources: filetype@v1.1.3/LICENSE text: | The MIT License @@ -32,6 +32,6 @@ licenses: WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: filetype@v1.1.0/README.md +- sources: filetype@v1.1.3/README.md text: MIT - Tomas Aparicio notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml new file mode 100644 index 000000000..5c972ef25 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml @@ -0,0 +1,318 @@ +--- +name: github.com/klauspost/compress +version: v1.15.13 +type: go +summary: +homepage: https://pkg.go.dev/github.com/klauspost/compress +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: This code is licensed under the same conditions as the original Go code. See + LICENSE file. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml new file mode 100644 index 000000000..0bd54020e --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml @@ -0,0 +1,315 @@ +--- +name: github.com/klauspost/compress/fse +version: v1.15.13 +type: go +summary: Package fse provides Finite State Entropy encoding and decoding. +homepage: https://pkg.go.dev/github.com/klauspost/compress/fse +license: bsd-3-clause +licenses: +- sources: compress@v1.15.13/LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml new file mode 100644 index 000000000..51b018486 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml @@ -0,0 +1,316 @@ +--- +name: github.com/klauspost/compress/huff0 +version: v1.15.13 +type: go +summary: This file contains the specialisation of Decoder.Decompress4X and Decoder.Decompress1X + that use an asm implementation of thir main loops. +homepage: https://pkg.go.dev/github.com/klauspost/compress/huff0 +license: bsd-3-clause +licenses: +- sources: compress@v1.15.13/LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml new file mode 100644 index 000000000..d56c203ee --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml @@ -0,0 +1,318 @@ +--- +name: github.com/klauspost/compress/internal/cpuinfo +version: v1.15.13 +type: go +summary: Package cpuinfo gives runtime info about the current CPU. +homepage: https://pkg.go.dev/github.com/klauspost/compress/internal/cpuinfo +license: bsd-3-clause +licenses: +- sources: compress@v1.15.13/LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: compress@v1.15.13/README.md + text: This code is licensed under the same conditions as the original Go code. See + LICENSE file. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml new file mode 100644 index 000000000..2951f5237 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml @@ -0,0 +1,347 @@ +--- +name: github.com/klauspost/compress/internal/snapref +version: v1.15.13 +type: go +summary: Package snapref implements the Snappy compression format. +homepage: https://pkg.go.dev/github.com/klauspost/compress/internal/snapref +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: compress@v1.15.13/LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: compress@v1.15.13/README.md + text: This code is licensed under the same conditions as the original Go code. See + LICENSE file. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml new file mode 100644 index 000000000..0bdd51f88 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml @@ -0,0 +1,315 @@ +--- +name: github.com/klauspost/compress/zstd +version: v1.15.13 +type: go +summary: Package zstd provides decompression of zstandard files. +homepage: https://pkg.go.dev/github.com/klauspost/compress/zstd +license: bsd-3-clause +licenses: +- sources: compress@v1.15.13/LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml new file mode 100644 index 000000000..609d154c7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml @@ -0,0 +1,339 @@ +--- +name: github.com/klauspost/compress/zstd/internal/xxhash +version: v1.15.13 +type: go +summary: +homepage: https://pkg.go.dev/github.com/klauspost/compress/zstd/internal/xxhash +license: bsd-3-clause +licenses: +- sources: compress@v1.15.13/LICENSE + text: | + Copyright (c) 2012 The Go Authors. All rights reserved. + Copyright (c) 2019 Klaus Post. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ------------------ + + Files: gzhttp/* + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2017 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + ------------------ + + Files: s2/cmd/internal/readahead/* + + The MIT License (MIT) + + Copyright (c) 2015 Klaus Post + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + --------------------- + Files: snappy/* + Files: internal/snapref/* + + Copyright (c) 2011 The Snappy-Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ----------------- + + Files: s2/cmd/internal/filepathx/* + + Copyright 2016 The filepathx Authors + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: LICENSE.txt + text: | + Copyright (c) 2016 Caleb Spare + + MIT License + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml new file mode 100644 index 000000000..0b3c4e2b2 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/ulikunitz/xz +version: v0.5.11 +type: go +summary: Package xz supports the compression and decompression of xz files. +homepage: https://pkg.go.dev/github.com/ulikunitz/xz +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2014-2022 Ulrich Kunitz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * My name, Ulrich Kunitz, may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml new file mode 100644 index 000000000..470737fb6 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/ulikunitz/xz/internal/hash +version: v0.5.11 +type: go +summary: Package hash provides rolling hashes. +homepage: https://pkg.go.dev/github.com/ulikunitz/xz/internal/hash +license: bsd-3-clause +licenses: +- sources: xz@v0.5.11/LICENSE + text: | + Copyright (c) 2014-2022 Ulrich Kunitz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * My name, Ulrich Kunitz, may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml new file mode 100644 index 000000000..5fc1e57f7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml @@ -0,0 +1,38 @@ +--- +name: github.com/ulikunitz/xz/internal/xlog +version: v0.5.11 +type: go +summary: Package xlog provides a simple logging package that allows to disable certain + message categories. +homepage: https://pkg.go.dev/github.com/ulikunitz/xz/internal/xlog +license: bsd-3-clause +licenses: +- sources: xz@v0.5.11/LICENSE + text: | + Copyright (c) 2014-2022 Ulrich Kunitz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * My name, Ulrich Kunitz, may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml new file mode 100644 index 000000000..b30f1859d --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml @@ -0,0 +1,37 @@ +--- +name: github.com/ulikunitz/xz/lzma +version: v0.5.11 +type: go +summary: Package lzma supports the decoding and encoding of LZMA streams. +homepage: https://pkg.go.dev/github.com/ulikunitz/xz/lzma +license: bsd-3-clause +licenses: +- sources: xz@v0.5.11/LICENSE + text: | + Copyright (c) 2014-2022 Ulrich Kunitz + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * My name, Ulrich Kunitz, may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/go.mod b/go.mod index 6de16baee..8918c47b6 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 github.com/blang/semver v3.5.1+incompatible - github.com/codeclysm/extract/v3 v3.0.2 + github.com/codeclysm/extract/v3 v3.1.0 github.com/getlantern/systray v1.1.0 github.com/gin-gonic/gin v1.8.1 github.com/go-ini/ini v1.62.0 @@ -50,10 +50,11 @@ require ( github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/gorilla/websocket v1.4.0 // indirect - github.com/h2non/filetype v1.1.0 // indirect + github.com/h2non/filetype v1.1.3 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect + github.com/klauspost/compress v1.15.13 // indirect github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect @@ -67,6 +68,7 @@ require ( github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/ugorji/go v1.1.6 // indirect + github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect golang.org/x/net v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect diff --git a/go.sum b/go.sum index d23d9720c..0d8267de4 100644 --- a/go.sum +++ b/go.sum @@ -31,8 +31,9 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cmaglie/go.rice v1.0.3/go.mod h1:AF3bOWkvdOpp8/S3UL8qbQ4N7DiISIbJtj54GWFPAsc= github.com/cmaglie/pb v1.0.27/go.mod h1:GilkKZMXYjBA4NxItWFfO+lwkp59PLHQ+IOW/b/kmZI= github.com/codeclysm/cc v1.2.2/go.mod h1:XtW4ArCNgQwFphcRGG9+sPX5WM1J6/u0gMy5ZdV3obA= -github.com/codeclysm/extract/v3 v3.0.2 h1:sB4LcE3Php7LkhZwN0n2p8GCwZe92PEQutdbGURf5xc= github.com/codeclysm/extract/v3 v3.0.2/go.mod h1:NKsw+hqua9H+Rlwy/w/3Qgt9jDonYEgB6wJu+25eOKw= +github.com/codeclysm/extract/v3 v3.1.0 h1:z14FpkRizce3HNHsqJoZWwj0ovzZ2hiIkmT96FQS3j8= +github.com/codeclysm/extract/v3 v3.1.0/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -142,8 +143,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/h2non/filetype v1.0.6/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/h2non/filetype v1.0.8/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= -github.com/h2non/filetype v1.1.0 h1:Or/gjocJrJRNK/Cri/TDEKFjAR+cfG6eK65NGYB6gBA= -github.com/h2non/filetype v1.1.0/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= +github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= +github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= @@ -172,6 +173,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= +github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= @@ -306,6 +309,8 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1 github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.6 h1:zoJUBK8kLIUDNJ9LGB04qOQRfoDRoWBBpl0X7pZyi5I= github.com/ugorji/go v1.1.6/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os= +github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= +github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= From ed6d465d2850861143636fb9bad579cafa3fefa9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 16:45:12 +0100 Subject: [PATCH 072/233] Bump golang.org/x/sys from 0.3.0 to 0.4.0 (#755) * Bump golang.org/x/sys from 0.3.0 to 0.4.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.3.0 to 0.4.0. - [Release notes](https://github.com/golang/sys/releases) - [Commits](https://github.com/golang/sys/compare/v0.3.0...v0.4.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licenses Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: umbynos --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index fd5fab8d2..ccc97728d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.3.0 +version: v0.4.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.3.0/LICENSE +- sources: sys@v0.4.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.3.0/PATENTS +- sources: sys@v0.4.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 8918c47b6..faedd7293 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 golang.org/x/crypto v0.4.0 - golang.org/x/sys v0.3.0 + golang.org/x/sys v0.4.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 0d8267de4..06889bb9e 100644 --- a/go.sum +++ b/go.sum @@ -395,8 +395,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 38f2d673b110f9dca9c179b821da03208436c10d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 16:49:16 +0100 Subject: [PATCH 073/233] Bump actions/stale from 6 to 7 (#750) Bumps [actions/stale](https://github.com/actions/stale) from 6 to 7. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 95568ba16..fdd2eb5f8 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v6 + - uses: actions/stale@v7 with: stale-issue-message: 'This issue has been marked as stale because it has been open for more than 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' stale-issue-label: 'status: stale' From a27cbf71eb15546ec46dc78fc35ce0ee4b61446c Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 9 Jan 2023 16:58:34 +0100 Subject: [PATCH 074/233] Fix amd64 darwin install wrong tool (amd64) (#753) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add go-paths-helper lib * make GOOS and GOARCH global vars to allow testing * add test to replicate #751 * use and old version of the lib, (in the new version the algorithm was changed 🤷‍♂️) * add tool download for m1 --- .../go/github.com/xrash/smetrics.dep.yml | 5 +- go.mod | 3 +- go.sum | 7 +- tools/download.go | 15 ++- tools/download_test.go | 39 ++++++ tools/testdata/test_tool_index.json | 117 ++++++++++++++++++ 6 files changed, 175 insertions(+), 11 deletions(-) create mode 100644 tools/testdata/test_tool_index.json diff --git a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml index 9a413a094..f2795524e 100644 --- a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml @@ -1,9 +1,8 @@ --- name: github.com/xrash/smetrics -version: v0.0.0-20201216005158-039620a65673 +version: v0.0.0-20170218160415-a3153f7040e9 type: go -summary: Package smetrics provides a bunch of algorithms for calculating the distance - between strings. +summary: homepage: https://pkg.go.dev/github.com/xrash/smetrics license: mit licenses: diff --git a/go.mod b/go.mod index faedd7293..8b4d8794a 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.19 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 + github.com/arduino/go-paths-helper v1.8.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.0 github.com/getlantern/systray v1.1.0 @@ -20,7 +21,7 @@ require ( github.com/sirupsen/logrus v1.9.0 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.8.1 - github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 + github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 diff --git a/go.sum b/go.sum index 06889bb9e..c358b158a 100644 --- a/go.sum +++ b/go.sum @@ -14,8 +14,9 @@ github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026/go.mod h1:5dWr github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1:HK7SpkEax/3P+0w78iRQx1sz1vCDYYw9RXwHjQTB5i8= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.4.0 h1:ilnseAdxmN1bFnLxxXHRtcdmt9jBf3O4jtYfWfqule4= github.com/arduino/go-paths-helper v1.4.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.8.0 h1:BfA1bq1XktnlqwfUDCoKbUqB3YFPe6X7szPSZj6Rdpk= +github.com/arduino/go-paths-helper v1.8.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b/go.mod h1:uwGy5PpN4lqW97FiLnbcx+xx8jly5YuPMJWfVwwjJiQ= github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b/go.mod h1:iIPnclBMYm1g32Q5kXoqng4jLhMStReIP7ZxaoUC2y8= @@ -316,8 +317,8 @@ github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= +github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea h1:CyhwejzVGvZ3Q2PSbQ4NRRYn+ZWv5eS1vlaEusT+bAI= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea/go.mod h1:eNr558nEUjP8acGw8FFjTeWvSgU1stO7FAO6eknhHe4= go.bug.st/cleanup v1.0.0/go.mod h1:EqVmTg2IBk4znLbPD28xne3abjsJftMdqqJEjhn70bk= diff --git a/tools/download.go b/tools/download.go index 6102ae241..78bc7d927 100644 --- a/tools/download.go +++ b/tools/download.go @@ -67,12 +67,19 @@ type index struct { var systems = map[string]string{ "linuxamd64": "x86_64-linux-gnu", "linux386": "i686-linux-gnu", - "darwinamd64": "apple-darwin", + "darwinamd64": "i686-apple-darwin", + "darwinarm64": "arm64-apple-darwin", "windows386": "i686-mingw32", "windowsamd64": "i686-mingw32", "linuxarm": "arm-linux-gnueabihf", } +// public vars to allow override in the tests +var ( + OS = runtime.GOOS + Arch = runtime.GOARCH +) + func mimeType(data []byte) (string, error) { return http.DetectContentType(data[0:512]), nil } @@ -321,7 +328,7 @@ func findTool(pack, name, version string, data index) (tool, system) { maxSimilarity := 0.7 for _, s := range correctTool.Systems { - similarity := smetrics.Jaro(s.Host, systems[runtime.GOOS+runtime.GOARCH]) + similarity := smetrics.Jaro(s.Host, systems[OS+Arch]) if similarity > maxSimilarity { correctSystem = s maxSimilarity = similarity @@ -587,7 +594,7 @@ func (t *Tools) installDrivers(location string) error { OkPressed := 6 extension := ".bat" preamble := "" - if runtime.GOOS != "windows" { + if OS != "windows" { extension = ".sh" // add ./ to force locality preamble = "./" @@ -599,7 +606,7 @@ func (t *Tools) installDrivers(location string) error { os.Chdir(location) t.Logger(preamble + "post_install" + extension) oscmd := exec.Command(preamble + "post_install" + extension) - if runtime.GOOS != "linux" { + if OS != "linux" { // spawning a shell could be the only way to let the user type his password TellCommandNotToSpawnShell(oscmd) } diff --git a/tools/download_test.go b/tools/download_test.go index 320590eae..af33df6c8 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -16,6 +16,7 @@ package tools import ( + "encoding/json" "fmt" "io/ioutil" "net/http" @@ -23,9 +24,47 @@ import ( "path" "testing" + "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) +func TestDownloadCorrectPlatform(t *testing.T) { + testCases := []struct { + hostOS string + hostArch string + correctOSArch string + }{ + {"linux", "amd64", "x86_64-linux-gnu"}, + {"linux", "386", "i686-linux-gnu"}, + {"darwin", "amd64", "x86_64-apple-darwin"}, + {"darwin", "arm64", "arm64-apple-darwin"}, + {"windows", "386", "i686-mingw32"}, + {"windows", "amd64", "i686-mingw32"}, + {"linux", "arm", "arm-linux-gnueabihf"}, + } + testIndex := paths.New("testdata", "test_tool_index.json") + buf, err := testIndex.ReadFile() + require.NoError(t, err) + + var data index + err = json.Unmarshal(buf, &data) + require.NoError(t, err) + for _, tc := range testCases { + t.Run(tc.hostOS+tc.hostArch, func(t *testing.T) { + OS = tc.hostOS // override `runtime.OS` for testing purposes + Arch = tc.hostArch // override `runtime.ARCH` for testing purposes + // Find the tool by name + correctTool, correctSystem := findTool("arduino-test", "arduino-fwuploader", "2.2.2", data) + require.NotNil(t, correctTool) + require.NotNil(t, correctSystem) + require.Equal(t, correctTool.Name, "arduino-fwuploader") + require.Equal(t, correctTool.Version, "2.2.2") + require.Equal(t, correctSystem.Host, tc.correctOSArch) + }) + } +} + func Test_findBaseDir(t *testing.T) { cases := []struct { dirList []string diff --git a/tools/testdata/test_tool_index.json b/tools/testdata/test_tool_index.json new file mode 100644 index 000000000..9b4e315fa --- /dev/null +++ b/tools/testdata/test_tool_index.json @@ -0,0 +1,117 @@ +{ + "packages": [ + { + "name": "arduino-test", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ + { + "name": "Arduino megaAVR Boards - Pre-release", + "architecture": "megaavr", + "version": "1.8.102", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/staging/core-megaavr-1.8.102.tar.bz2", + "archiveFileName": "core-megaavr-1.8.102.tar.bz2", + "checksum": "SHA-256:ad5e60b828678d9ccff957032524a4c4d68b218737e7df24b905769a04dc2a6a", + "size": "858620", + "help": { + "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" + }, + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "7.0-arduino.3" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + } + ], + "tools": [ + { + "name": "arduino-fwuploader", + "version": "2.2.2", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", + "checksum": "SHA-256:503b9f8b24c6e396d09eb64f0e1f625c6f9aa5a90b01a50d7dec6477f4a866f0", + "size": "7262873" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", + "checksum": "SHA-256:8d77d0b33c8b0787fe3b80191709b69d638ef2a447d9853536cda35bfafd274b", + "size": "7306763" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_32bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.2_Windows_32bit.zip", + "checksum": "SHA-256:74ad9a5d369204b51be288c98d74f949ceb7a0c227ee64eb65ae179ec884c84c", + "size": "7450717" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_64bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.2_Windows_64bit.zip", + "checksum": "SHA-256:b25ac549cb0645166613c96cf899aebc541e482fe196aada6408bd7cff2c7d02", + "size": "7390999" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", + "checksum": "SHA-256:2cd6168ff470457b5124ba0faf118f315be2d1b9fb4fef43eb74370cd83620a2", + "size": "7306576" + }, + { + "host": "arm64-apple-darwin", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", + "checksum": "SHA-256:10ae5614af4d82096b6ba0e1e07aab667fa140d2bf1d5e3407dd8ad4c6748195", + "size": "6878214" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", + "checksum": "SHA-256:5aadf6e50ffe620635faf941fdf82c0765c8cba4830951bb53267ad125fc5af8", + "size": "6940393" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", + "checksum": "SHA-256:6d11a4f4aa5a81de865f3d18ca395a2780fdbb1e1597a2b11b2b5329e09f30fd", + "size": "6829396" + } + ] + } + ] + } + ] +} \ No newline at end of file From db73ee70045b79604043274cbe271b71576e7fd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 17:05:29 +0100 Subject: [PATCH 075/233] Bump golang.org/x/crypto from 0.4.0 to 0.5.0 (#754) * Bump golang.org/x/crypto from 0.4.0 to 0.5.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.4.0 to 0.5.0. - [Release notes](https://github.com/golang/crypto/releases) - [Commits](https://github.com/golang/crypto/compare/v0.4.0...v0.5.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licenses Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: umbynos --- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/internal/alias.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/armor.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/elgamal.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/errors.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/packet.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/net/bpf.dep.yml | 6 +++--- .../go/golang.org/x/net/http2.dep.yml | 6 +++--- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/socket.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv4.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv6.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/language.dep.yml | 6 +++--- .../x/text/internal/language/compact.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +++--- .../go/golang.org/x/text/language.dep.yml | 6 +++--- go.mod | 6 +++--- go.sum | 14 +++++++------- 27 files changed, 85 insertions(+), 85 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index e1eab608f..e437620c6 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.4.0 +version: v0.5.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index a9f14f795..a91dbbff2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.4.0 +version: v0.5.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index b9e3dc3bb..88a228273 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.4.0 +version: v0.5.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml index fa658b0d4..38956d74d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/internal/alias -version: v0.4.0 +version: v0.5.0 type: go summary: Package alias implements memory aliasing tests. homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 1e6e4bc02..67d47e2b5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.4.0 +version: v0.5.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index e2487e295..e23dd6fff 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.4.0 +version: v0.5.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index cadfadcf6..a9914bf6c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.4.0 +version: v0.5.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index 2f88afc30..df6c9aac0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.4.0 +version: v0.5.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index 1f0597fe7..16b7f46d5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.4.0 +version: v0.5.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index 9043907ef..59f41c93b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.4.0 +version: v0.5.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 9bb048622..45fe96614 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.4.0 +version: v0.5.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 6a42d77d4..05c283be8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.4.0 +version: v0.5.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index 11b9493d3..fd92acd75 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.4.0 +version: v0.5.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 58e72efcc..8466272bb 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.4.0 +version: v0.5.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.4.0/LICENSE +- sources: crypto@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.4.0/PATENTS +- sources: crypto@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index b688998c9..f4e0e9d24 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.3.0 +version: v0.5.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index f0d200682..bafd659d1 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.3.0 +version: v0.5.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 0e3819c51..be8410d64 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.3.0 +version: v0.5.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 37e6dc093..d3d8c3ed5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.3.0 +version: v0.5.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index de472f535..10a6eabf4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.3.0 +version: v0.5.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index ca11811ad..55705df21 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.3.0 +version: v0.5.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index e45123352..6f24a2bb0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.3.0 +version: v0.5.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.3.0/LICENSE +- sources: net@v0.5.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.3.0/PATENTS +- sources: net@v0.5.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index b120aa082..b54a01dbe 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.5.0 +version: v0.6.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.5.0/LICENSE +- sources: text@v0.6.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.5.0/PATENTS +- sources: text@v0.6.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index a37e1f20f..f18063f40 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.5.0 +version: v0.6.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.5.0/LICENSE +- sources: text@v0.6.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.5.0/PATENTS +- sources: text@v0.6.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index 4323a6875..b26a50506 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.5.0 +version: v0.6.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.5.0/LICENSE +- sources: text@v0.6.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.5.0/PATENTS +- sources: text@v0.6.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index 438381bbd..4467b22f4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.5.0 +version: v0.6.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.5.0/LICENSE +- sources: text@v0.6.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.5.0/PATENTS +- sources: text@v0.6.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 8b4d8794a..8f84b2819 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.4.0 + golang.org/x/crypto v0.5.0 golang.org/x/sys v0.4.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -71,8 +71,8 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect - golang.org/x/net v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + golang.org/x/net v0.5.0 // indirect + golang.org/x/text v0.6.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index c358b158a..084a6bcd9 100644 --- a/go.sum +++ b/go.sum @@ -345,8 +345,8 @@ golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= -golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= +golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -367,8 +367,8 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.3.0 h1:VWL6FNY2bEEmsGVKabSlHu5Irp34xmMRoqb/9lF9lxk= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -399,13 +399,13 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= +golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From c72447402d0643b186d2a01794b3ae81b2d84aa2 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Thu, 9 Feb 2023 16:58:57 +0100 Subject: [PATCH 076/233] Rework `config.ini` path handling (#761) * remove `embedded_autoextract`, it has never been used * rework `config.ini` searching By default the config.ini should be searched in the same directory of the binary. If it's not found maybe could be in the parent of the binary, inside `Resources/` (we are on macos). Added also some logging. Use `go-paths-helper` to ease things. * fine-tune a config searching and parsing * enable `ARDUINO_CREATE_AGENT_CONFIG` env var to specify the config.ini * crashreports are now created in `.arduino-create/logs` to preserve macos bundle integrity * embed config file and change a bit the logic of searching * remove `config.ini` from the CI, now it's generated by the executable * Use more appropriate directory folders for config.ini * Moved config stuff in config.go --------- Co-authored-by: Umberto Baldi Co-authored-by: umbynos --- .github/workflows/publish-go-tester-task.yml | 2 - .github/workflows/release.yml | 6 - .../arduino/go-paths-helper.dep.yml | 350 ++++++++++++++++++ config.go | 72 ++++ main.go | 123 +++--- systray/systray_real.go | 35 +- 6 files changed, 512 insertions(+), 76 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml create mode 100644 config.go diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 8732887e4..69efdba05 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -138,12 +138,10 @@ jobs: run: task go:build if: runner.os == 'macOS' - # config.ini is required by the executable when it's run - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }} path: | arduino-create-agent* - config.ini if-no-files-found: error diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 59d086a03..9e6837e56 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -131,14 +131,12 @@ jobs: aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.OLD_TARGET }} if: steps.prerelease.outputs.IS_PRE != 'true' - # config.ini is required by the executable when it's run - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}${{ matrix.arch }} path: | ${{ env.PROJECT_NAME }}* - config.ini if-no-files-found: error create-macos-bundle: @@ -164,10 +162,6 @@ jobs: - name: Remove placeholder file run: rm -rf ${{ env.EXE_PATH }}.empty - - name: Move config.ini to the Resources dir - working-directory: ${{ env.EXE_PATH }} - run: mv config.ini ../Resources/ - # zip artifacts do not mantain executable permission - name: Make executable run: chmod -v +x ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml new file mode 100644 index 000000000..a7dd692a0 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -0,0 +1,350 @@ +--- +name: github.com/arduino/go-paths-helper +version: v1.8.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper +license: gpl-2.0-or-later +licenses: +- sources: LICENSE + text: |2 + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software--to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Lesser General Public License instead.) You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The "Program", below, + refers to any such program or work, and a "work based on the Program" + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term "modification".) Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, the commands you use may + be called something other than `show w' and `show c'; they could even be + mouse-clicks or menu items--whatever suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. +notices: [] diff --git a/config.go b/config.go new file mode 100644 index 000000000..e3225681d --- /dev/null +++ b/config.go @@ -0,0 +1,72 @@ +// Copyright 2023 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package main + +import ( + _ "embed" + "fmt" + "os" + + "github.com/arduino/go-paths-helper" + log "github.com/sirupsen/logrus" +) + +// getDefaultArduinoCreateConfigDir returns the full path to the default arduino create agent data directory +func getDefaultArduinoCreateConfigDir() (*paths.Path, error) { + // UserConfigDir returns the default root directory to use + // for user-specific configuration data. Users should create + // their own application-specific subdirectory within this + // one and use that. + // + // On Unix systems, it returns $XDG_CONFIG_HOME as specified by + // https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html + // if non-empty, else $HOME/.config. + // + // On Darwin, it returns $HOME/Library/Application Support. + // On Windows, it returns %AppData%. + // On Plan 9, it returns $home/lib. + // + // If the location cannot be determined (for example, $HOME + // is not defined), then it will return an error. + configDir, err := os.UserConfigDir() + if err != nil { + return nil, err + } + + agentConfigDir := paths.New(configDir, "ArduinoCreateAgent") + if err := agentConfigDir.MkdirAll(); err != nil { + return nil, fmt.Errorf("cannot create config dir: %s", err) + } + return agentConfigDir, nil +} + +//go:embed config.ini +var configContent []byte + +// generateConfig function will take a directory path as an input +// and will write the default config,ini file to that directory, +// it will panic if something goes wrong +func generateConfig(destDir *paths.Path) *paths.Path { + configPath := destDir.Join("config.ini") + + // generate the config.ini file directly in destDir + if err := configPath.WriteFile(configContent); err != nil { + // if we do not have a config there's nothing else we can do + panic("cannot generate config: " + err.Error()) + } + log.Infof("generated config in %s", configPath) + return configPath +} diff --git a/main.go b/main.go index df33dc7c1..5cdd00ed7 100755 --- a/main.go +++ b/main.go @@ -23,8 +23,6 @@ import ( "flag" "io/ioutil" "os" - "os/user" - "path/filepath" "runtime" "runtime/debug" "strconv" @@ -36,8 +34,8 @@ import ( "github.com/arduino/arduino-create-agent/systray" "github.com/arduino/arduino-create-agent/tools" "github.com/arduino/arduino-create-agent/updater" - "github.com/arduino/arduino-create-agent/utilities" v2 "github.com/arduino/arduino-create-agent/v2" + paths "github.com/arduino/go-paths-helper" "github.com/gin-gonic/gin" "github.com/go-ini/ini" log "github.com/sirupsen/logrus" @@ -47,7 +45,6 @@ import ( var ( version = "x.x.x-dev" //don't modify it, Jenkins will take care commit = "xxxxxxxx" //don't modify it, Jenkins will take care - embeddedAutoextract = false port string portSSL string requiredToolsAPILevel = "v1" @@ -182,44 +179,19 @@ func loop() { if *hibernate { return } - // autoextract self - src, _ := os.Executable() - dest := filepath.Dir(src) - - if embeddedAutoextract { - // save the config.ini (if it exists) - if _, err := os.Stat(filepath.Join(dest, "config.ini")); os.IsNotExist(err) { - log.Println("First run, unzipping self") - err := utilities.Unzip(src, dest) - log.Println("Self extraction, err:", err) - } - } - // Parse ini config - args, err := parseIni(filepath.Join(dest, "config.ini")) - if err != nil { - panic(err) - } - err = iniConf.Parse(args) - if err != nil { - panic(err) - } + log.SetLevel(log.InfoLevel) + log.SetOutput(os.Stdout) - // Parse additional ini config - args, err = parseIni(filepath.Join(dest, *additionalConfig)) - if err != nil { - panic(err) - } - err = iniConf.Parse(args) - if err != nil { - panic(err) - } + // the important folders of the agent + src, _ := os.Executable() + srcPath := paths.New(src) // The path of the agent's binary + srcDir := srcPath.Parent() // The directory of the agent's binary + agentDir, err := getDefaultArduinoCreateConfigDir() // Instantiate Tools - usr, _ := user.Current() - directory := filepath.Join(usr.HomeDir, ".arduino-create") Tools = tools.Tools{ - Directory: directory, + Directory: agentDir.String(), IndexURL: *indexURL, Logger: func(msg string) { mapD := map[string]string{"DownloadStatus": "Pending", "Msg": msg} @@ -229,9 +201,64 @@ func loop() { } Tools.Init(requiredToolsAPILevel) - log.SetLevel(log.InfoLevel) + // Let's handle the config + var configPath *paths.Path - log.SetOutput(os.Stdout) + // see if the env var is defined, if it is take the config from there, this will override the default path + if envConfig := os.Getenv("ARDUINO_CREATE_AGENT_CONFIG"); envConfig != "" { + configPath = paths.New(envConfig) + if configPath.NotExist() { + log.Panicf("config from env var %s does not exists", envConfig) + } + log.Infof("using config from env variable: %s", configPath) + } else if defaultConfigPath := agentDir.Join("config.ini"); defaultConfigPath.Exist() { + // by default take the config from the ~/.arduino-create/config.ini file + configPath = defaultConfigPath + log.Infof("using config from default: %s", configPath) + } else { + // take the config from the old folder where the agent's binary sits + oldConfigPath := srcDir.Join("config.ini") + if oldConfigPath.Exist() { + err := oldConfigPath.CopyTo(defaultConfigPath) + if err != nil { + log.Errorf("cannot copy old %s, to %s, generating new config", oldConfigPath, configPath) + } else { + configPath = defaultConfigPath + log.Infof("copied old %s, to %s", oldConfigPath, configPath) + } + } + } + if configPath == nil { + configPath = generateConfig(agentDir) + } + + // Parse the config.ini + args, err := parseIni(configPath.String()) + if err != nil { + log.Panicf("config.ini cannot be parsed: %s", err) + } + err = iniConf.Parse(args) + if err != nil { + log.Panicf("cannot parse arguments: %s", err) + } + + // Parse additional ini config if defined + if len(*additionalConfig) > 0 { + additionalConfigPath := paths.New(*additionalConfig) + if additionalConfigPath.NotExist() { + log.Infof("additional config file not found in %s", additionalConfigPath.String()) + } else { + args, err = parseIni(additionalConfigPath.String()) + if err != nil { + log.Panicf("additional config cannot be parsed: %s", err) + } + err = iniConf.Parse(args) + if err != nil { + log.Panicf("cannot parse arguments: %s", err) + } + log.Infof("using additional config from %s", additionalConfigPath.String()) + } + } // see if we are supposed to wait 5 seconds if *isLaunchSelf { @@ -309,16 +336,12 @@ func loop() { // save crashreport to file if *crashreport { logFilename := "crashreport_" + time.Now().Format("20060102150405") + ".log" - currDir, err := os.Getwd() - if err != nil { - panic(err) - } // handle logs directory creation - logsDir := filepath.Join(currDir, "logs") - if _, err := os.Stat(logsDir); os.IsNotExist(err) { - os.Mkdir(logsDir, 0700) + logsDir := agentDir.Join("logs") + if logsDir.NotExist() { + logsDir.Mkdir() } - logFile, err := os.OpenFile(filepath.Join(logsDir, logFilename), os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND, 0644) + logFile, err := os.OpenFile(logsDir.Join(logFilename).String(), os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND, 0644) if err != nil { log.Print("Cannot create file used for crash-report") } else { @@ -377,12 +400,12 @@ func loop() { r.POST("/update", updateHandler) // Mount goa handlers - goa := v2.Server(directory) + goa := v2.Server(agentDir.String()) r.Any("/v2/*path", gin.WrapH(goa)) go func() { // check if certificates exist; if not, use plain http - if _, err := os.Stat(filepath.Join(dest, "cert.pem")); os.IsNotExist(err) { + if srcDir.Join("cert.pem").NotExist() { log.Error("Could not find HTTPS certificate. Using plain HTTP only.") return } @@ -393,7 +416,7 @@ func loop() { for i < end { i = i + 1 portSSL = ":" + strconv.Itoa(i) - if err := r.RunTLS(*address+portSSL, filepath.Join(dest, "cert.pem"), filepath.Join(dest, "key.pem")); err != nil { + if err := r.RunTLS(*address+portSSL, srcDir.Join("cert.pem").String(), srcDir.Join("key.pem").String()); err != nil { log.Printf("Error trying to bind to port: %v, so exiting...", err) continue } else { diff --git a/systray/systray_real.go b/systray/systray_real.go index f06502fc6..47494aa28 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -22,11 +22,13 @@ package systray import ( "fmt" "os" + "os/user" "path/filepath" log "github.com/sirupsen/logrus" "github.com/arduino/arduino-create-agent/icon" + "github.com/arduino/go-paths-helper" "github.com/getlantern/systray" "github.com/go-ini/ini" "github.com/skratchdot/open-golang/open" @@ -101,32 +103,29 @@ func (s *Systray) updateMenuItem(item *systray.MenuItem, disable bool) { // CrashesIsEmpty checks if the folder containing crash-reports is empty func (s *Systray) CrashesIsEmpty() bool { - currDir, err := os.Getwd() - if err != nil { - log.Error("Cannot determine executable path: ", err) - } - logsDir := filepath.Join(currDir, "logs") - if _, err := os.Stat(string(logsDir)); os.IsNotExist(err) { - return true - } - return false + logsDir := getLogsDir() + return logsDir.NotExist() // if the logs directory is empty we assume there are no crashreports } // RemoveCrashes removes the crash-reports from `logs` folder func (s *Systray) RemoveCrashes() { - currDir, err := os.Getwd() - if err != nil { - log.Error("Cannot determine executable path: ", err) - } - logsDir := filepath.Join(currDir, "logs") - pathErr := os.RemoveAll(logsDir) + logsDir := getLogsDir() + pathErr := logsDir.RemoveAll() if pathErr != nil { - log.Error("Cannot remove crashreports: ", pathErr) + log.Errorf("Cannot remove crashreports: %s", pathErr) } else { - log.Info("Removed crashreports inside: ", logsDir) + log.Infof("Removed crashreports inside: %s", logsDir) } } +// getLogsDir simply returns the folder containing the logs +func getLogsDir() *paths.Path { + usr, _ := user.Current() + usrDir := paths.New(usr.HomeDir) // The user folder, on linux/macos /home// + agentDir := usrDir.Join(".arduino-create") + return agentDir.Join("logs") +} + // starthibernate creates a systray icon with menu options to resume/quit the agent func (s *Systray) startHibernate() { systray.SetIcon(icon.GetIconHiber()) @@ -189,7 +188,7 @@ type configIni struct { // getconfigs parses all config files in the executable folder func getConfigs() []configIni { // config.ini must be there, so call it Default - src, _ := os.Executable() + src, _ := os.Executable() // TODO change path dest := filepath.Dir(src) var configs []configIni From bd3ba843ae1b2bb34713d8c07c19a7a569a83950 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Thu, 9 Feb 2023 18:35:32 +0100 Subject: [PATCH 077/233] Embed more files content using `embed` (#762) * use go:embed for the HTML home * use go:embed for the icons --------- Co-authored-by: umbynos Co-authored-by: Umberto Baldi --- home.html | 1 - icon/icondarwin.go | 314 +------- icon/iconlinux.go | 294 +------ icon/iconwin.go | 1634 +-------------------------------------- icon/make_icon.bat | 41 - icon/make_icon.sh | 41 - main.go | 246 +----- systray/systray_fake.go | 3 + 8 files changed, 64 insertions(+), 2510 deletions(-) delete mode 100644 icon/make_icon.bat delete mode 100755 icon/make_icon.sh diff --git a/home.html b/home.html index 7551a48dc..bad500a47 100644 --- a/home.html +++ b/home.html @@ -1,4 +1,3 @@ - diff --git a/icon/icondarwin.go b/icon/icondarwin.go index 2eb38dd59..a53dfcdf0 100644 --- a/icon/icondarwin.go +++ b/icon/icondarwin.go @@ -1,16 +1,15 @@ //go:build darwin -// File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) - package icon import ( + _ "embed" // import embed to embed the icon "os/exec" "strings" ) -// IsDarkMode will return if the system is in darkmode -func IsDarkMode() bool { +// isDarkMode will return if the system is in darkmode +func isDarkMode() bool { cmd := exec.Command("defaults", "read", "-g", "AppleInterfaceStyle") output, _ := cmd.Output() return strings.Contains(string(output), "Dark") @@ -18,293 +17,36 @@ func IsDarkMode() bool { // GetIcon will return the icon func GetIcon() []byte { - if IsDarkMode() { - return Data - } else { - return DataLight + if isDarkMode() { + return data } + return dataLight } // GetIconHiber will return the hibernated icon func GetIconHiber() []byte { - if IsDarkMode() { - return DataDarkHibernate - } else { - return DataLightHibernate + if isDarkMode() { + return dataDarkHibernate } + return dataLightHibernate } -// DataLight represents the icon -var DataLight []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x02, 0x16, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xcd, 0x57, 0x81, - 0x75, 0x82, 0x30, 0x10, 0xfd, 0x76, 0x81, 0xda, 0x0d, 0xe2, 0x06, 0x1d, - 0x21, 0x1b, 0xc8, 0x06, 0xd2, 0x09, 0x6a, 0x27, 0x90, 0x0d, 0x64, 0x03, - 0xdd, 0xa0, 0xed, 0x04, 0x74, 0x03, 0xdd, 0x00, 0x3a, 0x01, 0x6e, 0xd0, - 0xe6, 0x1e, 0xc4, 0x9e, 0x47, 0x12, 0x04, 0x41, 0xfa, 0xdf, 0xfb, 0xef, - 0x49, 0x2e, 0x77, 0xfe, 0xdc, 0x25, 0x17, 0x98, 0xe1, 0x76, 0x28, 0xc3, - 0x79, 0xfd, 0xfb, 0x64, 0x58, 0xe0, 0xce, 0xd0, 0x86, 0xa9, 0x61, 0x6e, - 0xf8, 0xe3, 0xe1, 0xc1, 0x70, 0x67, 0x18, 0x61, 0x24, 0x50, 0x06, 0x36, - 0x86, 0x65, 0x40, 0x84, 0x8f, 0x24, 0x7c, 0x85, 0x01, 0x11, 0xf5, 0x14, - 0x32, 0xb8, 0x30, 0xca, 0xca, 0x76, 0x00, 0x21, 0x92, 0x5b, 0xf4, 0x00, - 0x89, 0x39, 0x8c, 0x20, 0x86, 0xef, 0xb1, 0x39, 0x3a, 0x60, 0x4c, 0x31, - 0x96, 0x19, 0xae, 0xc4, 0x18, 0x65, 0xea, 0x5d, 0xbe, 0xf8, 0x8e, 0x62, - 0x2c, 0xbd, 0xad, 0x81, 0x6a, 0x9a, 0x4f, 0x20, 0x28, 0x87, 0x67, 0x3f, - 0xad, 0x27, 0x10, 0x63, 0x99, 0x58, 0x11, 0x33, 0x26, 0x88, 0x94, 0x2a, - 0x87, 0xd0, 0xc2, 0xf0, 0xd3, 0xf0, 0x68, 0xf8, 0x68, 0xb8, 0x30, 0x5c, - 0x7a, 0xe6, 0xba, 0xfc, 0xf2, 0xfa, 0x39, 0xe4, 0x47, 0x57, 0xce, 0x13, - 0x1f, 0x88, 0xe0, 0x4e, 0xa5, 0x86, 0x1f, 0x31, 0xdc, 0x25, 0xee, 0xeb, - 0x77, 0xe1, 0xb3, 0x77, 0x04, 0x55, 0xcc, 0x4e, 0x35, 0x7e, 0xae, 0x9d, - 0x78, 0xbd, 0x69, 0x0e, 0x6f, 0x11, 0xb2, 0xbf, 0x84, 0xfc, 0xa4, 0xa8, - 0x94, 0x0b, 0x92, 0x7d, 0x47, 0x31, 0xdb, 0x06, 0xcd, 0xab, 0x63, 0xcb, - 0xfe, 0xc0, 0x36, 0xd1, 0x5c, 0x8c, 0xb9, 0xfc, 0x36, 0x2c, 0xae, 0x16, - 0xb6, 0x03, 0x17, 0xc4, 0x0d, 0x3b, 0x36, 0x1e, 0xea, 0x49, 0x5c, 0x80, - 0xc2, 0xdf, 0x22, 0x5c, 0xab, 0xf7, 0xc5, 0xcf, 0x84, 0xed, 0x1c, 0x80, - 0x0f, 0x2e, 0x3d, 0x2b, 0x70, 0x31, 0x43, 0x13, 0xae, 0x6c, 0x27, 0x70, - 0xef, 0x97, 0x58, 0xce, 0x7d, 0x40, 0xb3, 0x07, 0x7c, 0x33, 0x41, 0x16, - 0xd4, 0x12, 0x5e, 0x18, 0x4f, 0x6c, 0xce, 0x9a, 0xcd, 0x7b, 0x45, 0xb5, - 0x67, 0x08, 0x47, 0x36, 0xf7, 0xc3, 0xf0, 0x8d, 0xcd, 0xb3, 0x73, 0xbe, - 0x20, 0xf0, 0x80, 0x26, 0x4e, 0xe8, 0x86, 0x92, 0xfd, 0xe6, 0x6d, 0x24, - 0x74, 0x79, 0xce, 0x43, 0x73, 0x14, 0xfa, 0x97, 0xec, 0xdd, 0x11, 0x4f, - 0xee, 0x0b, 0x8a, 0x9f, 0x88, 0x31, 0x9b, 0xa1, 0x08, 0x9e, 0xc3, 0xe4, - 0xdb, 0x17, 0xfb, 0x80, 0x18, 0x7e, 0xc4, 0x15, 0x0b, 0xd6, 0x76, 0x05, - 0xa5, 0x81, 0xf8, 0x67, 0xc8, 0x00, 0x9a, 0xd9, 0x12, 0x61, 0x2b, 0xeb, - 0xb1, 0xb9, 0x10, 0x20, 0x8f, 0x7d, 0xea, 0xf1, 0x03, 0x5b, 0x84, 0x5c, - 0xe0, 0x19, 0xd2, 0x39, 0x47, 0xb3, 0x31, 0x6a, 0x54, 0xa9, 0x6e, 0x6b, - 0x8c, 0xdc, 0x0f, 0x01, 0x3f, 0x99, 0x84, 0x9d, 0x74, 0x72, 0xf5, 0x99, - 0x15, 0xfc, 0x88, 0xe0, 0xbf, 0x3a, 0x42, 0x7e, 0x31, 0xdc, 0xef, 0xe8, - 0x9a, 0x8c, 0xfc, 0x54, 0x94, 0x70, 0xef, 0xfa, 0x02, 0xd5, 0xf1, 0x3c, - 0xd6, 0xcf, 0x8b, 0xfa, 0x0f, 0xdb, 0x5e, 0x41, 0xbb, 0xf8, 0x15, 0xb5, - 0xfd, 0x02, 0x09, 0xda, 0x4f, 0xd5, 0x58, 0x74, 0x66, 0x74, 0xca, 0x17, - 0x34, 0x2f, 0xa2, 0x09, 0x04, 0xad, 0xd0, 0x82, 0xf4, 0x8e, 0x62, 0x52, - 0x5c, 0x89, 0x7f, 0xf5, 0x19, 0x44, 0x18, 0xfb, 0x43, 0x31, 0x43, 0xc7, - 0x0f, 0x45, 0x8b, 0x31, 0xca, 0x77, 0x75, 0x99, 0x7c, 0x88, 0x31, 0xcc, - 0xe9, 0xa3, 0x18, 0x1a, 0x03, 0x22, 0x46, 0x3f, 0x61, 0xf2, 0xee, 0x1b, - 0x1c, 0x1a, 0xd5, 0x2d, 0x1d, 0xda, 0x63, 0x64, 0x4b, 0xd1, 0x23, 0x23, - 0x33, 0xdc, 0x0e, 0x25, 0x9e, 0x0b, 0xdc, 0x80, 0x5f, 0x8e, 0x2c, 0xaa, - 0x54, 0xb0, 0x94, 0xe9, 0x09, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82, -} - -// DataLightHibernate represents the light icon hibernated -var DataLightHibernate []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x03, 0x1e, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xc5, 0x58, 0x2d, - 0x9b, 0xda, 0x40, 0x10, 0x7e, 0x8f, 0x9e, 0x40, 0x20, 0x10, 0x15, 0x08, - 0x44, 0x44, 0x05, 0xa2, 0x02, 0x89, 0xa8, 0x40, 0x54, 0x20, 0x2a, 0x10, - 0x15, 0x48, 0xc4, 0xfd, 0x80, 0xca, 0xfe, 0x8c, 0xfe, 0x80, 0x0a, 0x64, - 0x45, 0x05, 0xa2, 0xe2, 0x44, 0x05, 0xe2, 0x04, 0x02, 0x71, 0xa2, 0x02, - 0x81, 0x88, 0x44, 0x54, 0x44, 0x9c, 0x40, 0x20, 0x9a, 0xf7, 0x32, 0xf3, - 0x64, 0xb2, 0xec, 0x06, 0xc2, 0x47, 0xfa, 0x3e, 0xcf, 0x1c, 0xc9, 0xee, - 0xce, 0xec, 0xec, 0x7c, 0xed, 0xe4, 0xee, 0x70, 0x39, 0xda, 0x29, 0x35, - 0xe5, 0x79, 0x97, 0x52, 0x82, 0x0b, 0x70, 0x87, 0xea, 0x88, 0x52, 0xea, - 0x09, 0xb5, 0x03, 0x6b, 0xb6, 0x42, 0x6b, 0xa1, 0xab, 0x2b, 0x44, 0x0b, - 0x0c, 0x84, 0x9a, 0xa8, 0x06, 0x5a, 0x6c, 0x91, 0xd2, 0xf3, 0x29, 0x8b, - 0x4f, 0x51, 0x88, 0x96, 0x18, 0x9f, 0xa1, 0x88, 0x8b, 0x93, 0x14, 0x7b, - 0x53, 0x32, 0x47, 0x05, 0x3e, 0xa6, 0x34, 0x4a, 0xe9, 0x1e, 0x97, 0x83, - 0xf2, 0x7a, 0xf2, 0xbb, 0x09, 0x2d, 0xba, 0x2b, 0x61, 0x9e, 0xa6, 0xd4, - 0xc1, 0x6d, 0xc0, 0xf8, 0x9a, 0x21, 0x4b, 0x82, 0x02, 0x42, 0x16, 0x7a, - 0xb8, 0xa1, 0x32, 0x44, 0x2b, 0xa5, 0x2e, 0x3c, 0xee, 0xf3, 0x29, 0x44, - 0x17, 0xf5, 0x70, 0x7b, 0x68, 0xb9, 0xd8, 0x94, 0x29, 0xd4, 0x47, 0x16, - 0x37, 0x75, 0x81, 0x56, 0xa2, 0xfb, 0xfe, 0xea, 0x40, 0xc3, 0x4c, 0x52, - 0xdb, 0x21, 0xea, 0xc7, 0x08, 0x26, 0x83, 0xad, 0x42, 0xb4, 0x4e, 0x1b, - 0xf5, 0x83, 0x7b, 0x0e, 0xf4, 0xc5, 0xa6, 0xf3, 0x20, 0xc0, 0xc0, 0xfa, - 0xc1, 0x6a, 0x4b, 0xd3, 0x36, 0x45, 0x40, 0x59, 0x95, 0x76, 0xf9, 0x12, - 0xb3, 0x71, 0x88, 0x8f, 0x7b, 0x2f, 0xf8, 0xa0, 0x69, 0xcf, 0x85, 0x13, - 0x8f, 0xc0, 0x79, 0x4a, 0x31, 0xfc, 0xa0, 0x45, 0x87, 0x9e, 0x0d, 0xce, - 0xe5, 0x9b, 0x91, 0x47, 0x83, 0xfa, 0x03, 0x8a, 0x69, 0x9e, 0xc8, 0x82, - 0xad, 0xbc, 0xd3, 0x32, 0x6f, 0x85, 0x58, 0x3b, 0xf6, 0xc8, 0xef, 0xaa, - 0x08, 0x59, 0x1a, 0x43, 0xc6, 0xbe, 0x23, 0x0f, 0xd2, 0x32, 0x3e, 0x2d, - 0x92, 0x0a, 0xce, 0x6f, 0xd4, 0x65, 0x1d, 0x8f, 0xb6, 0x6a, 0xea, 0x21, - 0x0e, 0xef, 0xb0, 0x25, 0x32, 0x13, 0xab, 0xe2, 0x53, 0x99, 0x9f, 0x89, - 0xe0, 0xd0, 0xdd, 0xb7, 0x30, 0x7c, 0x73, 0xe1, 0x53, 0x44, 0xfc, 0xa3, - 0x16, 0xfa, 0x64, 0x26, 0x9e, 0x91, 0x17, 0x2c, 0x66, 0x00, 0xad, 0xe7, - 0x5e, 0x1d, 0x4c, 0xd7, 0xf7, 0xb2, 0xee, 0xf5, 0x64, 0xf2, 0xfc, 0x82, - 0xcc, 0x15, 0x2c, 0xac, 0x3d, 0x0f, 0x5f, 0x24, 0xf3, 0x1a, 0x5b, 0xfa, - 0x4e, 0xd0, 0xca, 0x8b, 0x06, 0x0e, 0x7d, 0xb9, 0x36, 0xcc, 0xa1, 0x40, - 0x87, 0xf0, 0x69, 0xdc, 0x25, 0xc8, 0x2d, 0x3a, 0x71, 0x64, 0x7e, 0x83, - 0x04, 0xac, 0xa0, 0x2f, 0xb2, 0x81, 0xc3, 0x4a, 0xdd, 0xe6, 0x09, 0xdc, - 0x5b, 0x3c, 0x31, 0x0a, 0x29, 0x1e, 0x51, 0xbc, 0x77, 0xb4, 0x76, 0x44, - 0xa2, 0xf4, 0x52, 0xc6, 0xf9, 0xac, 0xee, 0xdf, 0xca, 0x38, 0xf9, 0xd6, - 0xf2, 0x3b, 0x92, 0x39, 0xae, 0x89, 0xe1, 0x09, 0xfc, 0x06, 0x0e, 0xb1, - 0x43, 0x35, 0x84, 0xd6, 0x97, 0xb5, 0x2b, 0xcd, 0xd0, 0x9a, 0x7b, 0x8f, - 0x40, 0x6a, 0x4f, 0x2b, 0xc5, 0x66, 0x6c, 0x04, 0x3f, 0x78, 0x72, 0x6b, - 0x76, 0x5a, 0x84, 0xb1, 0x13, 0x21, 0x73, 0xdb, 0x18, 0x99, 0xcb, 0x38, - 0x36, 0x74, 0xf8, 0x00, 0x4f, 0x4d, 0x6a, 0xe0, 0xb0, 0x07, 0xd6, 0xb8, - 0x89, 0x51, 0xde, 0x4c, 0xd1, 0x25, 0x73, 0x23, 0x58, 0x85, 0xff, 0x70, - 0x64, 0x7e, 0x71, 0x94, 0x59, 0x22, 0x2f, 0x27, 0xee, 0x25, 0x9e, 0x68, - 0x96, 0x31, 0xd0, 0x9a, 0x46, 0x78, 0x8c, 0xbc, 0xd2, 0x12, 0x91, 0x61, - 0xa2, 0x45, 0x9f, 0x52, 0xfa, 0x85, 0x3c, 0xc5, 0x1f, 0x44, 0x86, 0x66, - 0x1d, 0x7f, 0x69, 0xfd, 0xae, 0x87, 0xef, 0xb7, 0xd9, 0x67, 0x8c, 0xe2, - 0x01, 0x57, 0x5a, 0xa9, 0xe9, 0x12, 0x9b, 0x51, 0x5a, 0x5f, 0xf4, 0xa4, - 0xdc, 0xb4, 0x83, 0xfc, 0xab, 0x62, 0x67, 0x84, 0x4e, 0x50, 0x0c, 0x64, - 0xd7, 0x42, 0x51, 0x80, 0x6f, 0x8a, 0xa2, 0xcb, 0x78, 0x88, 0xb9, 0x5a, - 0x68, 0x2f, 0x27, 0x84, 0x51, 0xa0, 0x27, 0x02, 0xb6, 0x32, 0x4f, 0x81, - 0x2f, 0xf2, 0x0c, 0x99, 0xff, 0x8c, 0xac, 0x0a, 0x2b, 0x5a, 0x0e, 0x1f, - 0x3c, 0x7c, 0x7d, 0x39, 0x44, 0x0b, 0x45, 0x30, 0x93, 0x13, 0xdb, 0xc2, - 0x7e, 0x85, 0x3f, 0x33, 0x34, 0xc0, 0xb7, 0xe6, 0x74, 0x7d, 0x1c, 0x6f, - 0xfa, 0xab, 0xf0, 0x71, 0x2d, 0x83, 0xbf, 0xd0, 0x53, 0x0f, 0xf1, 0x7f, - 0xfa, 0x21, 0x82, 0xc9, 0xf1, 0x9a, 0x40, 0xb6, 0x0e, 0x31, 0xfa, 0x13, - 0xd4, 0x8f, 0x04, 0x26, 0x9b, 0xad, 0x42, 0xf4, 0xfb, 0x23, 0xea, 0xc7, - 0xc2, 0xbe, 0xb8, 0x3d, 0x35, 0xdb, 0x06, 0xfa, 0xb8, 0x8b, 0x7a, 0x40, - 0xaf, 0x3c, 0xd9, 0x01, 0xdf, 0xd5, 0x41, 0x2b, 0x6d, 0x71, 0x7b, 0xc4, - 0xf0, 0x78, 0x24, 0xf4, 0x5d, 0xf6, 0x27, 0xa5, 0x77, 0x38, 0x4c, 0xcd, - 0x6b, 0x2a, 0xc3, 0x7a, 0xb5, 0xc7, 0x89, 0x0a, 0x71, 0xe1, 0x0a, 0xb7, - 0x71, 0x1f, 0xdd, 0xf4, 0x13, 0x1e, 0x65, 0xca, 0x14, 0x52, 0xb0, 0xf1, - 0x62, 0x16, 0xb0, 0x12, 0x1f, 0xab, 0x3b, 0xc7, 0x40, 0x39, 0xb4, 0xca, - 0xaa, 0x6c, 0x51, 0x95, 0xff, 0x0f, 0x85, 0x9a, 0xf3, 0x63, 0x60, 0xf6, - 0x2e, 0x91, 0xf7, 0x46, 0xb8, 0x96, 0x42, 0x8a, 0x08, 0x99, 0x72, 0x1d, - 0x84, 0xbf, 0xff, 0x99, 0x14, 0x31, 0xb2, 0xcb, 0x39, 0x46, 0x05, 0x9c, - 0xa3, 0x90, 0x0b, 0xdf, 0x67, 0xd0, 0xd9, 0xf8, 0x07, 0x55, 0x8b, 0xc7, - 0x4d, 0x28, 0x32, 0x9b, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82, -} - -// Data represents the icon -var Data []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x02, 0x40, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xcd, 0x58, 0x8b, - 0x71, 0xc2, 0x30, 0x0c, 0x55, 0x58, 0xa0, 0xe9, 0x06, 0x61, 0x03, 0xba, - 0x41, 0x36, 0x80, 0x0d, 0xa0, 0x13, 0x14, 0x26, 0x80, 0x0d, 0xc8, 0x06, - 0xb0, 0x41, 0xdb, 0x09, 0xd2, 0x0d, 0xc2, 0x06, 0x4e, 0x27, 0x80, 0x0d, - 0x54, 0xf9, 0xe2, 0x50, 0x45, 0xb1, 0x4d, 0x42, 0x3e, 0xf0, 0xee, 0x74, - 0xc1, 0x1f, 0x29, 0xcf, 0x96, 0x25, 0x39, 0x04, 0xd0, 0x11, 0x88, 0x18, - 0xd1, 0x23, 0x34, 0xcd, 0x4b, 0x10, 0x04, 0x39, 0x8c, 0x09, 0x22, 0x10, - 0x93, 0x24, 0x24, 0x0a, 0xdd, 0xc8, 0x48, 0x0e, 0x24, 0x0b, 0x18, 0x02, - 0x64, 0x38, 0x24, 0xd9, 0x92, 0x9c, 0xb1, 0x3d, 0x14, 0xc9, 0x12, 0xfa, - 0x82, 0x5e, 0xe5, 0x9d, 0x44, 0xfa, 0x25, 0x66, 0x76, 0x65, 0x8f, 0xfd, - 0x63, 0x0f, 0x6d, 0x61, 0xc8, 0x64, 0x38, 0x1c, 0xb4, 0xed, 0xb0, 0x0d, - 0xa1, 0x21, 0xc9, 0x94, 0x48, 0x9b, 0x92, 0x19, 0xc2, 0x4d, 0x2e, 0xec, - 0x6f, 0x91, 0x59, 0xe1, 0xf8, 0xa8, 0xa4, 0x86, 0x80, 0x91, 0xd1, 0x3e, - 0xcd, 0x48, 0x22, 0x18, 0x17, 0x39, 0xc9, 0x1b, 0x25, 0xd4, 0x8b, 0x6e, - 0x4c, 0xd8, 0xc0, 0xea, 0x01, 0x64, 0xc0, 0xbc, 0x73, 0x5d, 0x36, 0xf8, - 0x0e, 0x29, 0xb0, 0x13, 0xca, 0x49, 0xbe, 0x49, 0x4e, 0x24, 0x2f, 0x24, - 0x53, 0x92, 0x39, 0xdc, 0x26, 0x5f, 0xea, 0x29, 0xd3, 0xf6, 0xe9, 0xe9, - 0x92, 0xf3, 0x0a, 0x8c, 0xcc, 0xc2, 0xe2, 0x5b, 0x45, 0x12, 0x83, 0x03, - 0x58, 0x9c, 0x37, 0xd5, 0xa3, 0x5e, 0xcc, 0x27, 0x1d, 0x2d, 0x46, 0x23, - 0x36, 0xae, 0xf3, 0xd2, 0x0c, 0x8b, 0x3a, 0x16, 0xb2, 0xfe, 0x08, 0xab, - 0x29, 0x22, 0x13, 0xe3, 0x3e, 0x3d, 0x25, 0xde, 0x99, 0x70, 0x42, 0x32, - 0xef, 0x70, 0x32, 0x5b, 0xac, 0x97, 0x8e, 0x7d, 0xf9, 0x02, 0xfc, 0x4f, - 0xa2, 0x4a, 0xf4, 0xd9, 0xf4, 0xb6, 0xcc, 0x6e, 0x2c, 0xc6, 0x32, 0x4e, - 0x88, 0xe3, 0xc0, 0xfa, 0x7d, 0x39, 0x49, 0x31, 0x02, 0x51, 0xb9, 0x08, - 0xb4, 0xaf, 0xde, 0x65, 0x3f, 0xe5, 0x03, 0x7c, 0xfb, 0x38, 0xe6, 0x8e, - 0x15, 0xd8, 0x50, 0xcb, 0xb6, 0x68, 0xd9, 0x6d, 0x92, 0x9d, 0xe8, 0x8b, - 0xd9, 0x79, 0xaa, 0xcc, 0xd5, 0x61, 0x2f, 0x6b, 0xca, 0xaf, 0x79, 0xc6, - 0xac, 0x4f, 0x87, 0xe5, 0x3b, 0x93, 0x4b, 0x39, 0x87, 0x8c, 0xac, 0x19, - 0x99, 0x0f, 0x7a, 0xcc, 0x4c, 0xf3, 0xc4, 0xe6, 0x7e, 0x91, 0x6c, 0x98, - 0xbd, 0x72, 0xce, 0x0f, 0x08, 0x4c, 0xa0, 0x8e, 0x0b, 0xb4, 0xc3, 0x99, - 0xfd, 0x0e, 0xd8, 0x6f, 0x5f, 0xf1, 0x0c, 0x9d, 0x73, 0xb0, 0x9b, 0xcb, - 0x3e, 0x2d, 0xf6, 0xd2, 0x06, 0x2e, 0x9b, 0x99, 0xb9, 0x32, 0xdd, 0x44, - 0xa5, 0x11, 0x8e, 0x94, 0x19, 0x3f, 0xa2, 0x1b, 0xd7, 0x10, 0xc7, 0xea, - 0xa1, 0xd6, 0x11, 0xa6, 0x3c, 0x7a, 0x89, 0xcb, 0x3e, 0x5f, 0x95, 0x34, - 0x10, 0xb3, 0x31, 0xb9, 0xba, 0xb3, 0xe9, 0x0b, 0x05, 0x01, 0x25, 0xfa, - 0x12, 0x9b, 0x9e, 0xc7, 0x33, 0x95, 0xb0, 0x97, 0xca, 0x0a, 0xeb, 0x89, - 0x51, 0xbb, 0x70, 0x86, 0xb7, 0x13, 0x63, 0x24, 0x5c, 0xe8, 0xd2, 0x53, - 0xe2, 0x9d, 0x07, 0xa9, 0x84, 0x16, 0x52, 0xce, 0x3b, 0x30, 0x16, 0xfe, - 0x57, 0x77, 0xe8, 0xad, 0xd0, 0x7e, 0x47, 0x8f, 0xf5, 0x38, 0x2f, 0xae, - 0x3a, 0x5a, 0x6c, 0x91, 0x91, 0x43, 0x11, 0x9e, 0x27, 0xd3, 0xd6, 0x45, - 0x72, 0x09, 0xfe, 0x28, 0x6a, 0xab, 0x97, 0x53, 0x71, 0x9d, 0x4a, 0xe6, - 0x3b, 0x7c, 0x1c, 0xae, 0x3b, 0xfa, 0x14, 0x17, 0x34, 0xbe, 0x3b, 0xd7, - 0xc4, 0x68, 0x6e, 0x6c, 0x1b, 0x18, 0x1f, 0x3b, 0xef, 0x28, 0xd6, 0x23, - 0x6e, 0x48, 0x24, 0xd0, 0x04, 0xf8, 0x4c, 0x9f, 0x41, 0x86, 0xd0, 0xd0, - 0x1f, 0x8a, 0x29, 0xb6, 0xf9, 0x50, 0x1c, 0xd8, 0x7d, 0xcd, 0xdc, 0xe4, - 0x21, 0xe5, 0xba, 0x03, 0xb7, 0x85, 0x42, 0xcf, 0x5d, 0x7b, 0x4c, 0x62, - 0x95, 0xda, 0xd7, 0x3b, 0xb0, 0x28, 0x33, 0xba, 0x4a, 0xfb, 0xce, 0x98, - 0x1e, 0x4b, 0xee, 0xd9, 0x91, 0x00, 0x3a, 0x02, 0x45, 0x31, 0xed, 0xfa, - 0x97, 0xde, 0x1f, 0xd5, 0x42, 0xb4, 0x70, 0xf7, 0x10, 0xdd, 0x39, 0x00, - 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -} - -// DataDarkHibernate represents the dark icon hibernated -var DataDarkHibernate []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x02, 0xf2, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xc5, 0x58, 0x2d, - 0xb7, 0xe2, 0x40, 0x0c, 0xbd, 0xe5, 0x3c, 0x81, 0x44, 0x22, 0x2b, 0x91, - 0x48, 0x64, 0x25, 0x72, 0x25, 0xb2, 0x3f, 0x61, 0xe5, 0xfe, 0x8c, 0x95, - 0x48, 0x24, 0x12, 0xf9, 0x24, 0xb2, 0x12, 0x89, 0xac, 0x7c, 0xb2, 0xb2, - 0x8e, 0x9d, 0xdb, 0x26, 0x6c, 0x3a, 0x9d, 0xce, 0xa3, 0x7c, 0xbd, 0x7b, - 0x4e, 0x4f, 0xcb, 0x74, 0x92, 0xb9, 0x4d, 0x32, 0x49, 0x86, 0x04, 0x0f, - 0xe2, 0x72, 0xb9, 0xcc, 0xdc, 0x6d, 0x2a, 0x3f, 0xeb, 0x24, 0x49, 0x2a, - 0x3c, 0x80, 0x04, 0x23, 0xe1, 0x08, 0xa4, 0xee, 0xb6, 0x90, 0x6b, 0x36, - 0x30, 0xed, 0x4b, 0xae, 0xb3, 0x23, 0x78, 0xc6, 0xb3, 0x09, 0x39, 0x12, - 0xb4, 0xc0, 0x4a, 0xae, 0x29, 0xc6, 0x81, 0x16, 0x3b, 0x3a, 0x62, 0xa7, - 0x5b, 0x26, 0x7f, 0x4b, 0xc8, 0x91, 0xa1, 0x25, 0x7e, 0xdd, 0x41, 0x04, - 0xf7, 0x10, 0x4b, 0x22, 0x44, 0x48, 0x20, 0x43, 0x6b, 0x95, 0x67, 0xa2, - 0x70, 0xa4, 0x3e, 0x31, 0x86, 0x90, 0x90, 0xc9, 0xdd, 0x35, 0xc7, 0x6b, - 0xc0, 0xf8, 0xda, 0x39, 0x62, 0xb5, 0xff, 0x62, 0x32, 0x20, 0x90, 0xbf, - 0x90, 0x0c, 0x44, 0xf7, 0x26, 0xf4, 0xa2, 0x47, 0xc8, 0x59, 0x67, 0x8d, - 0xd7, 0x92, 0x51, 0xa4, 0xb2, 0xd6, 0x30, 0x21, 0x37, 0x61, 0x89, 0xe7, - 0xc7, 0x4c, 0x0c, 0x2b, 0xd9, 0x34, 0x7d, 0x42, 0x26, 0x88, 0xdf, 0x8d, - 0xb5, 0xac, 0xdd, 0x25, 0xe4, 0x40, 0xeb, 0xcc, 0xf0, 0x7e, 0x70, 0xcd, - 0xab, 0x57, 0x3e, 0xcc, 0x8b, 0x21, 0x57, 0x31, 0x7f, 0x30, 0xdb, 0x72, - 0x67, 0x4c, 0x45, 0x41, 0x2c, 0x4b, 0xfb, 0x72, 0x95, 0x59, 0x78, 0x48, - 0x8e, 0x6b, 0x1f, 0xf9, 0xd0, 0x6c, 0x7b, 0xf1, 0xe3, 0x26, 0xa0, 0xf0, - 0xe0, 0xb6, 0x66, 0x19, 0x50, 0xa0, 0xf1, 0x96, 0x05, 0x16, 0xb8, 0x57, - 0x8e, 0x69, 0xa0, 0x54, 0x97, 0x2d, 0x02, 0x4a, 0x77, 0xaa, 0x94, 0x3e, - 0x76, 0xd7, 0x9c, 0x75, 0x4c, 0xfd, 0x2d, 0x19, 0x77, 0x87, 0xd6, 0x72, - 0x0a, 0x3e, 0x6f, 0x6f, 0x94, 0xf3, 0x8b, 0x70, 0xc3, 0x41, 0x5d, 0x36, - 0x0f, 0xb0, 0xad, 0x44, 0x69, 0x06, 0xaf, 0x86, 0xb9, 0xb1, 0x02, 0x6d, - 0x19, 0xa8, 0xdc, 0xf3, 0x0e, 0x6d, 0xde, 0x9a, 0x8a, 0x5c, 0x3d, 0x54, - 0xfb, 0xdc, 0x38, 0x65, 0x54, 0xee, 0x20, 0x72, 0x8a, 0x74, 0x88, 0xd0, - 0xc9, 0x90, 0x59, 0x23, 0x1c, 0x5b, 0x1c, 0x5b, 0xb8, 0xf7, 0x5b, 0x21, - 0xb0, 0x97, 0xaf, 0xaf, 0xa5, 0x1d, 0xc9, 0x11, 0x8e, 0x95, 0x8c, 0xef, - 0xdd, 0xbc, 0xc6, 0xa5, 0xee, 0xb9, 0x54, 0x22, 0xca, 0x61, 0x22, 0x0a, - 0x2c, 0xce, 0x42, 0x26, 0x45, 0x3c, 0x27, 0x51, 0x6e, 0x23, 0x44, 0x2a, - 0xd3, 0x07, 0x6d, 0xd0, 0x25, 0xf3, 0x17, 0x12, 0xb0, 0x82, 0xa5, 0xe8, - 0x26, 0x3a, 0x85, 0x96, 0x5c, 0x68, 0x21, 0xbf, 0x8a, 0xab, 0xe2, 0xd4, - 0x8c, 0xb1, 0x18, 0xda, 0xba, 0xb3, 0x16, 0x39, 0xc6, 0xc6, 0xca, 0x91, - 0x29, 0x44, 0x21, 0x3f, 0x40, 0xad, 0xcd, 0x78, 0x2a, 0x44, 0xee, 0x2c, - 0x77, 0xcd, 0xcc, 0x9c, 0x53, 0xca, 0xd5, 0x41, 0xa8, 0x96, 0xd5, 0x18, - 0x87, 0xa1, 0xf9, 0xb1, 0x76, 0x65, 0x3a, 0x34, 0xe7, 0x23, 0xa0, 0x90, - 0xec, 0x69, 0xa5, 0xd2, 0x8c, 0xf5, 0x6a, 0x8e, 0xe0, 0x6c, 0xfb, 0x1b, - 0x5a, 0x4a, 0x52, 0x48, 0x8a, 0xd6, 0x6d, 0xec, 0xa3, 0xe8, 0x32, 0x8e, - 0x65, 0x56, 0x4e, 0xee, 0xbd, 0x38, 0x9b, 0x04, 0x7a, 0xe0, 0x95, 0x28, - 0x2f, 0xe1, 0xf9, 0xd8, 0x03, 0x5d, 0xc2, 0x9d, 0xd2, 0xf8, 0xde, 0xc4, - 0xe2, 0x1e, 0xdd, 0x2d, 0xfd, 0xdb, 0x23, 0xc3, 0x7e, 0x48, 0x53, 0x45, - 0x27, 0xdd, 0x90, 0x8b, 0xba, 0xcc, 0x2a, 0x48, 0x35, 0xe8, 0xb8, 0x1b, - 0xd0, 0x0d, 0x48, 0xa2, 0x96, 0x31, 0xbb, 0xc5, 0x73, 0x5e, 0x7c, 0x96, - 0x1e, 0x67, 0x8b, 0x36, 0x7e, 0x7a, 0x72, 0xda, 0x9c, 0xc9, 0x07, 0x2c, - 0xbd, 0x0f, 0xbc, 0x66, 0x6a, 0x7f, 0x7b, 0x6b, 0x62, 0xd4, 0xed, 0xcf, - 0x45, 0xe7, 0xa2, 0xb4, 0xd2, 0xc6, 0x4a, 0x94, 0x6e, 0xd0, 0x0d, 0xe4, - 0xbd, 0xb5, 0xba, 0x7c, 0x5c, 0x48, 0x2e, 0x47, 0xd7, 0x65, 0xa7, 0x26, - 0x1d, 0x18, 0xa1, 0xdc, 0xfb, 0xa2, 0x68, 0x0f, 0x2c, 0xb1, 0xb2, 0x46, - 0xb8, 0x74, 0xc4, 0xe4, 0x96, 0xf8, 0xbf, 0x4b, 0x2d, 0x9a, 0xca, 0x90, - 0x98, 0x89, 0x7f, 0x10, 0xde, 0x19, 0x1a, 0xe0, 0xea, 0x77, 0x35, 0xf5, - 0x77, 0x4d, 0xff, 0x18, 0x39, 0x5a, 0x8f, 0xc1, 0x0f, 0x4b, 0x28, 0xc3, - 0xcf, 0xf4, 0x43, 0xc4, 0x41, 0x2d, 0x6a, 0xf3, 0x10, 0x83, 0xb0, 0xc2, - 0xfb, 0x51, 0x59, 0xf7, 0x5e, 0x09, 0x49, 0xc0, 0x7d, 0xe2, 0xfd, 0x38, - 0xda, 0x1f, 0x9d, 0x4c, 0x2d, 0xc7, 0xde, 0x02, 0xef, 0x43, 0xe1, 0x07, - 0x7f, 0xaf, 0x74, 0x48, 0x9e, 0xf8, 0xc2, 0xeb, 0x51, 0x86, 0x0e, 0x8c, - 0x43, 0xe7, 0xb2, 0x1d, 0x5e, 0x4b, 0xaa, 0x44, 0x9b, 0xd1, 0x7b, 0x88, - 0x9e, 0xed, 0x23, 0xfd, 0xd0, 0x23, 0x18, 0x7f, 0x94, 0xb6, 0x88, 0xf4, - 0xc0, 0x63, 0x11, 0xed, 0xb5, 0x6f, 0x26, 0xa4, 0x78, 0x80, 0x18, 0x77, - 0x2f, 0x37, 0x4a, 0x11, 0x3a, 0xcb, 0xdf, 0x4d, 0xc8, 0x10, 0x4b, 0xd1, - 0x66, 0xdc, 0x39, 0x86, 0x8f, 0xdc, 0x8c, 0xbf, 0x12, 0x6d, 0x7b, 0x52, - 0x62, 0x04, 0x46, 0x13, 0xf2, 0xe1, 0xb7, 0xc0, 0x8f, 0xfe, 0xa5, 0xf7, - 0x0f, 0x7b, 0x0e, 0x6f, 0xa0, 0x07, 0xba, 0x9c, 0x76, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -} +// dataLight represents the icon +// +//go:embed icon_mac_light.png +var dataLight []byte + +// dataLightHibernate represents the light icon hibernated +// +//go:embed icon_mac_light_hiber.png +var dataLightHibernate []byte + +// data represents the icon +// +//go:embed icon_mac.png +var data []byte + +// dataDarkHibernate represents the dark icon hibernated +// +//go:embed icon_mac_hiber.png +var dataDarkHibernate []byte diff --git a/icon/iconlinux.go b/icon/iconlinux.go index 27df134ce..0a09a3e9e 100644 --- a/icon/iconlinux.go +++ b/icon/iconlinux.go @@ -1,295 +1,25 @@ //go:build linux -// File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) - package icon +import _ "embed" // import embed to embed the icon + // GetIcon will return the icon func GetIcon() []byte { - return Data + return data } // GetIconHiber will return the hibernated icon func GetIconHiber() []byte { - return DataHibernate + return dataHibernate } -// Data represents the icon -var Data []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x55, 0xed, 0xb3, 0x47, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x05, 0xa5, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0x5c, 0xe1, - 0x75, 0xdb, 0x36, 0x10, 0x3e, 0xf5, 0xf9, 0x7f, 0xd5, 0x09, 0xca, 0x4e, - 0x10, 0x25, 0x0b, 0x98, 0xe9, 0x02, 0x51, 0xbb, 0x80, 0x9c, 0x09, 0xec, - 0x76, 0x01, 0x51, 0x13, 0x58, 0x59, 0xa0, 0xd2, 0x06, 0x6e, 0x17, 0x28, - 0x94, 0x09, 0xe4, 0x2c, 0x50, 0x72, 0x82, 0xca, 0x13, 0xf4, 0x8a, 0x0b, - 0xc0, 0x88, 0x91, 0x0e, 0x07, 0x80, 0xa4, 0x48, 0x51, 0xca, 0xf7, 0x1e, - 0x4c, 0x99, 0x3c, 0xe0, 0x80, 0x4f, 0x07, 0xe0, 0x70, 0x00, 0x05, 0xf0, - 0x0d, 0x22, 0x46, 0xd0, 0x23, 0x10, 0x31, 0xd1, 0x97, 0xb1, 0x4e, 0xe5, - 0xb5, 0x8a, 0xc2, 0x5e, 0x9f, 0x47, 0xa3, 0xd1, 0x0b, 0xf4, 0x84, 0xce, - 0x08, 0xd2, 0x64, 0x10, 0x01, 0x53, 0x9d, 0x26, 0x3a, 0xdd, 0x02, 0x4f, - 0x8a, 0x0b, 0x44, 0xd0, 0xb3, 0x4e, 0x9f, 0x74, 0xda, 0x50, 0xea, 0x93, - 0xb4, 0xd6, 0x40, 0xa4, 0xe8, 0x74, 0xaf, 0x93, 0xc2, 0xf6, 0xa1, 0x74, - 0x9a, 0x59, 0x2b, 0x1c, 0x16, 0x74, 0xa5, 0x53, 0x9d, 0x9e, 0x74, 0xda, - 0x61, 0x37, 0x58, 0x0d, 0x82, 0x28, 0x4b, 0x8c, 0xc2, 0xfe, 0xb0, 0xc2, - 0x73, 0x24, 0x0a, 0x4d, 0x57, 0x7a, 0xc4, 0xf3, 0xc1, 0x0a, 0xcf, 0x85, - 0x28, 0x5d, 0x91, 0x29, 0x76, 0xd7, 0x95, 0x62, 0x90, 0xeb, 0x34, 0x83, - 0xbe, 0x80, 0xe7, 0x67, 0x35, 0x2e, 0x3c, 0x42, 0x03, 0xd4, 0x9a, 0xe6, - 0xd1, 0x98, 0xef, 0x13, 0x98, 0x29, 0x7b, 0x08, 0x28, 0x74, 0x7a, 0xab, - 0x5d, 0x83, 0x02, 0x22, 0x11, 0x4d, 0x90, 0x25, 0x47, 0x81, 0xf1, 0x63, - 0x86, 0x84, 0x02, 0x6a, 0x90, 0x14, 0x45, 0x90, 0x26, 0x87, 0x2c, 0x86, - 0xc8, 0x09, 0x75, 0xf0, 0xce, 0x0d, 0x05, 0x44, 0x92, 0x14, 0x4c, 0x90, - 0xb5, 0x9c, 0x2d, 0x0c, 0x97, 0x9c, 0x12, 0x05, 0x44, 0x90, 0xf4, 0x5d, - 0x88, 0x50, 0xa5, 0x5b, 0x0d, 0x9d, 0x1c, 0x42, 0xa2, 0x93, 0xc2, 0x40, - 0x37, 0xc0, 0x6b, 0x41, 0x68, 0xd6, 0x50, 0x5b, 0x18, 0xde, 0x98, 0xe3, - 0x03, 0x2d, 0x82, 0x5f, 0xfb, 0x84, 0x42, 0x2c, 0x68, 0x0e, 0x97, 0x47, - 0x0e, 0x61, 0x12, 0xe2, 0x02, 0x88, 0x16, 0xa4, 0x0b, 0xb8, 0xd3, 0x97, - 0x15, 0x5c, 0x36, 0x68, 0x3c, 0xda, 0xb8, 0x1e, 0x3a, 0x09, 0x1a, 0xf0, - 0x74, 0x1e, 0x8b, 0x42, 0xa7, 0xd7, 0xae, 0xf0, 0x89, 0xd4, 0xc5, 0x32, - 0xb8, 0x7c, 0x72, 0x08, 0x09, 0x98, 0x61, 0x84, 0x05, 0x6b, 0x41, 0xd6, - 0x7a, 0x72, 0xb8, 0x2e, 0xfc, 0xc4, 0x4d, 0xfd, 0x2e, 0x0b, 0xca, 0xe0, - 0xfa, 0xc0, 0x8e, 0xb5, 0x47, 0x16, 0x74, 0xa5, 0xd6, 0x53, 0xe2, 0x68, - 0xc0, 0xbe, 0x61, 0x84, 0x32, 0x68, 0x86, 0xa2, 0xf2, 0x79, 0x0c, 0xa7, - 0x77, 0x2e, 0x8b, 0x83, 0xff, 0x13, 0xa8, 0x0f, 0x8a, 0x99, 0x6f, 0x9c, - 0x4f, 0xc9, 0x7a, 0x30, 0x1e, 0x14, 0x0b, 0xca, 0xd0, 0x44, 0x13, 0xc7, - 0x4c, 0x99, 0x63, 0xfb, 0x6c, 0x8d, 0x26, 0x46, 0xd3, 0x14, 0xa7, 0xd4, - 0xb7, 0xe3, 0xca, 0xac, 0x16, 0x7e, 0x17, 0x51, 0x58, 0x8e, 0x35, 0x02, - 0x52, 0x56, 0x47, 0x8e, 0xf1, 0xc8, 0x3b, 0xd2, 0xf7, 0x20, 0x15, 0xa6, - 0x02, 0x0b, 0x59, 0xa2, 0xc4, 0x74, 0x58, 0xc5, 0x33, 0x0c, 0x47, 0x23, - 0x7d, 0x68, 0x7a, 0xc6, 0x3a, 0x50, 0x97, 0x92, 0x0a, 0x09, 0x41, 0x06, - 0x2d, 0x01, 0xfd, 0xe1, 0x5a, 0x7a, 0x96, 0x42, 0x4b, 0xc0, 0xb0, 0x2f, - 0xe5, 0xab, 0x6e, 0x56, 0x1d, 0xa4, 0x43, 0xa2, 0x83, 0x0b, 0x3d, 0xca, - 0x67, 0x42, 0x05, 0x26, 0xb6, 0x9c, 0xc4, 0xde, 0xda, 0xe9, 0xf4, 0x51, - 0xe7, 0x79, 0xe6, 0xe4, 0xf5, 0xfd, 0x3f, 0x75, 0x9e, 0x02, 0xf8, 0x48, - 0x01, 0xdd, 0x17, 0xc3, 0x12, 0x35, 0xf4, 0x11, 0x41, 0xf4, 0xd1, 0xe9, - 0x18, 0xda, 0x7a, 0x50, 0x99, 0x9b, 0x43, 0x65, 0x4b, 0x0f, 0xb3, 0x4f, - 0xe0, 0xae, 0xe8, 0x3d, 0xca, 0x96, 0x90, 0xa3, 0x30, 0x7e, 0x50, 0x43, - 0x0f, 0xf2, 0xd3, 0xe7, 0x44, 0x90, 0x9f, 0x37, 0xd4, 0xa7, 0x50, 0xc6, - 0x32, 0x36, 0x13, 0x5b, 0x61, 0x34, 0xdd, 0x52, 0x61, 0x38, 0x72, 0x74, - 0x34, 0x1c, 0x4d, 0x77, 0x2b, 0x31, 0x05, 0x37, 0x91, 0x39, 0x86, 0x43, - 0x09, 0xf5, 0x96, 0x08, 0x56, 0x9c, 0x72, 0x29, 0xc3, 0xca, 0xa1, 0x24, - 0xc7, 0x78, 0x90, 0x1e, 0x17, 0x01, 0x64, 0xc5, 0x99, 0xe3, 0xd9, 0x0c, - 0xeb, 0x6d, 0x2f, 0xe5, 0xc8, 0xbb, 0x03, 0xd2, 0x78, 0xb4, 0x3b, 0x14, - 0x1e, 0x7b, 0x94, 0x24, 0x8c, 0x82, 0xd0, 0x59, 0xc1, 0x85, 0x14, 0x02, - 0x81, 0x86, 0x1c, 0x17, 0xf2, 0x4a, 0x72, 0xc1, 0xf5, 0x05, 0x4b, 0x18, - 0x57, 0x85, 0x53, 0x41, 0x50, 0x31, 0x85, 0xa7, 0xd8, 0x1c, 0xe2, 0x38, - 0x73, 0xd0, 0x10, 0xc9, 0x72, 0xd2, 0xc0, 0x06, 0xa7, 0x4c, 0xd9, 0x5b, - 0x41, 0x3e, 0x21, 0x99, 0x90, 0x88, 0xe2, 0x27, 0xe6, 0xde, 0x3d, 0x34, - 0x07, 0x7d, 0x43, 0x0a, 0x05, 0xff, 0xc6, 0x3e, 0x6b, 0x2b, 0x16, 0xce, - 0x75, 0xeb, 0x8f, 0x82, 0x7c, 0x42, 0x7f, 0x6e, 0xaa, 0xff, 0x38, 0xc0, - 0x4d, 0x99, 0xa9, 0x43, 0xee, 0xc5, 0xa3, 0x30, 0x61, 0xee, 0xd1, 0x94, - 0xfb, 0x9b, 0x23, 0x8f, 0x2b, 0xdc, 0x5b, 0xc0, 0x7e, 0x0d, 0x56, 0xd5, - 0xb9, 0xb1, 0xd7, 0x72, 0xaa, 0xae, 0xe2, 0x9d, 0x4e, 0x87, 0x5e, 0x32, - 0xeb, 0x0e, 0x54, 0xea, 0x66, 0x80, 0xf2, 0x12, 0x23, 0x3d, 0xcc, 0x29, - 0x99, 0xa4, 0x0b, 0x28, 0x8f, 0x59, 0x09, 0x23, 0x2f, 0x75, 0x99, 0xcc, - 0xa3, 0x8b, 0x1d, 0x02, 0x18, 0x39, 0xa9, 0xdd, 0x77, 0x24, 0x13, 0xd2, - 0xc5, 0xbe, 0x87, 0x7e, 0x70, 0x16, 0x5b, 0x4c, 0x37, 0x01, 0x32, 0x3f, - 0x30, 0xf7, 0xc8, 0xac, 0x0f, 0x1b, 0x40, 0x07, 0x19, 0xa4, 0x2e, 0x76, - 0xeb, 0xb8, 0xbf, 0xe0, 0xbc, 0x65, 0xf2, 0x86, 0x75, 0x79, 0x1f, 0x80, - 0x1f, 0xef, 0xde, 0xe9, 0x67, 0x3f, 0x56, 0xf3, 0xa3, 0x19, 0xaf, 0xca, - 0x5d, 0x0a, 0x8e, 0x5c, 0xae, 0x3b, 0x49, 0x5f, 0xc2, 0x7e, 0xaa, 0xc7, - 0xaf, 0x9d, 0xb4, 0x43, 0x1c, 0x79, 0x95, 0xd8, 0x7c, 0x8a, 0x2f, 0x21, - 0x06, 0xe6, 0xd0, 0xb8, 0x1f, 0xb9, 0xa7, 0x8c, 0xd4, 0xca, 0xfa, 0x66, - 0x31, 0x6e, 0xaa, 0x5f, 0xfa, 0xca, 0x2d, 0xbb, 0x58, 0x21, 0xd4, 0xf3, - 0x15, 0x73, 0x6f, 0x0d, 0xcd, 0x51, 0xe8, 0xf4, 0x56, 0x12, 0xb0, 0x3b, - 0x0d, 0x24, 0xd3, 0xc6, 0x81, 0xcd, 0x05, 0x73, 0xef, 0x56, 0x90, 0xdf, - 0xeb, 0xc4, 0x18, 0xa7, 0x69, 0x9f, 0xe7, 0x09, 0xeb, 0x83, 0xfc, 0x1a, - 0x76, 0x71, 0xec, 0xd0, 0x95, 0x7a, 0xca, 0xca, 0x51, 0xb6, 0x34, 0xae, - 0x17, 0xc4, 0xb5, 0x19, 0x65, 0x67, 0x2c, 0xe3, 0x1a, 0x82, 0xf5, 0x97, - 0x1a, 0x2e, 0x72, 0xe6, 0xe8, 0xd8, 0xed, 0xc4, 0xfa, 0x27, 0xd9, 0xc8, - 0x19, 0xe4, 0x48, 0x97, 0x86, 0x89, 0x1d, 0x57, 0x01, 0x25, 0x65, 0xc0, - 0x76, 0x16, 0xab, 0x0a, 0xdd, 0x8b, 0xd5, 0xfb, 0x8a, 0xdc, 0xcc, 0x21, - 0x13, 0xbb, 0xfe, 0x53, 0xc8, 0x93, 0xe3, 0xb3, 0x1e, 0x76, 0xb1, 0xba, - 0x8c, 0xce, 0xb4, 0xcf, 0x7b, 0xe7, 0xa9, 0xb8, 0xc2, 0xf8, 0x70, 0xc7, - 0xa4, 0xa1, 0xbe, 0xa9, 0x90, 0x7f, 0xeb, 0x69, 0xeb, 0x97, 0x2e, 0x39, - 0xaa, 0x64, 0xa2, 0x02, 0x9d, 0x31, 0x1f, 0x8b, 0x4c, 0x0f, 0x9c, 0x0b, - 0x41, 0x71, 0x19, 0xbc, 0x2a, 0x1b, 0x57, 0x80, 0x39, 0x15, 0x5f, 0x78, - 0xf2, 0x70, 0xcb, 0x89, 0xcf, 0x03, 0xb4, 0x2b, 0xf8, 0xd5, 0x40, 0x1f, - 0x79, 0xe7, 0x19, 0xc8, 0x38, 0xde, 0xaf, 0x47, 0xff, 0x8a, 0xbe, 0xc4, - 0x1c, 0x5a, 0x02, 0x86, 0x85, 0x30, 0x1e, 0xa0, 0x25, 0xa0, 0x19, 0xe3, - 0x42, 0x30, 0x76, 0x15, 0xa0, 0x02, 0x0b, 0x58, 0x61, 0x83, 0x73, 0xc8, - 0x18, 0x7f, 0x42, 0xf6, 0xb1, 0x05, 0x7d, 0xa1, 0xb3, 0xae, 0x92, 0x0a, - 0x7a, 0xc0, 0x70, 0xe4, 0x18, 0xb9, 0x0d, 0x63, 0x2b, 0x3a, 0xc7, 0xfa, - 0x81, 0xaf, 0x2e, 0xf4, 0xcd, 0x7c, 0x05, 0xc6, 0x56, 0x3e, 0x47, 0x63, - 0x51, 0xe4, 0xab, 0xb8, 0x36, 0xf2, 0x68, 0x8a, 0x5e, 0x62, 0x3d, 0x62, - 0x5c, 0xfa, 0xa6, 0x28, 0x6f, 0x1c, 0xd6, 0xd1, 0x77, 0xb4, 0x71, 0xc8, - 0xed, 0xcd, 0xaf, 0xf5, 0xa5, 0xc9, 0x09, 0xf5, 0x17, 0xd8, 0x7b, 0xa1, - 0x5d, 0x6c, 0x3d, 0xb7, 0xa9, 0x6f, 0xad, 0x07, 0xe7, 0xf7, 0xd5, 0x1b, - 0x1c, 0x41, 0x29, 0x98, 0x59, 0xe5, 0x1a, 0x71, 0x74, 0x04, 0xe6, 0x28, - 0xdc, 0x61, 0xa7, 0xb7, 0x0d, 0x5c, 0x1f, 0xd6, 0x6c, 0x54, 0x81, 0x93, - 0xbc, 0x52, 0x2b, 0x0a, 0x3f, 0x40, 0x65, 0xad, 0xe8, 0x03, 0x5c, 0x0f, - 0x96, 0x2e, 0xe7, 0x52, 0x3a, 0xc4, 0x49, 0x83, 0x1d, 0xc5, 0x6b, 0xce, - 0x22, 0xb2, 0x77, 0x42, 0x50, 0x1b, 0xdf, 0x44, 0x1f, 0xe2, 0xb4, 0x19, - 0xde, 0xc3, 0xe5, 0xe3, 0xf7, 0x91, 0xf0, 0x82, 0xb0, 0x18, 0x93, 0xa6, - 0xc3, 0x05, 0x70, 0xd9, 0x5d, 0x6d, 0x61, 0xdb, 0xe8, 0x44, 0xe8, 0xab, - 0x08, 0x34, 0x60, 0x4f, 0xe0, 0xb2, 0xb0, 0xd5, 0xe4, 0xbc, 0xf1, 0x09, - 0x79, 0x77, 0x35, 0xac, 0xf9, 0xfd, 0x02, 0x72, 0x58, 0x76, 0x68, 0xa0, - 0x71, 0xe7, 0xd7, 0x10, 0xc1, 0xd8, 0xd7, 0xa1, 0x2e, 0xe1, 0xe4, 0x3d, - 0x91, 0xf3, 0x73, 0xe8, 0xeb, 0x50, 0xb1, 0x2f, 0xd4, 0x25, 0x30, 0x6c, - 0x92, 0xa2, 0xc8, 0x21, 0x5c, 0xd3, 0x2b, 0x99, 0xd1, 0xe4, 0x10, 0x82, - 0x5e, 0xa8, 0xab, 0xc2, 0x2a, 0xa0, 0xad, 0x98, 0x67, 0x18, 0x0e, 0xe8, - 0x0b, 0x8d, 0x26, 0xa7, 0x31, 0xd0, 0x1f, 0xc7, 0xee, 0x1b, 0xff, 0x61, - 0xc3, 0xd7, 0xc2, 0xdb, 0x20, 0xc9, 0x17, 0x40, 0xef, 0x0b, 0xff, 0x60, - 0x8b, 0x27, 0x64, 0x1b, 0x01, 0xe3, 0xce, 0x21, 0x9f, 0x1a, 0x64, 0x35, - 0x19, 0x36, 0x3c, 0xc7, 0x7d, 0x12, 0x60, 0xbf, 0x44, 0x11, 0x31, 0x7f, - 0xe0, 0x40, 0x7e, 0x05, 0xa6, 0x2b, 0xa2, 0x88, 0x94, 0x7f, 0xb1, 0x61, - 0x50, 0xbf, 0x37, 0xa0, 0x89, 0x0f, 0xd3, 0x18, 0xa5, 0xb0, 0x3d, 0x94, - 0xa4, 0xfc, 0x6d, 0xcb, 0x3e, 0x69, 0x57, 0xea, 0xfa, 0x27, 0xba, 0x68, - 0x3d, 0x47, 0x1b, 0x94, 0xaf, 0xec, 0x67, 0x5f, 0xe3, 0xca, 0x53, 0x61, - 0xd5, 0x9f, 0xe8, 0xfa, 0x0b, 0x3a, 0xfc, 0x5d, 0xb3, 0xce, 0x08, 0xe2, - 0x60, 0x49, 0x4b, 0x60, 0x1f, 0x6c, 0xaf, 0x12, 0x56, 0xd8, 0xf4, 0x32, - 0xba, 0x84, 0xdf, 0x2b, 0xbb, 0x54, 0xfc, 0x0f, 0x85, 0xc2, 0xcb, 0xde, - 0x42, 0x6f, 0xed, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82, -} +// data represents the icon +// +//go:embed icon_linux.png +var data []byte -// DataHibernate represents the icon hibernated -var DataHibernate []byte = []byte{ - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x55, 0xed, 0xb3, 0x47, 0x00, 0x00, 0x00, - 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, - 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, - 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, - 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, - 0x00, 0x06, 0x38, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0x5c, 0xab, - 0x76, 0xeb, 0x3a, 0x10, 0xdd, 0xe9, 0x2a, 0x08, 0x2c, 0x2c, 0x34, 0x2c, - 0x2c, 0x0c, 0x34, 0x0c, 0x2c, 0x2c, 0x0c, 0x3c, 0xf0, 0xc0, 0xfb, 0x09, - 0x17, 0x1e, 0x78, 0x60, 0x60, 0x60, 0x60, 0xa1, 0x61, 0x60, 0x61, 0xa0, - 0x61, 0x60, 0x60, 0x59, 0xaf, 0x26, 0x1e, 0xe5, 0x2a, 0xca, 0xcc, 0x58, - 0x7e, 0xc4, 0x79, 0x75, 0xaf, 0xe5, 0xe5, 0x46, 0x95, 0x35, 0xf2, 0xd6, - 0x8c, 0x1e, 0xdb, 0xb2, 0x81, 0x1f, 0x98, 0x18, 0xe1, 0x8c, 0xf8, 0xfe, - 0xfe, 0x7e, 0x72, 0xa7, 0xb1, 0x3b, 0xfc, 0x39, 0xc4, 0x96, 0xcf, 0x9b, - 0xd1, 0x68, 0xf4, 0x85, 0x33, 0x61, 0x30, 0x82, 0x1c, 0x19, 0x44, 0xc0, - 0x8b, 0x3b, 0x9e, 0xdd, 0x91, 0x41, 0x26, 0x45, 0x03, 0x11, 0xb4, 0xe1, - 0xa3, 0xa4, 0x63, 0x28, 0xd2, 0x4e, 0x4a, 0x10, 0x93, 0xf2, 0x8a, 0x8a, - 0x98, 0x0c, 0xfd, 0xa2, 0x74, 0xc7, 0x27, 0x2a, 0xb2, 0xb6, 0x38, 0x11, - 0x4e, 0x42, 0x90, 0x23, 0x26, 0x73, 0xa7, 0x09, 0x2a, 0x52, 0x52, 0xbd, - 0xa4, 0x0b, 0x88, 0xa8, 0xe2, 0x14, 0x44, 0xf5, 0x4a, 0x10, 0x13, 0x93, - 0xa3, 0x7f, 0x6f, 0x49, 0x45, 0xef, 0x44, 0xf5, 0x42, 0x10, 0x87, 0x52, - 0x8e, 0xca, 0x6b, 0x2e, 0x01, 0xbd, 0x11, 0xd5, 0x99, 0x20, 0x47, 0x0e, - 0xf5, 0x2f, 0x6f, 0x18, 0x26, 0x94, 0x9a, 0x80, 0xc8, 0x21, 0x92, 0x3e, - 0xd1, 0x01, 0xad, 0x09, 0xba, 0x40, 0xaf, 0xd1, 0xb0, 0x72, 0x24, 0x7d, - 0xa0, 0x25, 0x5a, 0x11, 0xc4, 0xf3, 0x97, 0x77, 0x54, 0x43, 0xf6, 0x35, - 0x80, 0xbc, 0x69, 0xde, 0x26, 0xe4, 0x1a, 0x13, 0xc4, 0xe4, 0xcc, 0x50, - 0xcd, 0x63, 0xae, 0x09, 0xad, 0x48, 0x6a, 0x44, 0x90, 0x23, 0x87, 0x3c, - 0x66, 0x86, 0xcb, 0xeb, 0x6f, 0x52, 0xd1, 0x98, 0xa4, 0x87, 0xd4, 0x8c, - 0x81, 0xe7, 0x5c, 0x2b, 0x39, 0x84, 0xdd, 0x3d, 0xf0, 0xbd, 0x24, 0x21, - 0x89, 0xa0, 0x1b, 0x21, 0xc7, 0xa3, 0x11, 0x49, 0xb5, 0x04, 0xf1, 0x68, - 0x35, 0xc3, 0xf5, 0xf5, 0x39, 0x16, 0xfc, 0x20, 0x53, 0x8b, 0x14, 0x0f, - 0xca, 0x71, 0x5b, 0xe4, 0x78, 0x3c, 0xbb, 0xc6, 0x9f, 0xd6, 0x65, 0x32, - 0x09, 0x72, 0x05, 0xd0, 0x42, 0xf3, 0xd2, 0xe7, 0x39, 0x5d, 0x30, 0xe1, - 0xe5, 0x91, 0x0a, 0x95, 0x20, 0x8e, 0xd1, 0x1c, 0xb7, 0x8f, 0x37, 0xee, - 0x46, 0x44, 0x58, 0x1e, 0x94, 0xe3, 0x36, 0x43, 0x2b, 0x86, 0xe9, 0x08, - 0x22, 0x41, 0xec, 0x3d, 0xaf, 0xb8, 0x1f, 0x4c, 0xb4, 0x51, 0x4d, 0xf3, - 0xa0, 0x1c, 0xf7, 0x87, 0x37, 0x29, 0xf1, 0x88, 0xa0, 0x3b, 0xf4, 0x1e, - 0x8f, 0x4c, 0xea, 0xb0, 0x1f, 0x85, 0x8c, 0x39, 0xba, 0x21, 0x9c, 0xc6, - 0x8f, 0x71, 0xfa, 0xc9, 0x65, 0xbc, 0x6c, 0xe8, 0xd2, 0x6f, 0x92, 0x74, - 0x53, 0x86, 0x09, 0x07, 0x04, 0xb5, 0xf4, 0x1e, 0x12, 0xcf, 0x57, 0x5c, - 0xf0, 0xd1, 0x13, 0x08, 0x1e, 0x21, 0x9e, 0xb9, 0xdc, 0x0c, 0xdd, 0x3b, - 0xfe, 0x53, 0xda, 0x7b, 0x75, 0xd7, 0x17, 0x61, 0x99, 0xa3, 0xa8, 0x70, - 0x2a, 0xf4, 0x2d, 0xb1, 0xb0, 0x56, 0x82, 0x14, 0xdb, 0xc8, 0xd1, 0x9c, - 0xa8, 0xa1, 0xec, 0x7d, 0x38, 0x1b, 0x2b, 0xff, 0x23, 0x26, 0x68, 0x86, - 0x34, 0x3d, 0x99, 0x0a, 0x28, 0xba, 0x3c, 0x7a, 0x71, 0xb6, 0x72, 0xa4, - 0x87, 0x73, 0x27, 0x7b, 0xc1, 0x9c, 0x2e, 0x25, 0x3a, 0xe8, 0x29, 0xc9, - 0xdc, 0xff, 0x78, 0x8c, 0x0a, 0xc9, 0x12, 0x0a, 0xa0, 0x8a, 0x16, 0xe8, - 0x08, 0x2a, 0xc3, 0xd9, 0xa4, 0xe7, 0x5c, 0x96, 0x5c, 0x4b, 0x84, 0x2c, - 0x5c, 0xde, 0x12, 0xdd, 0x6c, 0x91, 0xf7, 0x2d, 0x9d, 0x3d, 0x3a, 0xe7, - 0x35, 0xd9, 0x69, 0x09, 0x32, 0xf6, 0x8d, 0x11, 0xf6, 0x41, 0x29, 0xea, - 0xa0, 0x49, 0x0e, 0xeb, 0x45, 0x74, 0x78, 0x77, 0x26, 0x23, 0xd4, 0x22, - 0x1b, 0x29, 0xbf, 0x4b, 0x5f, 0xbb, 0x6b, 0xe6, 0x90, 0x95, 0x82, 0x5a, - 0xed, 0xa6, 0x85, 0x3d, 0x6a, 0x14, 0xfa, 0x33, 0x87, 0x0e, 0xdf, 0x87, - 0x95, 0xf4, 0x23, 0x24, 0x28, 0x83, 0x8d, 0xb5, 0x46, 0x8e, 0x33, 0x3a, - 0x61, 0xa3, 0x63, 0xe5, 0xff, 0x6a, 0xff, 0x41, 0x37, 0x23, 0x90, 0x44, - 0x37, 0xaa, 0x92, 0xc3, 0xe1, 0x39, 0x69, 0x69, 0xaf, 0xe0, 0xe1, 0x3c, - 0x83, 0x8e, 0xfd, 0x68, 0x16, 0xce, 0x83, 0x2c, 0x0f, 0xa2, 0x0a, 0x7f, - 0x08, 0x15, 0x79, 0xe2, 0x7e, 0x6b, 0x0a, 0x7b, 0x38, 0xa7, 0x16, 0xa6, - 0x35, 0xcf, 0x6f, 0x69, 0xc6, 0xca, 0x2d, 0xbe, 0x0c, 0x92, 0x96, 0x12, - 0x39, 0xe4, 0x31, 0x54, 0x06, 0x8c, 0xc6, 0x88, 0xec, 0x69, 0xba, 0xcf, - 0x92, 0xef, 0x49, 0xc3, 0x9e, 0x8b, 0x54, 0x82, 0xd6, 0x71, 0x85, 0x03, - 0x11, 0x2d, 0x43, 0x3a, 0xe8, 0x9a, 0x5f, 0xfc, 0xa8, 0xe8, 0x00, 0x14, - 0x6e, 0xf8, 0xbf, 0x33, 0x5e, 0xc7, 0xff, 0xe7, 0xd1, 0x68, 0x86, 0x66, - 0xa3, 0x5f, 0x86, 0x4a, 0x1c, 0x1b, 0x47, 0xb6, 0xb6, 0x6c, 0x4b, 0xc3, - 0x21, 0x41, 0x5c, 0x80, 0xd5, 0x22, 0x85, 0x90, 0x96, 0xa3, 0xdd, 0x9c, - 0x86, 0xec, 0xbc, 0x4b, 0xb3, 0x56, 0x7a, 0x3c, 0x23, 0x85, 0x71, 0x30, - 0xfd, 0x90, 0xea, 0xb8, 0x0d, 0x0e, 0x09, 0x54, 0x47, 0x49, 0xf7, 0xb1, - 0xa6, 0x0b, 0x63, 0x4f, 0xaa, 0xf7, 0x20, 0xcb, 0x7b, 0x4a, 0xc1, 0x7b, - 0x32, 0x74, 0x5f, 0x8e, 0xbc, 0xa7, 0xc8, 0x9e, 0x9c, 0xc7, 0x12, 0xb6, - 0x28, 0x1c, 0xff, 0xb8, 0xf3, 0xdc, 0xc8, 0xf3, 0x1a, 0x37, 0x08, 0xdf, - 0xd3, 0xc6, 0xb8, 0xe6, 0x80, 0x20, 0x0b, 0x52, 0x21, 0x7d, 0x88, 0x68, - 0x3b, 0x29, 0xd7, 0xd2, 0x62, 0x02, 0xb9, 0xb7, 0x8f, 0xe5, 0xca, 0x8b, - 0x90, 0x56, 0x1a, 0xf9, 0x77, 0x8d, 0xf7, 0x18, 0xfe, 0x50, 0x20, 0x11, - 0x94, 0x29, 0xf9, 0xbe, 0x6a, 0x0c, 0x3e, 0x09, 0x69, 0x39, 0x84, 0x01, - 0x80, 0x91, 0x43, 0xae, 0x5b, 0x18, 0x52, 0xa1, 0xcd, 0x92, 0xcf, 0x7e, - 0xa8, 0x0e, 0xf1, 0x22, 0xd8, 0xb1, 0x3c, 0xe8, 0x80, 0x20, 0x0b, 0x52, - 0x6c, 0x4b, 0x2d, 0xba, 0xa8, 0x99, 0xb3, 0x50, 0x1f, 0x22, 0x85, 0x25, - 0x69, 0x31, 0x2b, 0x65, 0x10, 0xd0, 0x3c, 0xf5, 0x33, 0xee, 0xab, 0xf8, - 0xfa, 0x39, 0x5f, 0x9b, 0xa1, 0xf2, 0xbc, 0x10, 0x6d, 0xfa, 0xcb, 0xa4, - 0x10, 0x3b, 0xd7, 0xa3, 0x9e, 0x73, 0xd9, 0x3d, 0x40, 0x8a, 0x07, 0x49, - 0x15, 0xfd, 0x12, 0xd2, 0xa7, 0xae, 0xe5, 0xac, 0x10, 0xcb, 0x94, 0x74, - 0x71, 0x9b, 0x0a, 0x4f, 0x20, 0x69, 0x28, 0x96, 0xbc, 0xe8, 0x25, 0xe8, - 0xe0, 0x77, 0xd7, 0x73, 0x7f, 0x35, 0x35, 0xea, 0x2c, 0x85, 0x93, 0xd5, - 0x08, 0x07, 0x4b, 0x8d, 0xa4, 0x49, 0x53, 0x00, 0x9a, 0xa7, 0xc4, 0xe1, - 0x22, 0x75, 0x82, 0x75, 0xd8, 0xd6, 0xac, 0xeb, 0x0a, 0x2e, 0xf7, 0x49, - 0xa8, 0x93, 0xaf, 0x17, 0x0d, 0xd7, 0x44, 0xb0, 0xdf, 0xee, 0xa7, 0x41, - 0x22, 0xc8, 0x0a, 0xbb, 0x1d, 0x27, 0x3e, 0xc4, 0xb6, 0x46, 0x46, 0x89, - 0x20, 0x6b, 0x0e, 0x91, 0x8a, 0x7d, 0x9f, 0xa1, 0x81, 0x17, 0x8c, 0x94, - 0xa7, 0xb5, 0x6a, 0x10, 0xa0, 0x10, 0xd2, 0x32, 0x23, 0x7f, 0xb2, 0x07, - 0x65, 0xe1, 0xea, 0x96, 0x40, 0xab, 0x6b, 0x97, 0x46, 0x5e, 0xd4, 0xc6, - 0x6b, 0xbc, 0xbd, 0x85, 0xb2, 0x9c, 0x88, 0x6d, 0x51, 0xf8, 0x2c, 0x70, - 0xdc, 0xe9, 0x7a, 0xbc, 0xd7, 0x84, 0x36, 0x41, 0x1b, 0x04, 0xac, 0xf9, - 0xdf, 0x2e, 0xff, 0x83, 0xaf, 0x04, 0x6c, 0x92, 0xa4, 0x7e, 0x60, 0x09, - 0xdb, 0xf3, 0x34, 0xf8, 0x85, 0xe8, 0x91, 0xcb, 0x6b, 0x1a, 0x11, 0xcb, - 0x1d, 0x0b, 0xc8, 0x75, 0xf4, 0xfb, 0xac, 0xb5, 0x70, 0x21, 0x3b, 0x85, - 0x90, 0x9e, 0xc3, 0xa8, 0xa3, 0x6f, 0xa4, 0x87, 0xa8, 0x20, 0x0d, 0x47, - 0x8f, 0x45, 0x02, 0xf7, 0x2f, 0x91, 0x0e, 0xca, 0xfb, 0x57, 0x21, 0xc7, - 0x2b, 0x02, 0x13, 0x5e, 0x5a, 0x20, 0xb2, 0x47, 0x1e, 0xfb, 0x17, 0xcd, - 0x1a, 0xa5, 0x44, 0xd5, 0x18, 0xb1, 0x2c, 0x5b, 0x27, 0x2d, 0xef, 0xeb, - 0x37, 0x0a, 0x2e, 0xa2, 0x11, 0xc0, 0x9a, 0x21, 0x1f, 0x28, 0x6d, 0x91, - 0xc1, 0x3a, 0x59, 0xb3, 0x44, 0x35, 0x77, 0xf9, 0x54, 0xae, 0x8f, 0xf7, - 0x1d, 0xa9, 0x5e, 0xd6, 0xc0, 0xde, 0x4a, 0x5a, 0xf4, 0xf2, 0xf5, 0xbf, - 0x60, 0x87, 0xd7, 0x7e, 0xdb, 0x5e, 0x48, 0x10, 0xf5, 0x27, 0xef, 0xb0, - 0x91, 0x22, 0x98, 0x85, 0xb1, 0x4d, 0xad, 0x5d, 0x26, 0x88, 0x5e, 0x33, - 0x1c, 0x0f, 0xb9, 0x26, 0x49, 0x1d, 0xec, 0xe5, 0xa8, 0x57, 0x15, 0xe7, - 0x5e, 0xc5, 0x0c, 0x09, 0xa2, 0x0a, 0xfe, 0x83, 0x7a, 0xf4, 0x22, 0xb9, - 0xb2, 0x4d, 0xf2, 0x84, 0x3a, 0x2d, 0xe9, 0x40, 0x44, 0xef, 0x68, 0x2f, - 0x47, 0x9a, 0x0e, 0xfe, 0xef, 0x91, 0xe4, 0x4a, 0x09, 0xae, 0x80, 0x12, - 0xf5, 0xfa, 0x4e, 0xce, 0x31, 0xdc, 0x7a, 0x1f, 0x72, 0xc3, 0x1d, 0xb2, - 0x53, 0xb6, 0xb7, 0xea, 0x68, 0xef, 0x0d, 0x69, 0xa3, 0x6e, 0x69, 0x3d, - 0xf6, 0xa1, 0x0a, 0x4f, 0x91, 0x06, 0x55, 0xd6, 0xd4, 0xc0, 0x15, 0x9d, - 0xc0, 0x90, 0x4b, 0x2f, 0xc0, 0xde, 0x32, 0xb4, 0x31, 0x12, 0x0a, 0xfc, - 0x8d, 0x66, 0x95, 0xdf, 0xc5, 0x3d, 0xaa, 0xc9, 0xa3, 0xf6, 0x20, 0x2f, - 0xe3, 0xe3, 0x15, 0xdd, 0xd7, 0x58, 0xde, 0x1e, 0x75, 0xc0, 0xa5, 0xf1, - 0xe0, 0xf0, 0xa5, 0x85, 0x3d, 0x2a, 0xeb, 0x8f, 0xea, 0x41, 0x6c, 0x40, - 0x5b, 0x75, 0x37, 0x31, 0xe2, 0x0d, 0x0c, 0xf1, 0xe8, 0xb9, 0x4f, 0x7b, - 0x34, 0xd2, 0x2e, 0xc3, 0x04, 0x69, 0xb1, 0x4a, 0x9e, 0xd0, 0x85, 0xa0, - 0x21, 0x48, 0x39, 0x95, 0xbd, 0x22, 0x4e, 0x38, 0x92, 0x3b, 0x78, 0x78, - 0x2b, 0x71, 0x7f, 0xf8, 0x94, 0x06, 0x01, 0x4d, 0x0f, 0x2a, 0x70, 0x7f, - 0x28, 0xa4, 0x44, 0x91, 0x20, 0xf6, 0xa2, 0x5e, 0xe6, 0x1e, 0x57, 0x02, - 0x75, 0x0a, 0x61, 0x29, 0x8a, 0x05, 0xfa, 0x91, 0x19, 0x2e, 0x1d, 0xbb, - 0xe9, 0x83, 0xf6, 0x4f, 0x95, 0x20, 0x1e, 0xea, 0x96, 0xb8, 0x7d, 0x7c, - 0x8c, 0x8c, 0x5d, 0x23, 0xa6, 0x26, 0x1d, 0x3c, 0xed, 0xbc, 0x55, 0x14, - 0xda, 0x82, 0xd6, 0x23, 0x45, 0xb4, 0x2f, 0x60, 0x4b, 0x21, 0xd7, 0x8a, - 0x4d, 0xca, 0x9a, 0xb2, 0x96, 0x20, 0x76, 0x3f, 0x12, 0xab, 0x5a, 0xad, - 0x83, 0x2e, 0x14, 0x74, 0x2f, 0x8b, 0x94, 0x8c, 0xc9, 0xef, 0x8b, 0x5d, - 0xf1, 0x8b, 0x74, 0x31, 0x6a, 0xf7, 0x1d, 0x85, 0x68, 0xfa, 0x42, 0xdd, - 0xb5, 0x93, 0xd4, 0x88, 0x1c, 0xc2, 0xcf, 0x2b, 0x99, 0x35, 0xb8, 0x97, - 0x97, 0x7a, 0x4b, 0x28, 0x9b, 0xb2, 0xea, 0xd0, 0xe9, 0xbd, 0xf9, 0x04, - 0x1d, 0xfb, 0x12, 0x30, 0xfc, 0x6b, 0xe1, 0x21, 0xbe, 0xdb, 0xef, 0x7b, - 0x3e, 0x35, 0xc8, 0x5b, 0x96, 0xa3, 0xae, 0x3b, 0x64, 0xd1, 0x03, 0x1a, - 0xee, 0x43, 0x1e, 0x02, 0x05, 0x2a, 0xcf, 0xe9, 0xbc, 0x54, 0xea, 0xfb, - 0xe3, 0x26, 0xe7, 0x26, 0x8a, 0xb4, 0xac, 0xcb, 0xfb, 0xb8, 0x49, 0x8c, - 0x81, 0x89, 0x22, 0x2f, 0x21, 0x62, 0x56, 0x7d, 0x12, 0xe3, 0x31, 0xc4, - 0x07, 0x96, 0xbc, 0x36, 0x9c, 0xa1, 0x3f, 0xf8, 0x2f, 0x52, 0x11, 0x31, - 0xeb, 0x3e, 0x42, 0x49, 0xc3, 0xd0, 0x9f, 0xe8, 0xf2, 0x62, 0xba, 0xdf, - 0xbe, 0x92, 0x2a, 0x95, 0x7a, 0x42, 0xe8, 0xa0, 0xc5, 0xe5, 0x60, 0xdf, - 0x35, 0x3b, 0xf7, 0x47, 0xde, 0xfc, 0xc6, 0x83, 0x31, 0x8e, 0xb5, 0x65, - 0xbf, 0x0f, 0xf1, 0x6b, 0x28, 0x32, 0x7e, 0xd0, 0x02, 0xff, 0x01, 0x68, - 0x32, 0xf2, 0xde, 0x6e, 0x41, 0xa4, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x49, - 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, -} +// dataHibernate represents the icon hibernated +// +//go:embed icon_linux_hiber.png +var dataHibernate []byte diff --git a/icon/iconwin.go b/icon/iconwin.go index 104f4725a..1225ba03b 100644 --- a/icon/iconwin.go +++ b/icon/iconwin.go @@ -1,1635 +1,25 @@ //go:build windows -// File generated by 2goarray v0.1.0 (http://github.com/cratonica/2goarray) - package icon +import _ "embed" // import embed to embed the icon + // GetIcon will return the icon func GetIcon() []byte { - return Data + return data } // GetIconHiber will return the hibernated icon func GetIconHiber() []byte { - return DataHibernate + return dataHibernate } -// Data represents the icon -var Data []byte = []byte{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, - 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x13, 0x0b, - 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0xaf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x90, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xa0, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x4f, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x90, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0xa0, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x6f, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, - 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff, - 0xff, 0x9f, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, - 0xff, 0xbf, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, - 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, - 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, - 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, - 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, - 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, - 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, - 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, - 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, - 0x80, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, -} +// data represents the icon +// +//go:embed icon_win.ico +var data []byte -// DataHibernate represents the icon hibernated -var DataHibernate []byte = []byte{ - 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0xa8, 0x25, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, - 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x13, 0x0b, - 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x58, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x08, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x18, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x48, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x58, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x18, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x30, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x48, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x08, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x58, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x28, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, 0xff, 0x28, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, - 0xff, 0x38, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x40, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x08, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x48, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x20, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x30, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x30, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x60, 0xff, 0xff, - 0xff, 0x78, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, - 0xff, 0x80, 0xff, 0xff, 0xff, 0x78, 0xff, 0xff, 0xff, 0x50, 0xff, 0xff, - 0xff, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0x08, 0xff, 0xff, 0xff, 0x20, 0xff, 0xff, 0xff, 0x38, 0xff, 0xff, - 0xff, 0x50, 0xff, 0xff, 0xff, 0x68, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, 0xff, 0x70, 0xff, 0xff, - 0xff, 0x60, 0xff, 0xff, 0xff, 0x58, 0xff, 0xff, 0xff, 0x40, 0xff, 0xff, - 0xff, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, - 0xc0, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, - 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, - 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, - 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, - 0x00, 0x00, 0x83, 0x00, 0x01, 0x80, 0xc0, 0xc1, 0x00, 0x00, 0x83, 0x00, - 0x03, 0xc0, 0x40, 0xc1, 0x00, 0x00, 0x83, 0x80, 0x07, 0xe0, 0x01, 0xc1, - 0x00, 0x00, 0x81, 0x80, 0x0e, 0x70, 0x01, 0x81, 0x00, 0x00, 0x81, 0xc0, - 0x1c, 0x38, 0x03, 0x81, 0x00, 0x00, 0x80, 0xf0, 0x38, 0x1c, 0x0f, 0x01, - 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x1f, - 0xc0, 0x03, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, - 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, - 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x00, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0xff, 0xe0, - 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, - 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x00, 0xff, 0xff, - 0x80, 0x03, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, -} +// dataHibernate represents the icon hibernated +// +//go:embed icon_win_hiber.ico +var dataHibernate []byte diff --git a/icon/make_icon.bat b/icon/make_icon.bat deleted file mode 100644 index 15dc48423..000000000 --- a/icon/make_icon.bat +++ /dev/null @@ -1,41 +0,0 @@ -@ECHO OFF - -IF "%GOPATH%"=="" GOTO NOGO -IF NOT EXIST %GOPATH%\bin\2goarray.exe GOTO INSTALL -:POSTINSTALL -IF "%1"=="" GOTO NOICO -IF NOT EXIST %1 GOTO BADFILE -ECHO Creating iconwin.go -ECHO // +build windows > iconwin.go -ECHO. >> iconwin.go -TYPE %1 | %GOPATH%\bin\2goarray Data icon >> iconwin.go -GOTO DONE - -:CREATEFAIL -ECHO Unable to create output file -GOTO DONE - -:INSTALL -ECHO Installing 2goarray... -go install github.com/cratonica/2goarray@latest -IF ERRORLEVEL 1 GOTO GETFAIL -GOTO POSTINSTALL - -:GETFAIL -ECHO Failure running go install github.com/cratonica/2goarray@latest. Ensure that go and git are in PATH -GOTO DONE - -:NOGO -ECHO GOPATH environment variable not set -GOTO DONE - -:NOICO -ECHO Please specify a .ico file -GOTO DONE - -:BADFILE -ECHO %1 is not a valid file -GOTO DONE - -:DONE - diff --git a/icon/make_icon.sh b/icon/make_icon.sh deleted file mode 100755 index 77bf6f6d2..000000000 --- a/icon/make_icon.sh +++ /dev/null @@ -1,41 +0,0 @@ -#/bin/sh - -if [ -z "$GOPATH" ]; then - echo GOPATH environment variable not set - exit -fi - -if [ ! -e "$GOPATH/bin/2goarray" ]; then - echo "Installing 2goarray..." - go install github.com/cratonica/2goarray@latest - if [ $? -ne 0 ]; then - echo Failure executing go install github.com/cratonica/2goarray@latest - exit - fi -fi - -if [ -z "$1" ]; then - echo Please specify a PNG file - exit -fi - -if [ ! -f "$1" ]; then - echo $1 is not a valid file - exit -fi - -if [ -z "$2" ]; then - OUTPUT="$1.go" -else - OUTPUT=$2 -fi - -echo Generating $OUTPUT -echo "// +build linux darwin" > $OUTPUT -echo >> $OUTPUT -cat "$1" | $GOPATH/bin/2goarray Data icon >> $OUTPUT -if [ $? -ne 0 ]; then - echo Failure generating $OUTPUT - exit -fi -echo Finished diff --git a/main.go b/main.go index 5cdd00ed7..e0bbb3be1 100755 --- a/main.go +++ b/main.go @@ -19,6 +19,7 @@ package main import ( + _ "embed" "encoding/json" "flag" "io/ioutil" @@ -81,6 +82,14 @@ var ( crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") ) +var homeTemplate = template.Must(template.New("home").Parse(homeTemplateHTML)) + +// If you navigate to this server's homepage, you'll get this HTML +// so you can directly interact with the serial port server +// +//go:embed home.html +var homeTemplateHTML string + // global clients var ( Tools tools.Tools @@ -444,243 +453,6 @@ func loop() { }() } -var homeTemplate = template.Must(template.New("home").Parse(homeTemplateHTML)) - -// If you navigate to this server's homepage, you'll get this HTML -// so you can directly interact with the serial port server -const homeTemplateHTML = ` - - -Arduino Create Agent Debug Console - - - - - - - - -
-

-            
-        
- - -` - func parseIni(filename string) (args []string, err error) { cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename) if err != nil { diff --git a/systray/systray_fake.go b/systray/systray_fake.go index f86b516e0..8f8e858a3 100644 --- a/systray/systray_fake.go +++ b/systray/systray_fake.go @@ -16,14 +16,17 @@ //go:build cli // Systray_fake gets compiled when the tag 'cli' is present. This is useful to build an agent without trayicon functionalities + package systray import "os" +// Start is a dummy function func (s *Systray) Start() { select {} } +// Quit is a dummy function func (s *Systray) Quit() { os.Exit(0) } From dce3afb0f3e7ed7501bad3cfc5537632e7ab63ce Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Fri, 10 Feb 2023 11:25:47 +0100 Subject: [PATCH 078/233] Add "Open config file" menu item (#763) * handle additional config, now they can be added in `~/.arduino-create` * add a menu in the tray menu to open the config file fix #734 --------- Co-authored-by: Umberto Baldi --- main.go | 6 +++++ systray/systray.go | 11 +++++++++ systray/systray_real.go | 52 +++++++++++++++++++---------------------- 3 files changed, 41 insertions(+), 28 deletions(-) diff --git a/main.go b/main.go index e0bbb3be1..723ab7e19 100755 --- a/main.go +++ b/main.go @@ -136,6 +136,10 @@ func main() { go loop() // SetupSystray is the main thread + configDir, err := getDefaultArduinoCreateConfigDir() + if err != nil { + log.Panicf("Can't open defaul configuration dir: %s", err) + } Systray = systray.Systray{ Hibernate: *hibernate, Version: version + "-" + commit, @@ -143,6 +147,7 @@ func main() { return "http://" + *address + port }, AdditionalConfig: *additionalConfig, + ConfigDir: configDir, } path, err := os.Executable() @@ -250,6 +255,7 @@ func loop() { if err != nil { log.Panicf("cannot parse arguments: %s", err) } + Systray.SetCurrentConfigFile(configPath) // Parse additional ini config if defined if len(*additionalConfig) > 0 { diff --git a/systray/systray.go b/systray/systray.go index b103395f7..f3593c4b4 100644 --- a/systray/systray.go +++ b/systray/systray.go @@ -21,6 +21,7 @@ import ( "os/exec" "strings" + "github.com/arduino/go-paths-helper" log "github.com/sirupsen/logrus" ) @@ -34,8 +35,12 @@ type Systray struct { DebugURL func() string // The active configuration file AdditionalConfig string + // The path to the directory containing the configuration files + ConfigDir *paths.Path // The path of the exe (only used in update) path string + // The path of the configuration file + currentConfigFilePath *paths.Path } // Restart restarts the program @@ -92,3 +97,9 @@ func (s *Systray) Update(path string) { s.path = path s.Restart() } + +// SetCurrentConfigFile allows to specify the path of the configuration file the agent +// is using. The tray menu with this info can display an "open config file" option. +func (s *Systray) SetCurrentConfigFile(configPath *paths.Path) { + s.currentConfigFilePath = configPath +} diff --git a/systray/systray_real.go b/systray/systray_real.go index 47494aa28..106306542 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -20,10 +20,8 @@ package systray import ( - "fmt" "os" "os/user" - "path/filepath" log "github.com/sirupsen/logrus" @@ -59,6 +57,7 @@ func (s *Systray) start() { // Add links mURL := systray.AddMenuItem("Go to Arduino Create", "Arduino Create") mDebug := systray.AddMenuItem("Open Debug Console", "Debug console") + mConfig := systray.AddMenuItem("Open Configuration", "Config File") // Remove crash-reports mRmCrashes := systray.AddMenuItem("Remove crash reports", "") @@ -80,6 +79,8 @@ func (s *Systray) start() { _ = open.Start("https://create.arduino.cc") case <-mDebug.ClickedCh: _ = open.Start(s.DebugURL()) + case <-mConfig.ClickedCh: + _ = open.Start(s.currentConfigFilePath.String()) case <-mRmCrashes.ClickedCh: s.RemoveCrashes() s.updateMenuItem(mRmCrashes, s.CrashesIsEmpty()) @@ -155,7 +156,7 @@ func (s *Systray) end() { func (s *Systray) addConfigs() { var mConfigCheckbox []*systray.MenuItem - configs := getConfigs() + configs := s.getConfigs() if len(configs) > 1 { for _, config := range configs { entry := systray.AddMenuItem(config.Name, "") @@ -185,35 +186,30 @@ type configIni struct { Location string } -// getconfigs parses all config files in the executable folder -func getConfigs() []configIni { - // config.ini must be there, so call it Default - src, _ := os.Executable() // TODO change path - dest := filepath.Dir(src) - +// getConfigs parses all config files in the .arduino-create folder +func (s *Systray) getConfigs() []configIni { var configs []configIni - err := filepath.Walk(dest, func(path string, f os.FileInfo, _ error) error { - if !f.IsDir() { - if filepath.Ext(path) == ".ini" { - cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true, AllowPythonMultilineValues: true}, filepath.Join(dest, f.Name())) - if err != nil { - return err - } - defaultSection, err := cfg.GetSection("") - name := defaultSection.Key("name").String() - if name == "" || err != nil { - name = "Default config" - } - conf := configIni{Name: name, Location: f.Name()} - configs = append(configs, conf) + files, err := s.ConfigDir.ReadDir() + if err != nil { + log.Errorf("cannot read the content of %s", s.ConfigDir) + return nil + } + files.FilterOutDirs() + files.FilterSuffix(".ini") + for _, file := range files { + cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: true, AllowPythonMultilineValues: true}, file.String()) + if err != nil { + log.Errorf("error walking through executable configuration: %s", err) + } else { + defaultSection, err := cfg.GetSection("") + name := defaultSection.Key("name").String() + if name == "" || err != nil { + name = "Default config" } + conf := configIni{Name: name, Location: file.String()} + configs = append(configs, conf) } - return nil - }) - - if err != nil { - fmt.Println("error walking through executable configuration: %w", err) } return configs From 8b9ab21d98394225979dbd67afe9e310b8997848 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Fri, 10 Feb 2023 11:26:05 +0100 Subject: [PATCH 079/233] Linted README.md (#764) --- README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 683338e2a..1606465c8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +# arduino-create-agent + [![License: AGPL v3.0](https://img.shields.io/badge/License-AGPL%20v3.0-blue)](https://www.gnu.org/licenses/agpl-3.0.html) [![Test Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml) [![Codecov](https://codecov.io/gh/arduino/arduino-create-agent/branch/main/graph/badge.svg)](https://codecov.io/gh/arduino/arduino-create-agent) @@ -6,13 +8,11 @@ [![Check Go Dependencies status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml) [![Check Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml) -arduino-create-agent -==================== - The Arduino Create Agent is a single binary that will sit on the traybar and work in the background. It allows you to use the [Arduino Create applications](https://create.arduino.cc) to seamlessly upload code to any USB connected Arduino board (or Yún in LAN) directly from the browser. ## Architecture -``` + +```text +-------------------------------+ | | | Browser | @@ -26,13 +26,17 @@ The Arduino Create Agent is a single binary that will sit on the traybar and wor ``` ## Installation + Get the [latest version](https://github.com/arduino/arduino-create-agent/releases) of the Agent for all supported platforms or complete the [Getting Started](https://create.arduino.cc/getting-started/plugin/welcome). ## Apple M1 support + At the moment the new Apple Silicon Macs released in November 2020, like the [MacBook Pro 13"](https://www.apple.com/macbook-pro-13/), [MacBook Air](https://www.apple.com/macbook-air/) and [Mac mini](https://www.apple.com/mac-mini/) models with the [Apple M1](https://www.apple.com/mac/m1/) chip do not have native builds. But the Arduino Agent performs well in [Rosetta 2 mode](https://support.apple.com/en-us/HT211861). ## Documentation + The documentation has been moved to the [wiki](https://github.com/arduino/arduino-create-agent/wiki) page. There you can find: + - [Advanced usage](https://github.com/arduino/arduino-create-agent/wiki/Advanced-usage): explaining how to use multiple configurations and how to use the agent with a proxy. - [Agent Beta Program](https://github.com/arduino/arduino-create-agent/wiki/Agent-Beta-Program) - [Developement](https://github.com/arduino/arduino-create-agent/wiki/Developement): containing useful info to help in development @@ -42,6 +46,7 @@ The documentation has been moved to the [wiki](https://github.com/arduino/arduin - [How to use the agent](https://github.com/arduino/arduino-create-agent/wiki/How-to-use-the-agent) ## Contributing + ### Submitting an issue When submitting a new issue please search for duplicates before creating a new one. Help us by providing useful context and information. Please attach the output of the commands running at the debug console or attach [crash reports](https://github.com/arduino/arduino-create-agent/wiki/How-to-use-crashreport-functionality) if useful. @@ -55,6 +60,7 @@ Thank you! e-mail contact: security@arduino.cc ### Submitting a pull request + We are glad you want to contribute with code: that's the best way to help this software. Your contribution is adding or modifying existing behaviour, please always refer to an existing issue or open a new one before contributing. We are trying to use [Test Driven Development](https://en.wikipedia.org/wiki/Test-driven_development) in the near future: please add one or more tests that prove that your contribution is good and is working as expected, it will help us a lot. @@ -66,12 +72,14 @@ Also, for your contribution to be accepted, every one of your commits must be "S By signing off your commits, you agree to the following agreement, also known as [Developer Certificate of Origin](http://developercertificate.org/): it assures everyone that the code you're submitting is yours or that you have rights to submit it. ## Authors and acknowledgment + arduino-create-agent is a fork of @[johnlauer](https://github.com/johnlauer)'s [serial-port-json-server](https://github.com/johnlauer/serial-port-json-server) (which we really want to thank for his kindness and great work) The history has been rewritten to keep the repo small (thus removing all binaries committed in the past) ## License -``` + +```text Developer Certificate of Origin Version 1.1 @@ -82,7 +90,6 @@ San Francisco, CA 94110 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: From a3e7eccc1954bf93314965c07ba979a99cd696ec Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Fri, 10 Feb 2023 17:32:59 +0100 Subject: [PATCH 080/233] Cleanup directories handling (#765) * Sligltly simplified getDefaultConfigDir * Some code make-up * Added method to directly get data-dir * Added method to directly get logs dir * Removed now useless local variable * certs are now created in `.arduino-create` folder * Better use of go-paths library * Perform certificates migration if needed --------- Co-authored-by: Umberto Baldi --- certificates.go | 133 +++++++++++++++++++++++++++++++----------------- config.go | 38 +++++++++++--- hub.go | 2 +- main.go | 57 ++++++++------------- 4 files changed, 142 insertions(+), 88 deletions(-) diff --git a/certificates.go b/certificates.go index 4ed0ff02d..af8f6c3a2 100644 --- a/certificates.go +++ b/certificates.go @@ -16,7 +16,6 @@ import ( "crypto/x509/pkix" "encoding/pem" "fmt" - "io/ioutil" "math/big" "net" "os" @@ -24,6 +23,7 @@ import ( "text/template" "time" + "github.com/arduino/go-paths-helper" "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" ) @@ -133,12 +133,38 @@ func generateSingleCertificate(isCa bool) (*x509.Certificate, error) { return &template, nil } -func generateCertificates() { +// migrateCertificatesGeneratedWithOldAgentVersions checks if certificates generated +// with an old version of the Agent needs to be migrated to the current certificates +// directory, and performs the migration if needed. +func migrateCertificatesGeneratedWithOldAgentVersions(certsDir *paths.Path) { + if certsDir.Join("ca.cert.pem").Exist() { + // The new certificates are already set-up, nothing to do + return + } + + fileList := []string{ + "ca.key.pem", + "ca.cert.pem", + "ca.cert.cer", + "key.pem", + "cert.pem", + "cert.cer", + } + oldCertsDirPath, _ := os.Executable() + oldCertsDir := paths.New(oldCertsDirPath) + for _, fileName := range fileList { + oldCert := oldCertsDir.Join(fileName) + if oldCert.Exist() { + oldCert.CopyTo(certsDir.Join(fileName)) + } + } +} - os.Remove("ca.cert.pem") - os.Remove("ca.key.pem") - os.Remove("cert.pem") - os.Remove("key.pem") +func generateCertificates(certsDir *paths.Path) { + certsDir.Join("ca.cert.pem").Remove() + certsDir.Join("ca.key.pem").Remove() + certsDir.Join("cert.pem").Remove() + certsDir.Join("key.pem").Remove() // Create the key for the certification authority caKey, err := generateKey("P256") @@ -147,18 +173,20 @@ func generateCertificates() { os.Exit(1) } - keyOut, err := os.OpenFile("ca.key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) - if err != nil { - log.Error(err.Error()) - os.Exit(1) + { + keyOutPath := certsDir.Join("ca.key.pem").String() + keyOut, err := os.OpenFile(keyOutPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) // Save key with user-only permission 0600 + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + pem.Encode(keyOut, pemBlockForKey(caKey)) + keyOut.Close() + log.Printf("written %s", keyOutPath) } - pem.Encode(keyOut, pemBlockForKey(caKey)) - keyOut.Close() - log.Println("written ca.key.pem") // Create the certification authority caTemplate, err := generateSingleCertificate(true) - if err != nil { log.Error(err.Error()) os.Exit(1) @@ -166,17 +194,23 @@ func generateCertificates() { derBytes, _ := x509.CreateCertificate(rand.Reader, caTemplate, caTemplate, publicKey(caKey), caKey) - certOut, err := os.Create("ca.cert.pem") - if err != nil { - log.Error(err.Error()) - os.Exit(1) + { + caCertOutPath := certsDir.Join("ca.cert.pem") + caCertOut, err := caCertOutPath.Create() + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + pem.Encode(caCertOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) + caCertOut.Close() + log.Printf("written %s", caCertOutPath) } - pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) - certOut.Close() - log.Print("written ca.cert.pem") - ioutil.WriteFile("ca.cert.cer", derBytes, 0644) - log.Print("written ca.cert.cer") + { + caCertPath := certsDir.Join("ca.cert.cer") + caCertPath.WriteFile(derBytes) + log.Printf("written %s", caCertPath) + } // Create the key for the final certificate key, err := generateKey("P256") @@ -185,18 +219,20 @@ func generateCertificates() { os.Exit(1) } - keyOut, err = os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) - if err != nil { - log.Error(err.Error()) - os.Exit(1) + { + keyOutPath := certsDir.Join("key.pem").String() + keyOut, err := os.OpenFile(keyOutPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) // Save key with user-only permission 0600 + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + pem.Encode(keyOut, pemBlockForKey(key)) + keyOut.Close() + log.Printf("written %s", keyOutPath) } - pem.Encode(keyOut, pemBlockForKey(key)) - keyOut.Close() - log.Println("written key.pem") // Create the final certificate template, err := generateSingleCertificate(false) - if err != nil { log.Error(err.Error()) os.Exit(1) @@ -204,18 +240,23 @@ func generateCertificates() { derBytes, _ = x509.CreateCertificate(rand.Reader, template, caTemplate, publicKey(key), caKey) - certOut, err = os.Create("cert.pem") - if err != nil { - log.Error(err.Error()) - os.Exit(1) + { + certOutPath := certsDir.Join("cert.pem").String() + certOut, err := os.Create(certOutPath) + if err != nil { + log.Error(err.Error()) + os.Exit(1) + } + pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) + certOut.Close() + log.Printf("written %s", certOutPath) } - pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) - certOut.Close() - log.Print("written cert.pem") - - ioutil.WriteFile("cert.cer", derBytes, 0644) - log.Print("written cert.cer") + { + certPath := certsDir.Join("cert.cer") + certPath.WriteFile(derBytes) + log.Printf("written %s", certPath) + } } func certHandler(c *gin.Context) { @@ -230,14 +271,14 @@ func certHandler(c *gin.Context) { } func deleteCertHandler(c *gin.Context) { - DeleteCertificates() + DeleteCertificates(getCertificatesDir()) } // DeleteCertificates will delete the certificates -func DeleteCertificates() { - os.Remove("ca.cert.pem") - os.Remove("ca.cert.cer") - os.Remove("ca.key.pem") +func DeleteCertificates(certDir *paths.Path) { + certDir.Join("ca.cert.pem").Remove() + certDir.Join("ca.cert.cer").Remove() + certDir.Join("ca.key.pem").Remove() } const noFirefoxTemplateHTML = ` diff --git a/config.go b/config.go index e3225681d..182e24c52 100644 --- a/config.go +++ b/config.go @@ -17,15 +17,41 @@ package main import ( _ "embed" - "fmt" "os" "github.com/arduino/go-paths-helper" log "github.com/sirupsen/logrus" ) -// getDefaultArduinoCreateConfigDir returns the full path to the default arduino create agent data directory -func getDefaultArduinoCreateConfigDir() (*paths.Path, error) { +// getCertificatesDir return the directory where SSL certificates are saved +func getCertificatesDir() *paths.Path { + return getDataDir() +} + +// getDataDir returns the full path to the default Arduino Create Agent data directory. +func getDataDir() *paths.Path { + userDir, err := os.UserHomeDir() + if err != nil { + log.Panicf("Could not get user dir: %s", err) + } + dataDir := paths.New(userDir, ".arduino-create") + if err := dataDir.MkdirAll(); err != nil { + log.Panicf("Could not create data dir: %s", err) + } + return dataDir +} + +// getLogsDir return the directory where logs are saved +func getLogsDir() *paths.Path { + logsDir := getDataDir().Join("logs") + if err := logsDir.MkdirAll(); err != nil { + log.Panicf("Can't create logs dir: %s", err) + } + return logsDir +} + +// getDefaultConfigDir returns the full path to the default Arduino Create Agent configuration directory. +func getDefaultConfigDir() *paths.Path { // UserConfigDir returns the default root directory to use // for user-specific configuration data. Users should create // their own application-specific subdirectory within this @@ -43,14 +69,14 @@ func getDefaultArduinoCreateConfigDir() (*paths.Path, error) { // is not defined), then it will return an error. configDir, err := os.UserConfigDir() if err != nil { - return nil, err + log.Panicf("Can't get user home dir: %s", err) } agentConfigDir := paths.New(configDir, "ArduinoCreateAgent") if err := agentConfigDir.MkdirAll(); err != nil { - return nil, fmt.Errorf("cannot create config dir: %s", err) + log.Panicf("Can't create config dir: %s", err) } - return agentConfigDir, nil + return agentConfigDir } //go:embed config.ini diff --git a/hub.go b/hub.go index 205c00d34..f59c6460e 100755 --- a/hub.go +++ b/hub.go @@ -182,7 +182,7 @@ func checkCmd(m []byte) { } else if strings.HasPrefix(sl, "downloadtool") { // Always delete root certificates when we receive a downloadtool command // Useful if the install procedure was not followed strictly (eg. manually) - DeleteCertificates() + DeleteCertificates(getCertificatesDir()) go func() { args := strings.Split(s, " ") var tool, toolVersion, pack, behaviour string diff --git a/main.go b/main.go index 723ab7e19..943cfdf79 100755 --- a/main.go +++ b/main.go @@ -128,18 +128,17 @@ func main() { // Generate certificates if *genCert { - generateCertificates() + generateCertificates(getCertificatesDir()) os.Exit(0) } + // Check if certificates made with Agent <=1.2.7 needs to be moved over the new location + migrateCertificatesGeneratedWithOldAgentVersions(getCertificatesDir()) // Launch main loop in a goroutine go loop() // SetupSystray is the main thread - configDir, err := getDefaultArduinoCreateConfigDir() - if err != nil { - log.Panicf("Can't open defaul configuration dir: %s", err) - } + configDir := getDefaultConfigDir() Systray = systray.Systray{ Hibernate: *hibernate, Version: version + "-" + commit, @@ -150,25 +149,19 @@ func main() { ConfigDir: configDir, } - path, err := os.Executable() - if err != nil { - panic(err) - } - // If the executable is temporary, copy it to the full path, then restart - if strings.Contains(path, "-temp") { - newPath := updater.BinPath(path) - err := copyExe(path, newPath) - if err != nil { + if src, err := os.Executable(); err != nil { + panic(err) + } else if strings.Contains(src, "-temp") { + newPath := updater.BinPath(src) + if err := copyExe(src, newPath); err != nil { log.Println("Copy error: ", err) panic(err) } - Systray.Update(newPath) } else { // Otherwise copy to a path with -temp suffix - err := copyExe(path, updater.TempPath(path)) - if err != nil { + if err := copyExe(src, updater.TempPath(src)); err != nil { panic(err) } Systray.Start() @@ -197,15 +190,9 @@ func loop() { log.SetLevel(log.InfoLevel) log.SetOutput(os.Stdout) - // the important folders of the agent - src, _ := os.Executable() - srcPath := paths.New(src) // The path of the agent's binary - srcDir := srcPath.Parent() // The directory of the agent's binary - agentDir, err := getDefaultArduinoCreateConfigDir() - // Instantiate Tools Tools = tools.Tools{ - Directory: agentDir.String(), + Directory: getDataDir().String(), IndexURL: *indexURL, Logger: func(msg string) { mapD := map[string]string{"DownloadStatus": "Pending", "Msg": msg} @@ -216,6 +203,7 @@ func loop() { Tools.Init(requiredToolsAPILevel) // Let's handle the config + configDir := getDefaultConfigDir() var configPath *paths.Path // see if the env var is defined, if it is take the config from there, this will override the default path @@ -225,13 +213,14 @@ func loop() { log.Panicf("config from env var %s does not exists", envConfig) } log.Infof("using config from env variable: %s", configPath) - } else if defaultConfigPath := agentDir.Join("config.ini"); defaultConfigPath.Exist() { + } else if defaultConfigPath := configDir.Join("config.ini"); defaultConfigPath.Exist() { // by default take the config from the ~/.arduino-create/config.ini file configPath = defaultConfigPath log.Infof("using config from default: %s", configPath) } else { - // take the config from the old folder where the agent's binary sits - oldConfigPath := srcDir.Join("config.ini") + // Fall back to the old config.ini location + src, _ := os.Executable() + oldConfigPath := paths.New(src).Parent().Join("config.ini") if oldConfigPath.Exist() { err := oldConfigPath.CopyTo(defaultConfigPath) if err != nil { @@ -243,7 +232,7 @@ func loop() { } } if configPath == nil { - configPath = generateConfig(agentDir) + configPath = generateConfig(configDir) } // Parse the config.ini @@ -352,10 +341,7 @@ func loop() { if *crashreport { logFilename := "crashreport_" + time.Now().Format("20060102150405") + ".log" // handle logs directory creation - logsDir := agentDir.Join("logs") - if logsDir.NotExist() { - logsDir.Mkdir() - } + logsDir := getLogsDir() logFile, err := os.OpenFile(logsDir.Join(logFilename).String(), os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND, 0644) if err != nil { log.Print("Cannot create file used for crash-report") @@ -415,12 +401,13 @@ func loop() { r.POST("/update", updateHandler) // Mount goa handlers - goa := v2.Server(agentDir.String()) + goa := v2.Server(getDataDir().String()) r.Any("/v2/*path", gin.WrapH(goa)) go func() { // check if certificates exist; if not, use plain http - if srcDir.Join("cert.pem").NotExist() { + certsDir := getCertificatesDir() + if certsDir.Join("cert.pem").NotExist() { log.Error("Could not find HTTPS certificate. Using plain HTTP only.") return } @@ -431,7 +418,7 @@ func loop() { for i < end { i = i + 1 portSSL = ":" + strconv.Itoa(i) - if err := r.RunTLS(*address+portSSL, srcDir.Join("cert.pem").String(), srcDir.Join("key.pem").String()); err != nil { + if err := r.RunTLS(*address+portSSL, certsDir.Join("cert.pem").String(), certsDir.Join("key.pem").String()); err != nil { log.Printf("Error trying to bind to port: %v, so exiting...", err) continue } else { From 3d7780ff37818ae68177a8ad284bb14d5f208101 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Fri, 10 Feb 2023 17:45:05 +0100 Subject: [PATCH 081/233] Function rename to increase readability (#766) * Renamed function for clarity * Renamed method for clarity --- main.go | 6 +++--- systray/systray.go | 4 ++-- update.go | 5 +++-- updater/updater.go | 10 +++++----- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index 943cfdf79..1cd386e07 100755 --- a/main.go +++ b/main.go @@ -153,15 +153,15 @@ func main() { if src, err := os.Executable(); err != nil { panic(err) } else if strings.Contains(src, "-temp") { - newPath := updater.BinPath(src) + newPath := updater.RemoveTempSuffixFromPath(src) if err := copyExe(src, newPath); err != nil { log.Println("Copy error: ", err) panic(err) } - Systray.Update(newPath) + Systray.RestartWith(newPath) } else { // Otherwise copy to a path with -temp suffix - if err := copyExe(src, updater.TempPath(src)); err != nil { + if err := copyExe(src, updater.AddTempSuffixToPath(src)); err != nil { panic(err) } Systray.Start() diff --git a/systray/systray.go b/systray/systray.go index f3593c4b4..85656bbc9 100644 --- a/systray/systray.go +++ b/systray/systray.go @@ -92,8 +92,8 @@ func (s *Systray) Resume() { s.Restart() } -// Update restarts the program with the given path -func (s *Systray) Update(path string) { +// RestartWith restarts the program with the given path +func (s *Systray) RestartWith(path string) { s.path = path s.Restart() } diff --git a/update.go b/update.go index af86df7a3..377f5e353 100644 --- a/update.go +++ b/update.go @@ -61,8 +61,9 @@ func updateHandler(c *gin.Context) { return } - path = updater.TempPath(path) + path = updater.AddTempSuffixToPath(path) c.JSON(200, gin.H{"success": "Please wait a moment while the agent reboots itself"}) - Systray.Update(path) + + Systray.RestartWith(path) } diff --git a/updater/updater.go b/updater/updater.go index b04d43a7a..bfffe601d 100644 --- a/updater/updater.go +++ b/updater/updater.go @@ -68,8 +68,8 @@ var errHashMismatch = errors.New("new file hash mismatch after patch") var errDiffURLUndefined = errors.New("DiffURL is not defined, I cannot fetch and apply patch, reverting to full bin") var up = update.New() -// TempPath generates a temporary path for the executable (adding "-temp") -func TempPath(path string) string { +// AddTempSuffixToPath adds the "-temp" suffix to the path to an executable file (a ".exe" extension is replaced with "-temp.exe") +func AddTempSuffixToPath(path string) string { if filepath.Ext(path) == "exe" { path = strings.Replace(path, ".exe", "-temp.exe", -1) } else { @@ -79,8 +79,8 @@ func TempPath(path string) string { return path } -// BinPath generates the proper path for a temporary executable (removing "-temp") -func BinPath(path string) string { +// RemoveTempSuffixFromPath removes "-temp" suffix from the path to an executable file (a "-temp.exe" extension is replaced with ".exe") +func RemoveTempSuffixFromPath(path string) string { return strings.Replace(path, "-temp", "", -1) } @@ -234,7 +234,7 @@ func (u *Updater) update() error { return err } - path = TempPath(path) + path = AddTempSuffixToPath(path) old, err := os.Open(path) if err != nil { From 6c9aec14b0b92244b86ea74dbff13316d52e2f4d Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 14 Feb 2023 10:42:17 +0100 Subject: [PATCH 082/233] Refactor updater API (#767) * Moved updater business logic in updater package * Moved updater business logic in updater package * Added infrastructure for generic updater procedure * Factored fetchInfo function to retrieve information about the latest update * Inlined Updater.fetchInfo method * Renamed updater_macos -> updater_darwin and removed build flag --- main.go | 29 +--- update.go | 28 +--- updater/updater.go | 265 ++++---------------------------- updater/updater_darwin.go | 24 +++ updater/updater_default.go | 307 +++++++++++++++++++++++++++++++++++++ 5 files changed, 362 insertions(+), 291 deletions(-) create mode 100644 updater/updater_darwin.go create mode 100644 updater/updater_default.go diff --git a/main.go b/main.go index 1cd386e07..f6bc3afd6 100755 --- a/main.go +++ b/main.go @@ -22,7 +22,6 @@ import ( _ "embed" "encoding/json" "flag" - "io/ioutil" "os" "runtime" "runtime/debug" @@ -149,39 +148,15 @@ func main() { ConfigDir: configDir, } - // If the executable is temporary, copy it to the full path, then restart if src, err := os.Executable(); err != nil { panic(err) - } else if strings.Contains(src, "-temp") { - newPath := updater.RemoveTempSuffixFromPath(src) - if err := copyExe(src, newPath); err != nil { - log.Println("Copy error: ", err) - panic(err) - } - Systray.RestartWith(newPath) + } else if restartPath := updater.Start(src); restartPath != "" { + Systray.RestartWith(restartPath) } else { - // Otherwise copy to a path with -temp suffix - if err := copyExe(src, updater.AddTempSuffixToPath(src)); err != nil { - panic(err) - } Systray.Start() } } -func copyExe(from, to string) error { - data, err := ioutil.ReadFile(from) - if err != nil { - log.Println("Cannot read file: ", from) - return err - } - err = ioutil.WriteFile(to, data, 0755) - if err != nil { - log.Println("Cannot write file: ", to) - return err - } - return nil -} - func loop() { if *hibernate { return diff --git a/update.go b/update.go index 377f5e353..21569f36c 100644 --- a/update.go +++ b/update.go @@ -30,40 +30,16 @@ package main import ( - "os" - "github.com/arduino/arduino-create-agent/updater" "github.com/gin-gonic/gin" ) func updateHandler(c *gin.Context) { - - path, err := os.Executable() - - if err != nil { - c.JSON(500, gin.H{"error": err.Error()}) - return - } - - var up = &updater.Updater{ - CurrentVersion: version, - APIURL: *updateURL, - BinURL: *updateURL, - DiffURL: "", - Dir: "update/", - CmdName: *appName, - } - - err = up.BackgroundRun() - + restartPath, err := updater.CheckForUpdates(version, *updateURL, *updateURL, *appName) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } - - path = updater.AddTempSuffixToPath(path) - c.JSON(200, gin.H{"success": "Please wait a moment while the agent reboots itself"}) - - Systray.RestartWith(path) + Systray.RestartWith(restartPath) } diff --git a/updater/updater.go b/updater/updater.go index bfffe601d..b15afe3f8 100644 --- a/updater/updater.go +++ b/updater/updater.go @@ -16,121 +16,54 @@ package updater import ( - "bytes" - "compress/gzip" "crypto/sha256" "encoding/json" "errors" "fmt" "io" "net/http" - "os" - "path/filepath" "runtime" - "strings" - "github.com/kr/binarydist" log "github.com/sirupsen/logrus" - "gopkg.in/inconshreveable/go-update.v0" ) -// Update protocol: -// -// GET hk.heroku.com/hk/linux-amd64.json -// -// 200 ok -// { -// "Version": "2", -// "Sha256": "..." // base64 -// } -// -// then -// -// GET hkpatch.s3.amazonaws.com/hk/1/2/linux-amd64 -// -// 200 ok -// [bsdiff data] -// -// or -// -// GET hkdist.s3.amazonaws.com/hk/2/linux-amd64.gz -// -// 200 ok -// [gzipped executable data] -// -// +// Start checks if an update has been downloaded and if so returns the path to the +// binary to be executed to perform the update. If no update has been downloaded +// it returns an empty string. +func Start(src string) string { + return start(src) +} + +// CheckForUpdates checks if there is a new version of the binary available and +// if so downloads it. +func CheckForUpdates(currentVersion string, updateAPIURL, updateBinURL string, cmdName string) (string, error) { + return checkForUpdates(currentVersion, updateAPIURL, updateBinURL, cmdName) +} const ( plat = runtime.GOOS + "-" + runtime.GOARCH ) -var errHashMismatch = errors.New("new file hash mismatch after patch") -var errDiffURLUndefined = errors.New("DiffURL is not defined, I cannot fetch and apply patch, reverting to full bin") -var up = update.New() - -// AddTempSuffixToPath adds the "-temp" suffix to the path to an executable file (a ".exe" extension is replaced with "-temp.exe") -func AddTempSuffixToPath(path string) string { - if filepath.Ext(path) == "exe" { - path = strings.Replace(path, ".exe", "-temp.exe", -1) - } else { - path = path + "-temp" +func fetchInfo(updateAPIURL string, cmdName string) (*availableUpdateInfo, error) { + r, err := fetch(updateAPIURL + cmdName + "/" + plat + ".json") + if err != nil { + return nil, err } + defer r.Close() - return path -} - -// RemoveTempSuffixFromPath removes "-temp" suffix from the path to an executable file (a "-temp.exe" extension is replaced with ".exe") -func RemoveTempSuffixFromPath(path string) string { - return strings.Replace(path, "-temp", "", -1) -} - -// Updater is the configuration and runtime data for doing an update. -// -// Note that ApiURL, BinURL and DiffURL should have the same value if all files are available at the same location. -// -// Example: -// -// updater := &selfupdate.Updater{ -// CurrentVersion: version, -// ApiURL: "http://updates.yourdomain.com/", -// BinURL: "http://updates.yourdownmain.com/", -// DiffURL: "http://updates.yourdomain.com/", -// Dir: "update/", -// CmdName: "myapp", // app name -// } -// if updater != nil { -// go updater.BackgroundRun() -// } -type Updater struct { - CurrentVersion string // Currently running version. - APIURL string // Base URL for API requests (json files). - CmdName string // Command name is appended to the ApiURL like http://apiurl/CmdName/. This represents one binary. - BinURL string // Base URL for full binary downloads. - DiffURL string // Base URL for diff downloads. - Dir string // Directory to store selfupdate state. - Info struct { - Version string - Sha256 []byte + var res availableUpdateInfo + if err := json.NewDecoder(r).Decode(&res); err != nil { + return nil, err + } + if len(res.Sha256) != sha256.Size { + return nil, errors.New("bad cmd hash in info") } + return &res, nil } -// BackgroundRun starts the update check and apply cycle. -func (u *Updater) BackgroundRun() error { - os.MkdirAll(u.getExecRelativeDir(u.Dir), 0777) - if err := up.CanUpdate(); err != nil { - log.Println(err) - return err - } - //self, err := os.Executable() - //if err != nil { - // fail update, couldn't figure out path to self - //return - //} - // TODO(bgentry): logger isn't on Windows. Replace w/ proper error reports. - if err := u.update(); err != nil { - return err - } - return nil +type availableUpdateInfo struct { + Version string + Sha256 []byte } func fetch(url string) (io.ReadCloser, error) { @@ -144,147 +77,3 @@ func fetch(url string) (io.ReadCloser, error) { } return resp.Body, nil } - -func verifySha(bin []byte, sha []byte) bool { - h := sha256.New() - h.Write(bin) - return bytes.Equal(h.Sum(nil), sha) -} - -func (u *Updater) fetchAndApplyPatch(old io.Reader) ([]byte, error) { - if u.DiffURL == "" { - return nil, errDiffURLUndefined - } - r, err := fetch(u.DiffURL + u.CmdName + "/" + u.CurrentVersion + "/" + u.Info.Version + "/" + plat) - if err != nil { - return nil, err - } - defer r.Close() - var buf bytes.Buffer - err = binarydist.Patch(old, &buf, r) - return buf.Bytes(), err -} - -func (u *Updater) fetchAndVerifyPatch(old io.Reader) ([]byte, error) { - bin, err := u.fetchAndApplyPatch(old) - if err != nil { - return nil, err - } - if !verifySha(bin, u.Info.Sha256) { - return nil, errHashMismatch - } - return bin, nil -} - -func (u *Updater) fetchAndVerifyFullBin() ([]byte, error) { - bin, err := u.fetchBin() - if err != nil { - return nil, err - } - verified := verifySha(bin, u.Info.Sha256) - if !verified { - return nil, errHashMismatch - } - return bin, nil -} - -func (u *Updater) fetchBin() ([]byte, error) { - r, err := fetch(u.BinURL + u.CmdName + "/" + u.Info.Version + "/" + plat + ".gz") - if err != nil { - return nil, err - } - defer r.Close() - buf := new(bytes.Buffer) - gz, err := gzip.NewReader(r) - if err != nil { - return nil, err - } - if _, err = io.Copy(buf, gz); err != nil { - return nil, err - } - - return buf.Bytes(), nil -} - -func (u *Updater) fetchInfo() error { - r, err := fetch(u.APIURL + u.CmdName + "/" + plat + ".json") - if err != nil { - return err - } - defer r.Close() - err = json.NewDecoder(r).Decode(&u.Info) - if err != nil { - return err - } - if len(u.Info.Sha256) != sha256.Size { - return errors.New("bad cmd hash in info") - } - return nil -} - -func (u *Updater) getExecRelativeDir(dir string) string { - filename, _ := os.Executable() - path := filepath.Join(filepath.Dir(filename), dir) - return path -} - -func (u *Updater) update() error { - path, err := os.Executable() - if err != nil { - return err - } - - path = AddTempSuffixToPath(path) - - old, err := os.Open(path) - if err != nil { - return err - } - defer old.Close() - - err = u.fetchInfo() - if err != nil { - log.Println(err) - return err - } - if u.Info.Version == u.CurrentVersion { - return nil - } - bin, err := u.fetchAndVerifyPatch(old) - if err != nil { - switch err { - case errHashMismatch: - log.Println("update: hash mismatch from patched binary") - case errDiffURLUndefined: - log.Println("update: ", err) - default: - log.Println("update: patching binary, ", err) - } - - bin, err = u.fetchAndVerifyFullBin() - if err != nil { - if err == errHashMismatch { - log.Println("update: hash mismatch from full binary") - } else { - log.Println("update: fetching full binary,", err) - } - return err - } - } - - // close the old binary before installing because on windows - // it can't be renamed if a handle to the file is still open - old.Close() - - up.TargetPath = path - err, errRecover := up.FromStream(bytes.NewBuffer(bin)) - if errRecover != nil { - log.Errorf("update and recovery errors: %q %q", err, errRecover) - return fmt.Errorf("update and recovery errors: %q %q", err, errRecover) - } - if err != nil { - return err - } - - return nil -} diff --git a/updater/updater_darwin.go b/updater/updater_darwin.go new file mode 100644 index 000000000..45c67e5c7 --- /dev/null +++ b/updater/updater_darwin.go @@ -0,0 +1,24 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package updater + +func start(src string) string { + return "" +} + +func checkForUpdates(currentVersion string, updateAPIURL, updateBinURL string, cmdName string) (string, error) { + return "", nil +} diff --git a/updater/updater_default.go b/updater/updater_default.go new file mode 100644 index 000000000..4562907fc --- /dev/null +++ b/updater/updater_default.go @@ -0,0 +1,307 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +//go:build !darwin + +package updater + +import ( + "bytes" + "compress/gzip" + "crypto/sha256" + "errors" + "fmt" + "io" + "os" + "path/filepath" + "strings" + + "github.com/kr/binarydist" + log "github.com/sirupsen/logrus" + "gopkg.in/inconshreveable/go-update.v0" +) + +// Update protocol: +// +// GET hk.heroku.com/hk/linux-amd64.json +// +// 200 ok +// { +// "Version": "2", +// "Sha256": "..." // base64 +// } +// +// then +// +// GET hkpatch.s3.amazonaws.com/hk/1/2/linux-amd64 +// +// 200 ok +// [bsdiff data] +// +// or +// +// GET hkdist.s3.amazonaws.com/hk/2/linux-amd64.gz +// +// 200 ok +// [gzipped executable data] +// +// + +var errHashMismatch = errors.New("new file hash mismatch after patch") +var errDiffURLUndefined = errors.New("DiffURL is not defined, I cannot fetch and apply patch, reverting to full bin") +var up = update.New() + +func start(src string) string { + // If the executable is temporary, copy it to the full path, then restart + if strings.Contains(src, "-temp") { + newPath := removeTempSuffixFromPath(src) + if err := copyExe(src, newPath); err != nil { + log.Println("Copy error: ", err) + panic(err) + } + return newPath + } + + // Otherwise copy to a path with -temp suffix + if err := copyExe(src, addTempSuffixToPath(src)); err != nil { + panic(err) + } + return "" +} + +func checkForUpdates(currentVersion string, updateAPIURL, updateBinURL string, cmdName string) (string, error) { + path, err := os.Executable() + if err != nil { + return "", err + } + var up = &Updater{ + CurrentVersion: currentVersion, + APIURL: updateAPIURL, + BinURL: updateBinURL, + DiffURL: "", + Dir: "update/", + CmdName: cmdName, + } + + if err := up.BackgroundRun(); err != nil { + return "", err + } + return addTempSuffixToPath(path), nil +} + +func copyExe(from, to string) error { + data, err := os.ReadFile(from) + if err != nil { + log.Println("Cannot read file: ", from) + return err + } + err = os.WriteFile(to, data, 0755) + if err != nil { + log.Println("Cannot write file: ", to) + return err + } + return nil +} + +// addTempSuffixToPath adds the "-temp" suffix to the path to an executable file (a ".exe" extension is replaced with "-temp.exe") +func addTempSuffixToPath(path string) string { + if filepath.Ext(path) == "exe" { + path = strings.Replace(path, ".exe", "-temp.exe", -1) + } else { + path = path + "-temp" + } + + return path +} + +// removeTempSuffixFromPath removes "-temp" suffix from the path to an executable file (a "-temp.exe" extension is replaced with ".exe") +func removeTempSuffixFromPath(path string) string { + return strings.Replace(path, "-temp", "", -1) +} + +// Updater is the configuration and runtime data for doing an update. +// +// Note that ApiURL, BinURL and DiffURL should have the same value if all files are available at the same location. +// +// Example: +// +// updater := &selfupdate.Updater{ +// CurrentVersion: version, +// ApiURL: "http://updates.yourdomain.com/", +// BinURL: "http://updates.yourdownmain.com/", +// DiffURL: "http://updates.yourdomain.com/", +// Dir: "update/", +// CmdName: "myapp", // app name +// } +// if updater != nil { +// go updater.BackgroundRun() +// } +type Updater struct { + CurrentVersion string // Currently running version. + APIURL string // Base URL for API requests (json files). + CmdName string // Command name is appended to the ApiURL like http://apiurl/CmdName/. This represents one binary. + BinURL string // Base URL for full binary downloads. + DiffURL string // Base URL for diff downloads. + Dir string // Directory to store selfupdate state. + Info *availableUpdateInfo // Information about the available update. +} + +// BackgroundRun starts the update check and apply cycle. +func (u *Updater) BackgroundRun() error { + os.MkdirAll(u.getExecRelativeDir(u.Dir), 0777) + if err := up.CanUpdate(); err != nil { + log.Println(err) + return err + } + //self, err := os.Executable() + //if err != nil { + // fail update, couldn't figure out path to self + //return + //} + // TODO(bgentry): logger isn't on Windows. Replace w/ proper error reports. + if err := u.update(); err != nil { + return err + } + return nil +} + +func verifySha(bin []byte, sha []byte) bool { + h := sha256.New() + h.Write(bin) + return bytes.Equal(h.Sum(nil), sha) +} + +func (u *Updater) fetchAndApplyPatch(old io.Reader) ([]byte, error) { + if u.DiffURL == "" { + return nil, errDiffURLUndefined + } + r, err := fetch(u.DiffURL + u.CmdName + "/" + u.CurrentVersion + "/" + u.Info.Version + "/" + plat) + if err != nil { + return nil, err + } + defer r.Close() + var buf bytes.Buffer + err = binarydist.Patch(old, &buf, r) + return buf.Bytes(), err +} + +func (u *Updater) fetchAndVerifyPatch(old io.Reader) ([]byte, error) { + bin, err := u.fetchAndApplyPatch(old) + if err != nil { + return nil, err + } + if !verifySha(bin, u.Info.Sha256) { + return nil, errHashMismatch + } + return bin, nil +} + +func (u *Updater) fetchAndVerifyFullBin() ([]byte, error) { + bin, err := u.fetchBin() + if err != nil { + return nil, err + } + verified := verifySha(bin, u.Info.Sha256) + if !verified { + return nil, errHashMismatch + } + return bin, nil +} + +func (u *Updater) fetchBin() ([]byte, error) { + r, err := fetch(u.BinURL + u.CmdName + "/" + u.Info.Version + "/" + plat + ".gz") + if err != nil { + return nil, err + } + defer r.Close() + buf := new(bytes.Buffer) + gz, err := gzip.NewReader(r) + if err != nil { + return nil, err + } + if _, err = io.Copy(buf, gz); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +func (u *Updater) getExecRelativeDir(dir string) string { + filename, _ := os.Executable() + path := filepath.Join(filepath.Dir(filename), dir) + return path +} + +func (u *Updater) update() error { + path, err := os.Executable() + if err != nil { + return err + } + + path = addTempSuffixToPath(path) + + old, err := os.Open(path) + if err != nil { + return err + } + defer old.Close() + + info, err := fetchInfo(u.APIURL, u.CmdName) + if err != nil { + log.Println(err) + return err + } + u.Info = info + if u.Info.Version == u.CurrentVersion { + return nil + } + bin, err := u.fetchAndVerifyPatch(old) + if err != nil { + switch err { + case errHashMismatch: + log.Println("update: hash mismatch from patched binary") + case errDiffURLUndefined: + log.Println("update: ", err) + default: + log.Println("update: patching binary, ", err) + } + + bin, err = u.fetchAndVerifyFullBin() + if err != nil { + if err == errHashMismatch { + log.Println("update: hash mismatch from full binary") + } else { + log.Println("update: fetching full binary,", err) + } + return err + } + } + + // close the old binary before installing because on windows + // it can't be renamed if a handle to the file is still open + old.Close() + + up.TargetPath = path + err, errRecover := up.FromStream(bytes.NewBuffer(bin)) + if errRecover != nil { + log.Errorf("update and recovery errors: %q %q", err, errRecover) + return fmt.Errorf("update and recovery errors: %q %q", err, errRecover) + } + if err != nil { + return err + } + + return nil +} From 9d3750cedf7a7f19e9df73f2137c987f0aabac52 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 15 Feb 2023 14:55:15 +0100 Subject: [PATCH 083/233] Fix macosx ventura updater (#768) * Upload the signed bundle to s3 (#756) * remove some code duplication regarding prerelease calculation * add upload of the notarized bundle to s3 download bucket * add upload of the notarized bundle to s3 download bucket * add json to enable autoupdate with the new agent logic (#759) * add json to enable autoupdate with the new agent logic * binary output of the archive https://unix.stackexchange.com/questions/3675/how-can-i-get-a-base64-encoded-shax-on-the-cli * workaround to allow darwin-arm64 to autoupdate * parallelize bundle creation and notarization. This will be helpful if/when we decide to build for darwin-arm64. For now this is useful because we do not offer a binary for m1 yet, `runtime.GOARCH` on an m1 machine returns ARM64, so the call for the update file would fail * Implemented the autoupdater for MacOS * Added more logging and fixed upgrade procedure * Use MacOS openApplicationAtURL syscall to re-run updated app * Bump minimum required macosx version to 10.15 This is required because the auto-update uses the function warning: 'openApplicationAtURL:configuration:completionHandler:' is only available on macOS 10.15 or newer [-Wunguarded-availability-new] * Removed diff-based updates * Fixed update URL for different update methods * fix invalid workflow * Always complete the old auto-upgrade procedure This is required for clients upgrading from versions <=1.2.7 * Moved the syscall to openApplicationAtURL inside Systray * Added fallback restart for macosx. * added some more logging --------- Co-authored-by: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .github/workflows/publish-go-tester-task.yml | 6 +- .github/workflows/release.yml | 89 ++++++++---- go.mod | 2 +- systray/exec_darwin.go | 74 ++++++++++ systray/exec_default.go | 26 ++++ systray/systray.go | 4 +- update.go | 8 +- updater/updater.go | 41 +++++- updater/updater_darwin.go | 142 ++++++++++++++++++- updater/updater_default.go | 101 ++----------- 10 files changed, 363 insertions(+), 130 deletions(-) create mode 100644 systray/exec_darwin.go create mode 100644 systray/exec_default.go diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 69efdba05..3b5f871d0 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -132,9 +132,9 @@ jobs: - name: Build the Agent for macos env: - MACOSX_DEPLOYMENT_TARGET: 10.11 # minimum supported version for mac - CGO_CFLAGS: -mmacosx-version-min=10.11 - CGO_LDFLAGS: -mmacosx-version-min=10.11 + MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac + CGO_CFLAGS: -mmacosx-version-min=10.15 + CGO_LDFLAGS: -mmacosx-version-min=10.15 run: task go:build if: runner.os == 'macOS' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e6837e56..9ac64657f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,7 @@ on: env: # As defined by the Taskfile's PROJECT_NAME variable PROJECT_NAME: arduino-create-agent - TARGET: "/CreateAgent/Stable" + TARGET: "/CreateAgent/Stable/" OLD_TARGET: "/CreateBridge/" # compatibility with older releases (we can't change config.ini) VERSION_TARGET: "arduino-create-static/agent-metadata/" AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} @@ -26,6 +26,8 @@ env: jobs: # The build job is responsible for: configuring the environment, testing and compiling process build: + outputs: + prerelease: ${{ steps.prerelease.outputs.IS_PRE }} strategy: matrix: os: [ubuntu-20.04, windows-2019, macos-12] @@ -110,9 +112,9 @@ jobs: - name: Build the Agent for macos env: - MACOSX_DEPLOYMENT_TARGET: 10.11 # minimum supported version for mac - CGO_CFLAGS: -mmacosx-version-min=10.11 - CGO_LDFLAGS: -mmacosx-version-min=10.11 + MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac + CGO_CFLAGS: -mmacosx-version-min=10.15 + CGO_LDFLAGS: -mmacosx-version-min=10.15 run: task go:build if: matrix.os == 'macos-12' @@ -121,6 +123,14 @@ jobs: run: go-selfupdate ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} if: matrix.arch != '-386' && steps.prerelease.outputs.IS_PRE != 'true' + # for now we do not distribute m1 build, this is a workaround for now + - name: Copy autoupdate file for darwin-arm64 (m1 arch) + working-directory: public/ + run: | + cp darwin-amd64.json darwin-arm64.json + cp ${TAG_VERSION}/darwin-amd64.gz ${TAG_VERSION}/darwin-arm64.gz + if: matrix.os == 'macos-12' && steps.prerelease.outputs.IS_PRE != 'true' + - name: Create autoupdate files for win32 run: go-selfupdate -platform windows${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} if: matrix.arch == '-386' && matrix.os == 'windows-2019' && steps.prerelease.outputs.IS_PRE != 'true' @@ -142,6 +152,11 @@ jobs: create-macos-bundle: needs: build + # for not they are exaclty the same + strategy: + matrix: + arch: [amd64, arm64] + runs-on: macos-12 env: EXE_PATH: "skel/ArduinoCreateAgent.app/Contents/MacOS/" @@ -156,7 +171,7 @@ jobs: - name: Download artifact uses: actions/download-artifact@v3 with: - name: ${{ env.PROJECT_NAME }}-macos-12-amd64 + name: ${{ env.PROJECT_NAME }}-macos-12-amd64 # if we want to support darwin-arm64 in the future for real this has to change. path: ${{ env.EXE_PATH }} - name: Remove placeholder file @@ -195,31 +210,37 @@ jobs: EOF - name: Tar bundle to keep permissions - run: tar -cvf ArduinoCreateAgent.app.tar -C skel/ . + run: tar -cvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar -C skel/ . - name: Upload artifacts uses: actions/upload-artifact@v3 with: if-no-files-found: error - name: ArduinoCreateAgent.app - path: ArduinoCreateAgent.app.tar + name: ArduinoCreateAgent.app_${{ matrix.arch }} + path: ArduinoCreateAgent.app_${{ matrix.arch }}.tar - # The notarize-macos job will download the macos bundle from the previous job, sign, notarize and re-upload it. + # The notarize-macos job will download the macos bundle from the previous job, sign, notarize and re-upload it, uploading it also on s3 download servers for the autoupdate. notarize-macos: name: Notarize bundle + + # for not they are exaclty the same + strategy: + matrix: + arch: [amd64, arm64] + runs-on: macos-12 env: GON_PATH: ${{ github.workspace }}/gon - needs: create-macos-bundle + needs: [build, create-macos-bundle] steps: - name: Download artifact uses: actions/download-artifact@v3 with: - name: ArduinoCreateAgent.app + name: ArduinoCreateAgent.app_${{ matrix.arch }} - name: un-Tar bundle - run: tar -xvf ArduinoCreateAgent.app.tar + run: tar -xvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar - name: Import Code-Signing Certificates run: | @@ -270,18 +291,37 @@ jobs: # Ask Gon for zip output to force notarization process to take place. # The CI will upload the zip output zip { - output_path = "ArduinoCreateAgent.app_notarized.zip" + output_path = "ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip" } EOF - name: Sign and notarize binary run: gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}" + + - name: Upload autoupdate bundle to Arduino downloads servers + run: aws s3 cp ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}${GITHUB_REF/refs\/tags\//}/ # the version should be created in th the build job + if: ${{ needs.build.outputs.prerelease != 'true' }} + + - name: Generate json file used for the new autoupdate + run: | + cat > darwin-${{ matrix.arch }}-bundle.json </tmp/semver && chmod +x /tmp/semver - if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "IS_PRE=true" >> $GITHUB_OUTPUT; fi - # mandatory step because upload-release-action does not support multiple folders - name: prepare artifacts for the release run: | @@ -562,7 +595,7 @@ jobs: release_name: ${{ github.ref }} body: ${{ steps.release_body.outputs.RBODY}} draft: false - prerelease: ${{ steps.prerelease.outputs.IS_PRE }} + prerelease: ${{ needs.build.outputs.prerelease }} - name: Upload release files on Github uses: svenstaro/upload-release-action@v2 @@ -574,10 +607,10 @@ jobs: - name: Upload release files on Arduino downloads servers run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }} - if: steps.prerelease.outputs.IS_PRE != 'true' + if: ${{ needs.build.outputs.prerelease != 'true' }} - name: Update version file (used by frontend to trigger autoupdate and create filename) run: | echo {\"Version\": \"${GITHUB_REF##*/}\"} > /tmp/agent-version.json aws s3 cp /tmp/agent-version.json s3://${{ env.VERSION_TARGET }} - if: steps.prerelease.outputs.IS_PRE != 'true' + if: ${{ needs.build.outputs.prerelease != 'true' }} diff --git a/go.mod b/go.mod index 8f84b2819..ed6eb8fee 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,6 @@ require ( github.com/gin-gonic/gin v1.8.1 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 - github.com/kr/binarydist v0.1.0 github.com/mattn/go-shellwords v1.0.12 github.com/mitchellh/go-homedir v1.1.0 github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 @@ -56,6 +55,7 @@ require ( github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.15.13 // indirect + github.com/kr/binarydist v0.1.0 // indirect github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect diff --git a/systray/exec_darwin.go b/systray/exec_darwin.go new file mode 100644 index 000000000..ba66e0c39 --- /dev/null +++ b/systray/exec_darwin.go @@ -0,0 +1,74 @@ +package systray + +/* +#cgo CFLAGS: -x objective-c +#cgo LDFLAGS: -framework Cocoa +#import + +char **makeCharArray(int size) { + return calloc(sizeof(char*), size); +} + +void setCharArray(char **a, int n, char *s) { + a[n] = s; +} + +void freeCharArray(char **a, int size) { + int i; + for (i = 0; i < size; i++) { + free(a[i]); + } + free(a); +} + +void runApplication(const char *path, const char **argv, int argc) { + NSMutableArray *stringArray = [NSMutableArray array]; + for (int i=0; i *arguments = [NSArray arrayWithArray:stringArray]; + + NSWorkspace *ws = [NSWorkspace sharedWorkspace]; + NSURL *url = [NSURL fileURLWithPath:@(path) isDirectory:NO]; + + NSWorkspaceOpenConfiguration* configuration = [NSWorkspaceOpenConfiguration new]; + //[configuration setEnvironment:env]; + [configuration setPromptsUserIfNeeded:YES]; + [configuration setCreatesNewApplicationInstance:YES]; + [configuration setArguments:arguments]; + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + [ws openApplicationAtURL:url configuration:configuration completionHandler:^(NSRunningApplication* app, NSError* error) { + dispatch_semaphore_signal(semaphore); + }]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); +} +*/ +import "C" +import ( + "os/exec" + "path/filepath" + + "github.com/sirupsen/logrus" +) + +func execApp(path string, args ...string) error { + if filepath.Ext(path) != ".app" { + // If not .app, fallback to standard process execution + logrus.WithField("path", path).WithField("args", args).Info("Running new app with os/exec.Exec") + cmd := exec.Command(path, args...) + return cmd.Start() + } + + logrus.WithField("path", path).WithField("args", args).Info("Running new app with openApplicationAtURL") + argc := C.int(len(args)) + argv := C.makeCharArray(argc) + for i, arg := range args { + C.setCharArray(argv, C.int(i), C.CString(arg)) + } + + C.runApplication(C.CString(path), argv, argc) + + C.freeCharArray(argv, argc) + return nil +} diff --git a/systray/exec_default.go b/systray/exec_default.go new file mode 100644 index 000000000..ea28618b5 --- /dev/null +++ b/systray/exec_default.go @@ -0,0 +1,26 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +//go:build !darwin + +package systray + +import "os/exec" + +// default execApp from golang +func execApp(path string, args ...string) error { + cmd := exec.Command(path, args...) + return cmd.Start() +} diff --git a/systray/systray.go b/systray/systray.go index 85656bbc9..4df4fadbc 100644 --- a/systray/systray.go +++ b/systray/systray.go @@ -18,7 +18,6 @@ package systray import ( "fmt" "os" - "os/exec" "strings" "github.com/arduino/go-paths-helper" @@ -69,8 +68,7 @@ func (s *Systray) Restart() { } // Launch executable - cmd := exec.Command(s.path, args...) - err := cmd.Start() + err := execApp(s.path, args...) if err != nil { log.Printf("Error restarting process: %v\n", err) return diff --git a/update.go b/update.go index 21569f36c..33c028bce 100644 --- a/update.go +++ b/update.go @@ -35,11 +35,15 @@ import ( ) func updateHandler(c *gin.Context) { - restartPath, err := updater.CheckForUpdates(version, *updateURL, *updateURL, *appName) + restartPath, err := updater.CheckForUpdates(version, *updateURL, *appName) if err != nil { c.JSON(500, gin.H{"error": err.Error()}) return } c.JSON(200, gin.H{"success": "Please wait a moment while the agent reboots itself"}) - Systray.RestartWith(restartPath) + if restartPath == "quit" { + Systray.Quit() + } else { + Systray.RestartWith(restartPath) + } } diff --git a/updater/updater.go b/updater/updater.go index b15afe3f8..db4e5454f 100644 --- a/updater/updater.go +++ b/updater/updater.go @@ -22,7 +22,10 @@ import ( "fmt" "io" "net/http" + "os" + "path/filepath" "runtime" + "strings" log "github.com/sirupsen/logrus" ) @@ -36,16 +39,16 @@ func Start(src string) string { // CheckForUpdates checks if there is a new version of the binary available and // if so downloads it. -func CheckForUpdates(currentVersion string, updateAPIURL, updateBinURL string, cmdName string) (string, error) { - return checkForUpdates(currentVersion, updateAPIURL, updateBinURL, cmdName) +func CheckForUpdates(currentVersion string, updateURL string, cmdName string) (string, error) { + return checkForUpdates(currentVersion, updateURL, cmdName) } const ( plat = runtime.GOOS + "-" + runtime.GOARCH ) -func fetchInfo(updateAPIURL string, cmdName string) (*availableUpdateInfo, error) { - r, err := fetch(updateAPIURL + cmdName + "/" + plat + ".json") +func fetchInfo(updateAPIURL string) (*availableUpdateInfo, error) { + r, err := fetch(updateAPIURL) if err != nil { return nil, err } @@ -77,3 +80,33 @@ func fetch(url string) (io.ReadCloser, error) { } return resp.Body, nil } + +// addTempSuffixToPath adds the "-temp" suffix to the path to an executable file (a ".exe" extension is replaced with "-temp.exe") +func addTempSuffixToPath(path string) string { + if filepath.Ext(path) == "exe" { + path = strings.Replace(path, ".exe", "-temp.exe", -1) + } else { + path = path + "-temp" + } + + return path +} + +// removeTempSuffixFromPath removes "-temp" suffix from the path to an executable file (a "-temp.exe" extension is replaced with ".exe") +func removeTempSuffixFromPath(path string) string { + return strings.Replace(path, "-temp", "", -1) +} + +func copyExe(from, to string) error { + data, err := os.ReadFile(from) + if err != nil { + log.Println("Cannot read file: ", from) + return err + } + err = os.WriteFile(to, data, 0755) + if err != nil { + log.Println("Cannot write file: ", to) + return err + } + return nil +} diff --git a/updater/updater_darwin.go b/updater/updater_darwin.go index 45c67e5c7..f0bc6e5ed 100644 --- a/updater/updater_darwin.go +++ b/updater/updater_darwin.go @@ -15,10 +15,148 @@ package updater +import ( + "bytes" + "context" + "crypto/sha256" + "fmt" + "io" + "os" + "runtime" + "strings" + + "github.com/arduino/go-paths-helper" + "github.com/codeclysm/extract/v3" + "github.com/sirupsen/logrus" + log "github.com/sirupsen/logrus" +) + func start(src string) string { + if strings.Contains(src, "-temp") { + // This is required to transition from the previous auto-update system to the new one. + // Updating from version <=1.2.7 will produce the `ArduinoCreateAgent-temp` file and we should + // complete the upgrade by copying the `ArduinoCreateAgent-temp` executable back to the original. + // + // This procedure will be automatically skipped starting from version >1.2.7. + + newPath := removeTempSuffixFromPath(src) + if err := copyExe(src, newPath); err != nil { + log.Println("Copy error: ", err) + panic(err) + } + return newPath + } + return "" } -func checkForUpdates(currentVersion string, updateAPIURL, updateBinURL string, cmdName string) (string, error) { - return "", nil +func checkForUpdates(currentVersion string, updateURL string, cmdName string) (string, error) { + executablePath, err := os.Executable() + if err != nil { + return "", fmt.Errorf("could not app path: %w", err) + } + currentAppPath := paths.New(executablePath).Parent().Parent().Parent() + if currentAppPath.Ext() != ".app" { + return "", fmt.Errorf("could not find app root in %s", executablePath) + } + oldAppPath := currentAppPath.Parent().Join("ArdiunoCreateAgent.old.app") + if oldAppPath.Exist() { + return "", fmt.Errorf("temp app already exists: %s, cannot update", oldAppPath) + } + + // Fetch information about updates + + // updateURL: "https://downloads.arduino.cc/" + // cmdName: "CreateAgent/Stable" + // plat: "darwin-amd64" + // info URL: "https://downloads.arduino.cc/CreateAgent/Stable/darwin-amd64-bundle.json" + infoURL := updateURL + cmdName + "/" + plat + "-bundle.json" + info, err := fetchInfo(infoURL) + if err != nil { + return "", err + } + if info.Version == currentVersion { + // No updates available, bye bye + return "", nil + } + + tmp := paths.TempDir().Join("arduino-create-agent") + if err := tmp.MkdirAll(); err != nil { + return "", err + } + tmpZip := tmp.Join("update.zip") + tmpAppPath := tmp.Join("ArduinoCreateAgent-update.app") + defer tmp.RemoveAll() + + // Download the update. + + // updateURL: "https://downloads.arduino.cc/" + // cmdName == "CreateAgent/Stable" + // info.Version == "1.2.8" + // runtime.GOARCH: "amd64" + // downloadURL: "https://downloads.arduino.cc/CreateAgent/Stable/1.2.8/ArduinoCreateAgent.app_arm64_notarized.zip" + downloadURL := updateURL + cmdName + "/" + info.Version + "/ArduinoCreateAgent.app_" + runtime.GOARCH + "_notarized.zip" + logrus.WithField("url", downloadURL).Info("Downloading update") + download, err := fetch(downloadURL) + if err != nil { + return "", err + } + defer download.Close() + + f, err := tmpZip.Create() + if err != nil { + return "", err + } + defer f.Close() + + sha := sha256.New() + if _, err := io.Copy(io.MultiWriter(sha, f), download); err != nil { + return "", err + } + f.Close() + + // Check the hash + if s := sha.Sum(nil); !bytes.Equal(s, info.Sha256) { + return "", fmt.Errorf("bad hash: %s (expected %s)", s, info.Sha256) + } + + // Unzip the update + logrus.WithField("tmpDir", tmpAppPath).Info("Unzipping update") + if err := tmpAppPath.MkdirAll(); err != nil { + return "", fmt.Errorf("could not create tmp dir to unzip update: %w", err) + } + + f, err = tmpZip.Open() + if err != nil { + return "", fmt.Errorf("could not open archive for unzip: %w", err) + } + defer f.Close() + if err := extract.Archive(context.Background(), f, tmpAppPath.String(), nil); err != nil { + return "", fmt.Errorf("extracting archive: %w", err) + } + + // Rename current app as .old + logrus.WithField("from", currentAppPath).WithField("to", oldAppPath).Info("Renaming old app") + if err := currentAppPath.Rename(oldAppPath); err != nil { + return "", fmt.Errorf("could not rename old app as .old: %w", err) + } + + // Install new app + logrus.WithField("from", tmpAppPath).WithField("to", currentAppPath).Info("Copying updated app") + if err := tmpAppPath.CopyDirTo(currentAppPath); err != nil { + // Try rollback changes + _ = currentAppPath.RemoveAll() + _ = oldAppPath.Rename(currentAppPath) + return "", fmt.Errorf("could not install app: %w", err) + } + + // Remove old app + logrus.WithField("to", oldAppPath).Info("Removing old app") + _ = oldAppPath.RemoveAll() + + // Restart agent + logrus.WithField("path", currentAppPath).Info("Running new app") + + // Close old agent + return currentAppPath.String(), nil } diff --git a/updater/updater_default.go b/updater/updater_default.go index 4562907fc..2cf01b8ad 100644 --- a/updater/updater_default.go +++ b/updater/updater_default.go @@ -28,7 +28,6 @@ import ( "path/filepath" "strings" - "github.com/kr/binarydist" log "github.com/sirupsen/logrus" "gopkg.in/inconshreveable/go-update.v0" ) @@ -60,7 +59,6 @@ import ( // var errHashMismatch = errors.New("new file hash mismatch after patch") -var errDiffURLUndefined = errors.New("DiffURL is not defined, I cannot fetch and apply patch, reverting to full bin") var up = update.New() func start(src string) string { @@ -81,16 +79,14 @@ func start(src string) string { return "" } -func checkForUpdates(currentVersion string, updateAPIURL, updateBinURL string, cmdName string) (string, error) { +func checkForUpdates(currentVersion string, updateURL string, cmdName string) (string, error) { path, err := os.Executable() if err != nil { return "", err } var up = &Updater{ CurrentVersion: currentVersion, - APIURL: updateAPIURL, - BinURL: updateBinURL, - DiffURL: "", + UpdateURL: updateURL, Dir: "update/", CmdName: cmdName, } @@ -101,36 +97,6 @@ func checkForUpdates(currentVersion string, updateAPIURL, updateBinURL string, c return addTempSuffixToPath(path), nil } -func copyExe(from, to string) error { - data, err := os.ReadFile(from) - if err != nil { - log.Println("Cannot read file: ", from) - return err - } - err = os.WriteFile(to, data, 0755) - if err != nil { - log.Println("Cannot write file: ", to) - return err - } - return nil -} - -// addTempSuffixToPath adds the "-temp" suffix to the path to an executable file (a ".exe" extension is replaced with "-temp.exe") -func addTempSuffixToPath(path string) string { - if filepath.Ext(path) == "exe" { - path = strings.Replace(path, ".exe", "-temp.exe", -1) - } else { - path = path + "-temp" - } - - return path -} - -// removeTempSuffixFromPath removes "-temp" suffix from the path to an executable file (a "-temp.exe" extension is replaced with ".exe") -func removeTempSuffixFromPath(path string) string { - return strings.Replace(path, "-temp", "", -1) -} - // Updater is the configuration and runtime data for doing an update. // // Note that ApiURL, BinURL and DiffURL should have the same value if all files are available at the same location. @@ -139,9 +105,7 @@ func removeTempSuffixFromPath(path string) string { // // updater := &selfupdate.Updater{ // CurrentVersion: version, -// ApiURL: "http://updates.yourdomain.com/", -// BinURL: "http://updates.yourdownmain.com/", -// DiffURL: "http://updates.yourdomain.com/", +// UpdateURL: "http://updates.yourdomain.com/", // Dir: "update/", // CmdName: "myapp", // app name // } @@ -150,10 +114,8 @@ func removeTempSuffixFromPath(path string) string { // } type Updater struct { CurrentVersion string // Currently running version. - APIURL string // Base URL for API requests (json files). + UpdateURL string // Base URL for API requests (json files). CmdName string // Command name is appended to the ApiURL like http://apiurl/CmdName/. This represents one binary. - BinURL string // Base URL for full binary downloads. - DiffURL string // Base URL for diff downloads. Dir string // Directory to store selfupdate state. Info *availableUpdateInfo // Information about the available update. } @@ -183,31 +145,6 @@ func verifySha(bin []byte, sha []byte) bool { return bytes.Equal(h.Sum(nil), sha) } -func (u *Updater) fetchAndApplyPatch(old io.Reader) ([]byte, error) { - if u.DiffURL == "" { - return nil, errDiffURLUndefined - } - r, err := fetch(u.DiffURL + u.CmdName + "/" + u.CurrentVersion + "/" + u.Info.Version + "/" + plat) - if err != nil { - return nil, err - } - defer r.Close() - var buf bytes.Buffer - err = binarydist.Patch(old, &buf, r) - return buf.Bytes(), err -} - -func (u *Updater) fetchAndVerifyPatch(old io.Reader) ([]byte, error) { - bin, err := u.fetchAndApplyPatch(old) - if err != nil { - return nil, err - } - if !verifySha(bin, u.Info.Sha256) { - return nil, errHashMismatch - } - return bin, nil -} - func (u *Updater) fetchAndVerifyFullBin() ([]byte, error) { bin, err := u.fetchBin() if err != nil { @@ -221,7 +158,7 @@ func (u *Updater) fetchAndVerifyFullBin() ([]byte, error) { } func (u *Updater) fetchBin() ([]byte, error) { - r, err := fetch(u.BinURL + u.CmdName + "/" + u.Info.Version + "/" + plat + ".gz") + r, err := fetch(u.UpdateURL + u.CmdName + "/" + u.Info.Version + "/" + plat + ".gz") if err != nil { return nil, err } @@ -258,7 +195,8 @@ func (u *Updater) update() error { } defer old.Close() - info, err := fetchInfo(u.APIURL, u.CmdName) + infoURL := u.UpdateURL + u.CmdName + "/" + plat + ".json" + info, err := fetchInfo(infoURL) if err != nil { log.Println(err) return err @@ -267,26 +205,15 @@ func (u *Updater) update() error { if u.Info.Version == u.CurrentVersion { return nil } - bin, err := u.fetchAndVerifyPatch(old) - if err != nil { - switch err { - case errHashMismatch: - log.Println("update: hash mismatch from patched binary") - case errDiffURLUndefined: - log.Println("update: ", err) - default: - log.Println("update: patching binary, ", err) - } - bin, err = u.fetchAndVerifyFullBin() - if err != nil { - if err == errHashMismatch { - log.Println("update: hash mismatch from full binary") - } else { - log.Println("update: fetching full binary,", err) - } - return err + bin, err := u.fetchAndVerifyFullBin() + if err != nil { + if err == errHashMismatch { + log.Println("update: hash mismatch from full binary") + } else { + log.Println("update: fetching full binary,", err) } + return err } // close the old binary before installing because on windows From 477900cb7cfb1fd2879239f187fb179fd24b565b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 01:43:13 +0000 Subject: [PATCH 084/233] Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ed6eb8fee..3ee50bd1e 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 github.com/sirupsen/logrus v1.9.0 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 - github.com/stretchr/testify v1.8.1 + github.com/stretchr/testify v1.8.2 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 diff --git a/go.sum b/go.sum index 084a6bcd9..282487fa9 100644 --- a/go.sum +++ b/go.sum @@ -303,8 +303,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From f931dd1b07f31d5fcf3319fb64525cb2b179cd2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 00:58:56 +0000 Subject: [PATCH 085/233] Bump actions/setup-go from 3 to 4 Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-go-dependencies-task.yml | 4 ++-- .github/workflows/check-go-task.yml | 10 +++++----- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 2a78cbba5..b460b96fa 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -79,7 +79,7 @@ jobs: version: 3.x - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} @@ -129,7 +129,7 @@ jobs: version: 3.x - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 7d87493dc..32c039526 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -71,7 +71,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} @@ -108,7 +108,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} @@ -145,7 +145,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} @@ -182,7 +182,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} @@ -219,7 +219,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 3b5f871d0..fb755a25c 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -89,7 +89,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9ac64657f..65a01c868 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -66,7 +66,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 7e357d588..b257b505f 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -75,7 +75,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index a2fbb29c4..fa4a67854 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -81,7 +81,7 @@ jobs: uses: actions/checkout@v3 - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v4 with: go-version: ${{ env.GO_VERSION }} From 80869a8e6e1ba96e0f4fe405f725fca3619f7320 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Mar 2023 13:05:21 +0100 Subject: [PATCH 086/233] Bump golang.org/x/crypto from 0.5.0 to 0.7.0 (#774) * Bump golang.org/x/crypto from 0.5.0 to 0.7.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.5.0 to 0.7.0. - [Release notes](https://github.com/golang/crypto/releases) - [Commits](https://github.com/golang/crypto/compare/v0.5.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * bump license --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../golang.org/x/crypto/internal/alias.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +++--- .../golang.org/x/crypto/openpgp/armor.dep.yml | 6 +++--- .../x/crypto/openpgp/elgamal.dep.yml | 6 +++--- .../golang.org/x/crypto/openpgp/errors.dep.yml | 6 +++--- .../golang.org/x/crypto/openpgp/packet.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/net/bpf.dep.yml | 6 +++--- .../go/golang.org/x/net/http2.dep.yml | 6 +++--- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +++--- .../golang.org/x/net/internal/socket.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv4.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv6.dep.yml | 6 +++--- .../go/golang.org/x/sys/unix.dep.yml | 6 +++--- .../x/text/internal/language.dep.yml | 8 ++++---- .../x/text/internal/language/compact.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +++--- .../go/golang.org/x/text/language.dep.yml | 6 +++--- go.mod | 8 ++++---- go.sum | 18 +++++++++--------- 28 files changed, 92 insertions(+), 92 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index e437620c6..ccdcc28b6 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.5.0 +version: v0.7.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index a91dbbff2..281cf1356 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.5.0 +version: v0.7.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index 88a228273..976d438f8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.5.0 +version: v0.7.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml index 38956d74d..55037fbb5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/internal/alias -version: v0.5.0 +version: v0.7.0 type: go summary: Package alias implements memory aliasing tests. homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 67d47e2b5..c140061fa 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.5.0 +version: v0.7.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index e23dd6fff..7dbc70807 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.5.0 +version: v0.7.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index a9914bf6c..323b3afaf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.5.0 +version: v0.7.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index df6c9aac0..c7f559939 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.5.0 +version: v0.7.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index 16b7f46d5..b4cc72e8b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.5.0 +version: v0.7.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index 59f41c93b..f144d2e17 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.5.0 +version: v0.7.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 45fe96614..72254ec5f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.5.0 +version: v0.7.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 05c283be8..8e7ed4724 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.5.0 +version: v0.7.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index fd92acd75..edefe6a43 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.5.0 +version: v0.7.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 8466272bb..59f920bd9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.5.0 +version: v0.7.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.5.0/LICENSE +- sources: crypto@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.5.0/PATENTS +- sources: crypto@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index f4e0e9d24..2aa2947a4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.5.0 +version: v0.8.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index bafd659d1..404152e81 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.5.0 +version: v0.8.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index be8410d64..809de61b4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.5.0 +version: v0.8.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index d3d8c3ed5..da0049ff5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.5.0 +version: v0.8.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 10a6eabf4..2c8cf7a27 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.5.0 +version: v0.8.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index 55705df21..405030088 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.5.0 +version: v0.8.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 6f24a2bb0..55ca37ef9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.5.0 +version: v0.8.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.5.0/LICENSE +- sources: net@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.5.0/PATENTS +- sources: net@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index ccc97728d..7f070cd6e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.4.0 +version: v0.6.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.4.0/LICENSE +- sources: sys@v0.6.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.4.0/PATENTS +- sources: sys@v0.6.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index b54a01dbe..c7d627413 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.6.0 +version: v0.8.0 type: go -summary: +summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.6.0/LICENSE +- sources: text@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.6.0/PATENTS +- sources: text@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index f18063f40..dd93ed6ad 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.6.0 +version: v0.8.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.6.0/LICENSE +- sources: text@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.6.0/PATENTS +- sources: text@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index b26a50506..3abc2d58e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.6.0 +version: v0.8.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.6.0/LICENSE +- sources: text@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.6.0/PATENTS +- sources: text@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index 4467b22f4..769ed4f7b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.6.0 +version: v0.8.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.6.0/LICENSE +- sources: text@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.6.0/PATENTS +- sources: text@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 3ee50bd1e..299fdc387 100644 --- a/go.mod +++ b/go.mod @@ -24,8 +24,8 @@ require ( go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.5.0 - golang.org/x/sys v0.4.0 + golang.org/x/crypto v0.7.0 + golang.org/x/sys v0.6.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -71,8 +71,8 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect - golang.org/x/net v0.5.0 // indirect - golang.org/x/text v0.6.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/text v0.8.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 282487fa9..1c976765e 100644 --- a/go.sum +++ b/go.sum @@ -345,8 +345,8 @@ golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -367,8 +367,8 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -396,16 +396,16 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.4.0 h1:O7UWfv5+A2qiuulQk30kVinPoMtoIPeVaKLEgLpVkvg= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From ef972595a63c624d709301d9939b540ed6869cb8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 11:13:40 +0100 Subject: [PATCH 087/233] Bump actions/stale from 7 to 8 (#777) Bumps [actions/stale](https://github.com/actions/stale) from 7 to 8. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index fdd2eb5f8..7068fc913 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v7 + - uses: actions/stale@v8 with: stale-issue-message: 'This issue has been marked as stale because it has been open for more than 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' stale-issue-label: 'status: stale' From 32260f069d0aedc515a7561696322036151a00c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 10:54:55 +0200 Subject: [PATCH 088/233] Bump golang.org/x/sys from 0.6.0 to 0.7.0 (#779) * Bump golang.org/x/sys from 0.6.0 to 0.7.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.6.0 to 0.7.0. - [Release notes](https://github.com/golang/sys/releases) - [Commits](https://github.com/golang/sys/compare/v0.6.0...v0.7.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licence --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 7f070cd6e..782269752 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.6.0 +version: v0.7.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.6.0/LICENSE +- sources: sys@v0.7.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.6.0/PATENTS +- sources: sys@v0.7.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 299fdc387..9d9db84b3 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 golang.org/x/crypto v0.7.0 - golang.org/x/sys v0.6.0 + golang.org/x/sys v0.7.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 1c976765e..785573442 100644 --- a/go.sum +++ b/go.sum @@ -396,8 +396,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From ea1be68fc55045798fe0f8731224937597ff467c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 11:52:35 +0200 Subject: [PATCH 089/233] Bump golang.org/x/crypto from 0.7.0 to 0.8.0 (#780) * Bump golang.org/x/crypto from 0.7.0 to 0.8.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.7.0 to 0.8.0. - [Release notes](https://github.com/golang/crypto/releases) - [Commits](https://github.com/golang/crypto/compare/v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licence --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/internal/alias.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/armor.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/elgamal.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/errors.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/packet.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/net/bpf.dep.yml | 6 +++--- .../go/golang.org/x/net/http2.dep.yml | 6 +++--- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/socket.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv4.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv6.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/language.dep.yml | 6 +++--- .../x/text/internal/language/compact.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +++--- .../go/golang.org/x/text/language.dep.yml | 6 +++--- go.mod | 6 +++--- go.sum | 14 +++++++------- 27 files changed, 85 insertions(+), 85 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index ccdcc28b6..39bf0cc74 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.7.0 +version: v0.8.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index 281cf1356..c731236a4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.7.0 +version: v0.8.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index 976d438f8..08512476b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.7.0 +version: v0.8.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml index 55037fbb5..c20a3b807 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/internal/alias -version: v0.7.0 +version: v0.8.0 type: go summary: Package alias implements memory aliasing tests. homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index c140061fa..6eb95ffbf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.7.0 +version: v0.8.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 7dbc70807..1b24eb176 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.7.0 +version: v0.8.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 323b3afaf..93c8a9c6d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.7.0 +version: v0.8.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index c7f559939..47f20bdf8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.7.0 +version: v0.8.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index b4cc72e8b..34d9137af 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.7.0 +version: v0.8.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index f144d2e17..13f85dd7d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.7.0 +version: v0.8.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 72254ec5f..3f0273032 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.7.0 +version: v0.8.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 8e7ed4724..de4f9132b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.7.0 +version: v0.8.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index edefe6a43..fedddd3ad 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.7.0 +version: v0.8.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 59f920bd9..21bd3aa11 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.7.0 +version: v0.8.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.7.0/LICENSE +- sources: crypto@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.7.0/PATENTS +- sources: crypto@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 2aa2947a4..20e2d6663 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.8.0 +version: v0.9.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 404152e81..5a71c059f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.8.0 +version: v0.9.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 809de61b4..b46f44849 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.8.0 +version: v0.9.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index da0049ff5..313b27f0b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.8.0 +version: v0.9.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 2c8cf7a27..7567b59c5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.8.0 +version: v0.9.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index 405030088..7f3d2f57d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.8.0 +version: v0.9.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 55ca37ef9..2035a8714 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.8.0 +version: v0.9.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.8.0/LICENSE +- sources: net@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.8.0/PATENTS +- sources: net@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index c7d627413..ee6bc7364 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.8.0 +version: v0.9.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.8.0/LICENSE +- sources: text@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.8.0/PATENTS +- sources: text@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index dd93ed6ad..eeb0da1d6 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.8.0 +version: v0.9.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.8.0/LICENSE +- sources: text@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.8.0/PATENTS +- sources: text@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index 3abc2d58e..86d4f6934 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.8.0 +version: v0.9.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.8.0/LICENSE +- sources: text@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.8.0/PATENTS +- sources: text@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index 769ed4f7b..e174298a5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.8.0 +version: v0.9.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.8.0/LICENSE +- sources: text@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.8.0/PATENTS +- sources: text@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 9d9db84b3..b939b7eb8 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.7.0 + golang.org/x/crypto v0.8.0 golang.org/x/sys v0.7.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -71,8 +71,8 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect - golang.org/x/net v0.8.0 // indirect - golang.org/x/text v0.8.0 // indirect + golang.org/x/net v0.9.0 // indirect + golang.org/x/text v0.9.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 785573442..69204a4ba 100644 --- a/go.sum +++ b/go.sum @@ -345,8 +345,8 @@ golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -367,8 +367,8 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -399,13 +399,13 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From e40ebdebf21b098f14bbe22c00ae8b08cda24bd1 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 21 Apr 2023 16:41:22 +0200 Subject: [PATCH 090/233] Add the ability to generate SSL certs from tray icon (#778) * move `config.go` to it's own package and make functions public. This way we have a single source of truth. * move `config.ini` in the right package and remove hack * fix linter * move `CrashesIsEmpty` function to the config package and rename it * move `certificate.go` in it's own package and make functions public * update license header * add menu option to generate the certs only if they are not present * systray is useless in this func * add cert install on macos leverage objective C APIs to install our CA certificate in the user's trusted keystore * add cert install on win leverage windows syscalls to install our CA certificate in the user's trusted keystore code heavily inspired by https://github.com/FiloSottile/mkcert * fix certificate not being valid for 127.0.0.1 * disable the generation/install certs menuItem on OS that are not macos * remove the cert generation from the installer, remove duplicate step * parallelization for notarization is no more required * test new version of the installer config * move archive generation in the CI and save a rename operation (we do that in the installer) * removed `-` in arch matrix variable for clarity * Revert "add cert install on win" This reverts commit bcaeb75adcc1c2e0a0e9df916fca0740d93da17e. * add popup on error * Fixed warnings in obj-c code * remove the certs if the install process errors. The user is able to retry * Revert "test new version of the installer config" This reverts commit fa425dda0625069142166f3135b2bdaa355c6ee3. --------- Co-authored-by: Cristian Maglie --- .github/workflows/release.yml | 69 ++++++--------- .../certificates.go | 54 +++++++----- certificates/install_darwin.go | 87 +++++++++++++++++++ certificates/install_default.go | 32 +++++++ config.go => config/config.go | 38 +++++--- config.ini => config/config.ini | 0 hub.go | 5 +- main.go | 25 +++--- systray/systray_real.go | 48 +++++----- 9 files changed, 245 insertions(+), 113 deletions(-) rename certificates.go => certificates/certificates.go (95%) create mode 100644 certificates/install_darwin.go create mode 100644 certificates/install_default.go rename config.go => config/config.go (71%) rename config.ini => config/config.ini (100%) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 65a01c868..541da69c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,10 +31,10 @@ jobs: strategy: matrix: os: [ubuntu-20.04, windows-2019, macos-12] - arch: [-amd64] + arch: [amd64] include: - os: windows-2019 - arch: -386 + arch: 386 ext: ".exe" - os: windows-2019 ext: ".exe" @@ -104,11 +104,11 @@ jobs: env: GOARCH: 386 # 32bit architecture (for support) run: task go:build-win - if: matrix.os == 'windows-2019' && matrix.arch == '-386' + if: matrix.os == 'windows-2019' && matrix.arch == '386' - name: Build the Agent for win64 run: task go:build-win # GOARCH=amd64 by default on the runners - if: matrix.os == 'windows-2019' && matrix.arch == '-amd64' + if: matrix.os == 'windows-2019' && matrix.arch == 'amd64' - name: Build the Agent for macos env: @@ -121,7 +121,7 @@ jobs: # this will create `public/` dir with compressed full bin (/-.gz) and a json file - name: Create autoupdate files run: go-selfupdate ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} - if: matrix.arch != '-386' && steps.prerelease.outputs.IS_PRE != 'true' + if: matrix.arch != '386' && steps.prerelease.outputs.IS_PRE != 'true' # for now we do not distribute m1 build, this is a workaround for now - name: Copy autoupdate file for darwin-arm64 (m1 arch) @@ -132,8 +132,8 @@ jobs: if: matrix.os == 'macos-12' && steps.prerelease.outputs.IS_PRE != 'true' - name: Create autoupdate files for win32 - run: go-selfupdate -platform windows${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} - if: matrix.arch == '-386' && matrix.os == 'windows-2019' && steps.prerelease.outputs.IS_PRE != 'true' + run: go-selfupdate -platform windows-${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} + if: matrix.arch == '386' && matrix.os == 'windows-2019' && steps.prerelease.outputs.IS_PRE != 'true' - name: Upload autoupdate files to Arduino downloads servers run: | @@ -144,7 +144,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}${{ matrix.arch }} + name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}-${{ matrix.arch }} path: | ${{ env.PROJECT_NAME }}* if-no-files-found: error @@ -334,9 +334,6 @@ jobs: INSTALLBUILDER_PATH: "/opt/installbuilder-22.10.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" # vars passed to installbuilder to install https certs automatically - CERT_INSTALL: "ask_certificates_install=CI" # win(edge),mac(safari) - NO_CERT_INSTALL: "ask_certificates_install=CS" # linux - CHOICE_CERT_INSTALL: "ask_certificates_install=CC" # win,mac:(ff,chrome) CREATE_OSX_BUNDLED_MG: 0 # tell installbuilder to not create the DMG, gon will take care of that later # installbuilder will read this vars automatically (defined in installer.xml): INSTALLER_CERT_WINDOWS_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} @@ -348,29 +345,27 @@ jobs: fail-fast: false # if one os is failing continue nonetheless matrix: # used to generate installers for different OS and not for runs-on os: [ubuntu-20.04, windows-2019, macos-12] - arch: [-amd64] + arch: [amd64] include: - os: ubuntu-20.04 install-builder-name: linux executable-path: artifacts/linux-amd64/ + installer-extension: .run artifact-name: arduino-create-agent-ubuntu-20.04-amd64 - os: windows-2019 - arch: -386 - browser: edge + arch: 386 install-builder-name: windows executable-path: artifacts/windows/ extension: .exe installer-extension: .exe artifact-name: arduino-create-agent-windows-2019-386 - os: windows-2019 - browser: edge install-builder-name: windows executable-path: artifacts/windows/ extension: .exe installer-extension: .exe artifact-name: arduino-create-agent-windows-2019-amd64 - os: macos-12 - browser: safari install-builder-name: osx executable-path: artifacts/macos/ArduinoCreateAgent.app installer-extension: .app @@ -425,32 +420,19 @@ jobs: run: echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_P12 }} if: matrix.os == 'macos-12' - # win(edge),mac(safari) -> CERT_INSTALL and win,mac:(ff,chrome) -> CHOICE_CERT_INSTALL # installbuilder reads the env vars with certs paths and use it to sign the installer. - - name: Launch Bitrock installbuilder-20 with CERT_INSTALL && CHOICE_CERT_INSTALL + - name: Launch Bitrock installbuilder run: | - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} ${{ env.CERT_INSTALL }} - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CI${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-${{matrix.browser}}${{matrix.installer-extension}} - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} ${{ env.CHOICE_CERT_INSTALL }} - cp -vr ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-chrome${{matrix.installer-extension}} - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox${{matrix.installer-extension}} - rm -r ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-C* - if: matrix.os == 'windows-2019' || matrix.os == 'macos-12' - - # linux - - name: Launch Bitrock installbuilder-20 with NO_CERT_INSTALL - run: | - ${{ env.INSTALLBUILDER_PATH }} build installer.xml linux-x64 --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} ${{ env.NO_CERT_INSTALL }} - cp -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-chrome.run - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox.run - cp -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-chrome.tar.gz - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-linux-x64-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}${{ matrix.arch }}-installer-firefox.tar.gz + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} + + - name: Generate archive + run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}} if: matrix.os == 'ubuntu-20.04' - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: ArduinoCreateAgent-${{ matrix.install-builder-name }}${{ matrix.arch }} + name: ArduinoCreateAgent-${{ matrix.install-builder-name }}-${{ matrix.arch }} path: ArduinoCreateAgent* if-no-files-found: error @@ -459,20 +441,19 @@ jobs: needs: package strategy: matrix: - browser: [safari, firefox, chrome] - arch: [-amd64] + arch: [amd64] runs-on: macos-12 steps: - name: Download artifact uses: actions/download-artifact@v3 with: - name: ArduinoCreateAgent-osx${{ matrix.arch }} + name: ArduinoCreateAgent-osx-${{ matrix.arch }} path: ArduinoCreateAgent-osx # zip artifacts do not mantain executable permission - name: Make executable - run: chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx${{ matrix.arch }}-installer-${{ matrix.browser }}.app/Contents/MacOS/* + run: chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.app/Contents/MacOS/* - name: Import Code-Signing Certificates run: | @@ -502,7 +483,7 @@ jobs: # gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20) run: | cat > gon.config_installer.hcl <. // Generate a self-signed X.509 certificate for a TLS server. Outputs to // 'cert.pem' and 'key.pem' and will overwrite existing files. -package main +package certificates import ( "crypto/ecdsa" @@ -23,6 +34,7 @@ import ( "text/template" "time" + "github.com/arduino/arduino-create-agent/config" "github.com/arduino/go-paths-helper" "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" @@ -115,14 +127,8 @@ func generateSingleCertificate(isCa bool) (*x509.Certificate, error) { BasicConstraintsValid: true, } - hosts := strings.Split(host, ",") - for _, h := range hosts { - if ip := net.ParseIP(h); ip != nil { - template.IPAddresses = append(template.IPAddresses, ip) - } else { - template.DNSNames = append(template.DNSNames, h) - } - } + template.IPAddresses = append(template.IPAddresses, net.ParseIP("127.0.0.1")) + template.DNSNames = append(template.DNSNames, "localhost") if isCa { template.IsCA = true @@ -133,10 +139,10 @@ func generateSingleCertificate(isCa bool) (*x509.Certificate, error) { return &template, nil } -// migrateCertificatesGeneratedWithOldAgentVersions checks if certificates generated +// MigrateCertificatesGeneratedWithOldAgentVersions checks if certificates generated // with an old version of the Agent needs to be migrated to the current certificates // directory, and performs the migration if needed. -func migrateCertificatesGeneratedWithOldAgentVersions(certsDir *paths.Path) { +func MigrateCertificatesGeneratedWithOldAgentVersions(certsDir *paths.Path) { if certsDir.Join("ca.cert.pem").Exist() { // The new certificates are already set-up, nothing to do return @@ -160,11 +166,8 @@ func migrateCertificatesGeneratedWithOldAgentVersions(certsDir *paths.Path) { } } -func generateCertificates(certsDir *paths.Path) { - certsDir.Join("ca.cert.pem").Remove() - certsDir.Join("ca.key.pem").Remove() - certsDir.Join("cert.pem").Remove() - certsDir.Join("key.pem").Remove() +// GenerateCertificates will generate the required certificates useful for a HTTPS connection on localhost +func GenerateCertificates(certsDir *paths.Path) { // Create the key for the certification authority caKey, err := generateKey("P256") @@ -259,7 +262,8 @@ func generateCertificates(certsDir *paths.Path) { } } -func certHandler(c *gin.Context) { +// CertHandler will expone the certificate (we do not know why this was required) +func CertHandler(c *gin.Context) { if strings.Contains(c.Request.UserAgent(), "Firefox") { c.Header("content-type", "application/x-x509-ca-cert") c.File("ca.cert.cer") @@ -270,15 +274,19 @@ func certHandler(c *gin.Context) { }) } -func deleteCertHandler(c *gin.Context) { - DeleteCertificates(getCertificatesDir()) +// DeleteCertHandler will delete the certificates +func DeleteCertHandler(c *gin.Context) { + DeleteCertificates(config.GetCertificatesDir()) } // DeleteCertificates will delete the certificates func DeleteCertificates(certDir *paths.Path) { + certDir.Join("ca.key.pem").Remove() certDir.Join("ca.cert.pem").Remove() certDir.Join("ca.cert.cer").Remove() - certDir.Join("ca.key.pem").Remove() + certDir.Join("key.pem").Remove() + certDir.Join("cert.pem").Remove() + certDir.Join("cert.cer").Remove() } const noFirefoxTemplateHTML = ` diff --git a/certificates/install_darwin.go b/certificates/install_darwin.go new file mode 100644 index 000000000..765257b91 --- /dev/null +++ b/certificates/install_darwin.go @@ -0,0 +1,87 @@ +// Copyright 2023 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package certificates + +//inspired by https://stackoverflow.com/questions/12798950/ios-install-ssl-certificate-programmatically + +/* +#cgo CFLAGS: -x objective-c +#cgo LDFLAGS: -framework Cocoa +#import + +const char *installCert(const char *path) { + NSURL *url = [NSURL fileURLWithPath:@(path) isDirectory:NO]; + NSData *rootCertData = [NSData dataWithContentsOfURL:url]; + + OSStatus err = noErr; + SecCertificateRef rootCert = SecCertificateCreateWithData(kCFAllocatorDefault, (CFDataRef) rootCertData); + + CFTypeRef result; + + NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys: + (id)kSecClassCertificate, kSecClass, + rootCert, kSecValueRef, + nil]; + + err = SecItemAdd((CFDictionaryRef)dict, &result); + + if (err == noErr) { + NSLog(@"Install root certificate success"); + } else if (err == errSecDuplicateItem) { + NSString *errString = [@"duplicate root certificate entry. Error: " stringByAppendingFormat:@"%d", err]; + NSLog(@"%@", errString); + return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];; + } else { + NSString *errString = [@"install root certificate failure. Error: " stringByAppendingFormat:@"%d", err]; + NSLog(@"%@", errString); + return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]]; + } + + NSDictionary *newTrustSettings = @{(id)kSecTrustSettingsResult: [NSNumber numberWithInt:kSecTrustSettingsResultTrustRoot]}; + err = SecTrustSettingsSetTrustSettings(rootCert, kSecTrustSettingsDomainUser, (__bridge CFTypeRef)(newTrustSettings)); + if (err != errSecSuccess) { + NSString *errString = [@"Could not change the trust setting for a certificate. Error: " stringByAppendingFormat:@"%d", err]; + NSLog(@"%@", errString); + return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]]; + } + + return ""; +} + +*/ +import "C" +import ( + "errors" + "os/exec" + + log "github.com/sirupsen/logrus" + + "github.com/arduino/go-paths-helper" +) + +// InstallCertificate will install the certificates in the system keychain on macos, +// if something goes wrong will show a dialog with the error and return an error +func InstallCertificate(cert *paths.Path) error { + log.Infof("Installing certificate: %s", cert) + p := C.installCert(C.CString(cert.String())) + s := C.GoString(p) + if len(s) != 0 { + oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Error installing certificates\"") + _ = oscmd.Run() + return errors.New(s) + } + return nil +} diff --git a/certificates/install_default.go b/certificates/install_default.go new file mode 100644 index 000000000..2a1cf794f --- /dev/null +++ b/certificates/install_default.go @@ -0,0 +1,32 @@ +// Copyright 2023 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +//go:build !darwin + +package certificates + +import ( + "errors" + + log "github.com/sirupsen/logrus" + + "github.com/arduino/go-paths-helper" +) + +// InstallCertificate won't do anything on unsupported Operative Systems +func InstallCertificate(cert *paths.Path) error { + log.Warn("platform not supported for the certificate install") + return errors.New("platform not supported for the certificate install") +} diff --git a/config.go b/config/config.go similarity index 71% rename from config.go rename to config/config.go index 182e24c52..303aadce8 100644 --- a/config.go +++ b/config/config.go @@ -13,9 +13,10 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package main +package config import ( + // we need this for the config ini in this package _ "embed" "os" @@ -23,13 +24,19 @@ import ( log "github.com/sirupsen/logrus" ) -// getCertificatesDir return the directory where SSL certificates are saved -func getCertificatesDir() *paths.Path { - return getDataDir() +// GetCertificatesDir return the directory where SSL certificates are saved +func GetCertificatesDir() *paths.Path { + return GetDataDir() } -// getDataDir returns the full path to the default Arduino Create Agent data directory. -func getDataDir() *paths.Path { +// CertsExist checks if the certs have already been generated +func CertsExist() bool { + certFile := GetCertificatesDir().Join("cert.pem") + return certFile.Exist() //if the certFile is not present we assume there are no certs +} + +// GetDataDir returns the full path to the default Arduino Create Agent data directory. +func GetDataDir() *paths.Path { userDir, err := os.UserHomeDir() if err != nil { log.Panicf("Could not get user dir: %s", err) @@ -41,17 +48,22 @@ func getDataDir() *paths.Path { return dataDir } -// getLogsDir return the directory where logs are saved -func getLogsDir() *paths.Path { - logsDir := getDataDir().Join("logs") +// GetLogsDir return the directory where logs are saved +func GetLogsDir() *paths.Path { + logsDir := GetDataDir().Join("logs") if err := logsDir.MkdirAll(); err != nil { log.Panicf("Can't create logs dir: %s", err) } return logsDir } -// getDefaultConfigDir returns the full path to the default Arduino Create Agent configuration directory. -func getDefaultConfigDir() *paths.Path { +// LogsIsEmpty checks if the folder containing crash-reports is empty +func LogsIsEmpty() bool { + return GetLogsDir().NotExist() // if the logs directory is empty we assume there are no crashreports +} + +// GetDefaultConfigDir returns the full path to the default Arduino Create Agent configuration directory. +func GetDefaultConfigDir() *paths.Path { // UserConfigDir returns the default root directory to use // for user-specific configuration data. Users should create // their own application-specific subdirectory within this @@ -82,10 +94,10 @@ func getDefaultConfigDir() *paths.Path { //go:embed config.ini var configContent []byte -// generateConfig function will take a directory path as an input +// GenerateConfig function will take a directory path as an input // and will write the default config,ini file to that directory, // it will panic if something goes wrong -func generateConfig(destDir *paths.Path) *paths.Path { +func GenerateConfig(destDir *paths.Path) *paths.Path { configPath := destDir.Join("config.ini") // generate the config.ini file directly in destDir diff --git a/config.ini b/config/config.ini similarity index 100% rename from config.ini rename to config/config.ini diff --git a/hub.go b/hub.go index f59c6460e..003d3d959 100755 --- a/hub.go +++ b/hub.go @@ -26,6 +26,9 @@ import ( "strconv" "strings" + cert "github.com/arduino/arduino-create-agent/certificates" + "github.com/arduino/arduino-create-agent/config" + "github.com/arduino/arduino-create-agent/upload" log "github.com/sirupsen/logrus" ) @@ -182,7 +185,7 @@ func checkCmd(m []byte) { } else if strings.HasPrefix(sl, "downloadtool") { // Always delete root certificates when we receive a downloadtool command // Useful if the install procedure was not followed strictly (eg. manually) - DeleteCertificates(getCertificatesDir()) + cert.DeleteCertificates(config.GetCertificatesDir()) go func() { args := strings.Split(s, " ") var tool, toolVersion, pack, behaviour string diff --git a/main.go b/main.go index f6bc3afd6..1011ccefe 100755 --- a/main.go +++ b/main.go @@ -31,6 +31,8 @@ import ( "time" cors "github.com/andela/gin-cors" + cert "github.com/arduino/arduino-create-agent/certificates" + "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/systray" "github.com/arduino/arduino-create-agent/tools" "github.com/arduino/arduino-create-agent/updater" @@ -127,17 +129,17 @@ func main() { // Generate certificates if *genCert { - generateCertificates(getCertificatesDir()) + cert.GenerateCertificates(config.GetCertificatesDir()) os.Exit(0) } // Check if certificates made with Agent <=1.2.7 needs to be moved over the new location - migrateCertificatesGeneratedWithOldAgentVersions(getCertificatesDir()) + cert.MigrateCertificatesGeneratedWithOldAgentVersions(config.GetCertificatesDir()) // Launch main loop in a goroutine go loop() // SetupSystray is the main thread - configDir := getDefaultConfigDir() + configDir := config.GetDefaultConfigDir() Systray = systray.Systray{ Hibernate: *hibernate, Version: version + "-" + commit, @@ -167,7 +169,7 @@ func loop() { // Instantiate Tools Tools = tools.Tools{ - Directory: getDataDir().String(), + Directory: config.GetDataDir().String(), IndexURL: *indexURL, Logger: func(msg string) { mapD := map[string]string{"DownloadStatus": "Pending", "Msg": msg} @@ -178,7 +180,7 @@ func loop() { Tools.Init(requiredToolsAPILevel) // Let's handle the config - configDir := getDefaultConfigDir() + configDir := config.GetDefaultConfigDir() var configPath *paths.Path // see if the env var is defined, if it is take the config from there, this will override the default path @@ -207,7 +209,7 @@ func loop() { } } if configPath == nil { - configPath = generateConfig(configDir) + configPath = config.GenerateConfig(configDir) } // Parse the config.ini @@ -316,7 +318,7 @@ func loop() { if *crashreport { logFilename := "crashreport_" + time.Now().Format("20060102150405") + ".log" // handle logs directory creation - logsDir := getLogsDir() + logsDir := config.GetLogsDir() logFile, err := os.OpenFile(logsDir.Join(logFilename).String(), os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND, 0644) if err != nil { log.Print("Cannot create file used for crash-report") @@ -348,6 +350,7 @@ func loop() { extraOrigins = append(extraOrigins, "http://localhost:"+port) extraOrigins = append(extraOrigins, "https://localhost:"+port) extraOrigins = append(extraOrigins, "http://127.0.0.1:"+port) + extraOrigins = append(extraOrigins, "https://127.0.0.1:"+port) } r.Use(cors.Middleware(cors.Config{ @@ -363,8 +366,8 @@ func loop() { r.LoadHTMLFiles("templates/nofirefox.html") r.GET("/", homeHandler) - r.GET("/certificate.crt", certHandler) - r.DELETE("/certificate.crt", deleteCertHandler) + r.GET("/certificate.crt", cert.CertHandler) + r.DELETE("/certificate.crt", cert.DeleteCertHandler) r.POST("/upload", uploadHandler) r.GET("/socket.io/", socketHandler) r.POST("/socket.io/", socketHandler) @@ -376,12 +379,12 @@ func loop() { r.POST("/update", updateHandler) // Mount goa handlers - goa := v2.Server(getDataDir().String()) + goa := v2.Server(config.GetDataDir().String()) r.Any("/v2/*path", gin.WrapH(goa)) go func() { // check if certificates exist; if not, use plain http - certsDir := getCertificatesDir() + certsDir := config.GetCertificatesDir() if certsDir.Join("cert.pem").NotExist() { log.Error("Could not find HTTPS certificate. Using plain HTTP only.") return diff --git a/systray/systray_real.go b/systray/systray_real.go index 106306542..74ed12c67 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -21,12 +21,14 @@ package systray import ( "os" - "os/user" + "runtime" log "github.com/sirupsen/logrus" + cert "github.com/arduino/arduino-create-agent/certificates" + "github.com/arduino/arduino-create-agent/config" + "github.com/arduino/arduino-create-agent/icon" - "github.com/arduino/go-paths-helper" "github.com/getlantern/systray" "github.com/go-ini/ini" "github.com/skratchdot/open-golang/open" @@ -61,7 +63,16 @@ func (s *Systray) start() { // Remove crash-reports mRmCrashes := systray.AddMenuItem("Remove crash reports", "") - s.updateMenuItem(mRmCrashes, s.CrashesIsEmpty()) + s.updateMenuItem(mRmCrashes, config.LogsIsEmpty()) + + mGenCerts := systray.AddMenuItem("Generate and Install HTTPS certificates", "HTTPS Certs") + // On linux/windows chrome/firefox/edge(chromium) the agent works without problems on plain HTTP, + // so we disable the menuItem to generate/install the certificates + if runtime.GOOS != "darwin" { + s.updateMenuItem(mGenCerts, true) + } else { + s.updateMenuItem(mGenCerts, config.CertsExist()) + } // Add pause/quit mPause := systray.AddMenuItem("Pause Agent", "") @@ -82,8 +93,17 @@ func (s *Systray) start() { case <-mConfig.ClickedCh: _ = open.Start(s.currentConfigFilePath.String()) case <-mRmCrashes.ClickedCh: - s.RemoveCrashes() - s.updateMenuItem(mRmCrashes, s.CrashesIsEmpty()) + RemoveCrashes() + s.updateMenuItem(mRmCrashes, config.LogsIsEmpty()) + case <-mGenCerts.ClickedCh: + certDir := config.GetCertificatesDir() + cert.GenerateCertificates(certDir) + err := cert.InstallCertificate(certDir.Join("ca.cert.cer")) + // if something goes wrong during the cert install we remove them, so the user is able to retry + if err != nil { + cert.DeleteCertificates(certDir) + } + s.Restart() case <-mPause.ClickedCh: s.Pause() case <-mQuit.ClickedCh: @@ -102,15 +122,9 @@ func (s *Systray) updateMenuItem(item *systray.MenuItem, disable bool) { } } -// CrashesIsEmpty checks if the folder containing crash-reports is empty -func (s *Systray) CrashesIsEmpty() bool { - logsDir := getLogsDir() - return logsDir.NotExist() // if the logs directory is empty we assume there are no crashreports -} - // RemoveCrashes removes the crash-reports from `logs` folder -func (s *Systray) RemoveCrashes() { - logsDir := getLogsDir() +func RemoveCrashes() { + logsDir := config.GetLogsDir() pathErr := logsDir.RemoveAll() if pathErr != nil { log.Errorf("Cannot remove crashreports: %s", pathErr) @@ -119,14 +133,6 @@ func (s *Systray) RemoveCrashes() { } } -// getLogsDir simply returns the folder containing the logs -func getLogsDir() *paths.Path { - usr, _ := user.Current() - usrDir := paths.New(usr.HomeDir) // The user folder, on linux/macos /home// - agentDir := usrDir.Join(".arduino-create") - return agentDir.Join("logs") -} - // starthibernate creates a systray icon with menu options to resume/quit the agent func (s *Systray) startHibernate() { systray.SetIcon(icon.GetIconHiber()) From 7d15376ddddd9c708d215716f68a5998cb8e6527 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 May 2023 01:05:31 +0000 Subject: [PATCH 091/233] Bump github.com/arduino/go-paths-helper from 1.8.0 to 1.9.0 Bumps [github.com/arduino/go-paths-helper](https://github.com/arduino/go-paths-helper) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/arduino/go-paths-helper/releases) - [Commits](https://github.com/arduino/go-paths-helper/compare/v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: github.com/arduino/go-paths-helper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b939b7eb8..9c31c97c0 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.19 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 - github.com/arduino/go-paths-helper v1.8.0 + github.com/arduino/go-paths-helper v1.9.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.0 github.com/getlantern/systray v1.1.0 diff --git a/go.sum b/go.sum index 69204a4ba..0b2e50826 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1: github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.4.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= -github.com/arduino/go-paths-helper v1.8.0 h1:BfA1bq1XktnlqwfUDCoKbUqB3YFPe6X7szPSZj6Rdpk= -github.com/arduino/go-paths-helper v1.8.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.9.0 h1:IjWhDSF24n5bK/30NyApmzoVH9brWzc52KNPpBsRmMc= +github.com/arduino/go-paths-helper v1.9.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b/go.mod h1:uwGy5PpN4lqW97FiLnbcx+xx8jly5YuPMJWfVwwjJiQ= github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b/go.mod h1:iIPnclBMYm1g32Q5kXoqng4jLhMStReIP7ZxaoUC2y8= From 71e4921cd36d9b377e43cba423e13bdda2b5552e Mon Sep 17 00:00:00 2001 From: per1234 Date: Mon, 1 May 2023 13:56:03 -0700 Subject: [PATCH 092/233] Update dependency license metadata cache for `github.com/arduino/go-paths-helper` bump --- .../go/github.com/arduino/go-paths-helper.dep.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml index a7dd692a0..85c69a854 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/go-paths-helper -version: v1.8.0 +version: v1.9.0 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper From 7f31d0ec67bfbf1c26f066098f2eaf4f1c278ac7 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 5 May 2023 14:33:21 +0200 Subject: [PATCH 093/233] Autostart is handled by the agent itself (#781) * [test] leverage launchd tool to implement autostart feature on macos * use embed and template * add check on macos * exit after loading the agent, `launchctl load ...` will start the binary * test new version of the installer config * change the Label in the plist file to comply with the apple convention * factor out the logic of Install/Uninstall of the plist in config package * made functions private * Revert "test new version of the installer config" This reverts commit ff33dbc2bb6890e14f9f960beed4e1376f907097. * fix lint --- config/ArduinoCreateAgent.plist | 16 +++++ config/autostart.go | 124 ++++++++++++++++++++++++++++++++ config/config.go | 16 +++++ config/config.ini | 3 +- main.go | 40 +++++++---- 5 files changed, 183 insertions(+), 16 deletions(-) create mode 100644 config/ArduinoCreateAgent.plist create mode 100644 config/autostart.go diff --git a/config/ArduinoCreateAgent.plist b/config/ArduinoCreateAgent.plist new file mode 100644 index 000000000..7e85cc3b5 --- /dev/null +++ b/config/ArduinoCreateAgent.plist @@ -0,0 +1,16 @@ + + + + + KeepAlive + + Label + cc.arduino.arduino-create-agent + Program + {{.Program}} + RunAtLoad + <{{.RunAtLoad}}/> + AbandonProcessGroup + + + \ No newline at end of file diff --git a/config/autostart.go b/config/autostart.go new file mode 100644 index 000000000..c6b2b8d52 --- /dev/null +++ b/config/autostart.go @@ -0,0 +1,124 @@ +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package config + +import ( + // we need this for the ArduinoCreateAgent.plist in this package + _ "embed" + "os" + "os/exec" + "text/template" + + "github.com/arduino/go-paths-helper" + log "github.com/sirupsen/logrus" +) + +//go:embed ArduinoCreateAgent.plist +var launchdAgentDefinition []byte + +// getLaunchdAgentPath will return the path of the launchd agent default path +func getLaunchdAgentPath() *paths.Path { + return GetDefaultHomeDir().Join("Library", "LaunchAgents", "ArduinoCreateAgent.plist") +} + +// InstallPlistFile will handle the process of creating the plist file required for the autostart +// and loading it using launchd +func InstallPlistFile() { + launchdAgentPath := getLaunchdAgentPath() + if !launchdAgentPath.Exist() { + err := writePlistFile(launchdAgentPath) + if err != nil { + log.Error(err) + } else { + err = loadLaunchdAgent() // this will load the agent: basically starting a new instance + if err != nil { + log.Error(err) + } else { + log.Info("Quitting, another instance of the agent has been started by launchd") + os.Exit(0) + } + } + } else { + // we already have an existing launchd plist file, so we don't have to do anything + log.Infof("the autostart file %s already exists: nothing to do", launchdAgentPath) + + } +} + +// writePlistFile function will write the required plist file to launchdAgentPath +// it will return nil in case of success, +// it will error in any other case +func writePlistFile(launchdAgentPath *paths.Path) error { + src, err := os.Executable() + + if err != nil { + return err + } + data := struct { + Program string + RunAtLoad bool + }{ + Program: src, + RunAtLoad: true, // This will start the agent right after login (and also after `launchctl load ...`) + } + + t := template.Must(template.New("launchdConfig").Parse(string(launchdAgentDefinition))) + + // we need to create a new launchd plist file + plistFile, _ := launchdAgentPath.Create() + return t.Execute(plistFile, data) +} + +// loadLaunchdAgent will use launchctl to load the agent, will return an error if something goes wrong +func loadLaunchdAgent() error { + // https://www.launchd.info/ + oscmd := exec.Command("launchctl", "load", getLaunchdAgentPath().String()) + err := oscmd.Run() + return err +} + +// UninstallPlistFile will handle the process of unloading (unsing launchd) the file required for the autostart +// and removing the file +func UninstallPlistFile() { + err := unloadLaunchdAgent() + if err != nil { + log.Error(err) + } else { + err = removePlistFile() + if err != nil { + log.Error(err) + } + } +} + +// unloadLaunchdAgent will use launchctl to load the agent, will return an error if something goes wrong +func unloadLaunchdAgent() error { + // https://www.launchd.info/ + oscmd := exec.Command("launchctl", "unload", getLaunchdAgentPath().String()) + err := oscmd.Run() + return err +} + +// removePlistFile function will remove the plist file from $HOME/Library/LaunchAgents/ArduinoCreateAgent.plist and return an error +// it will not do anything if the file is not there +func removePlistFile() error { + launchdAgentPath := getLaunchdAgentPath() + if launchdAgentPath.Exist() { + log.Infof("removing: %s", launchdAgentPath) + return launchdAgentPath.Remove() + } + log.Infof("the autostart file %s do not exists: nothing to do", launchdAgentPath) + return nil +} diff --git a/config/config.go b/config/config.go index 303aadce8..437437e59 100644 --- a/config/config.go +++ b/config/config.go @@ -91,6 +91,22 @@ func GetDefaultConfigDir() *paths.Path { return agentConfigDir } +// GetDefaultHomeDir returns the full path to the user's home directory. +func GetDefaultHomeDir() *paths.Path { + // UserHomeDir returns the current user's home directory. + + // On Unix, including macOS, it returns the $HOME environment variable. + // On Windows, it returns %USERPROFILE%. + // On Plan 9, it returns the $home environment variable. + + homeDir, err := os.UserHomeDir() + if err != nil { + log.Panicf("Can't get user home dir: %s", err) + } + + return paths.New(homeDir) +} + //go:embed config.ini var configContent []byte diff --git a/config/config.ini b/config/config.ini index 960e5f3d3..f63377db5 100644 --- a/config/config.ini +++ b/config/config.ini @@ -6,4 +6,5 @@ appName = CreateAgent/Stable updateUrl = https://downloads.arduino.cc/ origins = https://local.arduino.cc:8000 #httpProxy = http://your.proxy:port # Proxy server for HTTP requests -crashreport = false # enable crashreport logging \ No newline at end of file +crashreport = false # enable crashreport logging +autostartMacOS = true # the Arduino Create Agent is able to start automatically after login on macOS (launchd agent) \ No newline at end of file diff --git a/main.go b/main.go index 1011ccefe..0cb55a325 100755 --- a/main.go +++ b/main.go @@ -66,21 +66,22 @@ var ( // iniflags var ( - address = iniConf.String("address", "127.0.0.1", "The address where to listen. Defaults to localhost") - appName = iniConf.String("appName", "", "") - gcType = iniConf.String("gc", "std", "Type of garbage collection. std = Normal garbage collection allowing system to decide (this has been known to cause a stop the world in the middle of a CNC job which can cause lost responses from the CNC controller and thus stalled jobs. use max instead to solve.), off = let memory grow unbounded (you have to send in the gc command manually to garbage collect or you will run out of RAM eventually), max = Force garbage collection on each recv or send on a serial port (this minimizes stop the world events and thus lost serial responses, but increases CPU usage)") - hostname = iniConf.String("hostname", "unknown-hostname", "Override the hostname we get from the OS") - httpProxy = iniConf.String("httpProxy", "", "Proxy server for HTTP requests") - httpsProxy = iniConf.String("httpsProxy", "", "Proxy server for HTTPS requests") - indexURL = iniConf.String("indexURL", "https://downloads.arduino.cc/packages/package_staging_index.json", "The address from where to download the index json containing the location of upload tools") - iniConf = flag.NewFlagSet("ini", flag.ContinueOnError) - logDump = iniConf.String("log", "off", "off = (default)") - origins = iniConf.String("origins", "", "Allowed origin list for CORS") - regExpFilter = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") - signatureKey = iniConf.String("signatureKey", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF\nIE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1\nZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1\npFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z\nCeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn\n2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9\ntwIDAQAB\n-----END PUBLIC KEY-----", "Pem-encoded public key to verify signed commandlines") - updateURL = iniConf.String("updateUrl", "", "") - verbose = iniConf.Bool("v", true, "show debug logging") - crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") + address = iniConf.String("address", "127.0.0.1", "The address where to listen. Defaults to localhost") + appName = iniConf.String("appName", "", "") + gcType = iniConf.String("gc", "std", "Type of garbage collection. std = Normal garbage collection allowing system to decide (this has been known to cause a stop the world in the middle of a CNC job which can cause lost responses from the CNC controller and thus stalled jobs. use max instead to solve.), off = let memory grow unbounded (you have to send in the gc command manually to garbage collect or you will run out of RAM eventually), max = Force garbage collection on each recv or send on a serial port (this minimizes stop the world events and thus lost serial responses, but increases CPU usage)") + hostname = iniConf.String("hostname", "unknown-hostname", "Override the hostname we get from the OS") + httpProxy = iniConf.String("httpProxy", "", "Proxy server for HTTP requests") + httpsProxy = iniConf.String("httpsProxy", "", "Proxy server for HTTPS requests") + indexURL = iniConf.String("indexURL", "https://downloads.arduino.cc/packages/package_staging_index.json", "The address from where to download the index json containing the location of upload tools") + iniConf = flag.NewFlagSet("ini", flag.ContinueOnError) + logDump = iniConf.String("log", "off", "off = (default)") + origins = iniConf.String("origins", "", "Allowed origin list for CORS") + regExpFilter = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") + signatureKey = iniConf.String("signatureKey", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF\nIE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1\nZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1\npFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z\nCeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn\n2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9\ntwIDAQAB\n-----END PUBLIC KEY-----", "Pem-encoded public key to verify signed commandlines") + updateURL = iniConf.String("updateUrl", "", "") + verbose = iniConf.Bool("v", true, "show debug logging") + crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") + autostartMacOS = iniConf.Bool("autostartMacOS", true, "the Arduino Create Agent is able to start automatically after login on macOS (launchd agent)") ) var homeTemplate = template.Must(template.New("home").Parse(homeTemplateHTML)) @@ -327,6 +328,15 @@ func loop() { } } + // macos agent launchd autostart + if runtime.GOOS == "darwin" { + if *autostartMacOS { + config.InstallPlistFile() + } else { + config.UninstallPlistFile() + } + } + // launch the hub routine which is the singleton for the websocket server go h.run() // launch our serial port routine From ccfe93903f7b61ea050e70534b1be4faa264f8e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 May 2023 00:58:34 +0000 Subject: [PATCH 094/233] Bump github.com/arduino/go-paths-helper from 1.9.0 to 1.9.1 Bumps [github.com/arduino/go-paths-helper](https://github.com/arduino/go-paths-helper) from 1.9.0 to 1.9.1. - [Release notes](https://github.com/arduino/go-paths-helper/releases) - [Commits](https://github.com/arduino/go-paths-helper/compare/v1.9.0...v1.9.1) --- updated-dependencies: - dependency-name: github.com/arduino/go-paths-helper dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 9c31c97c0..bb159d59b 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.19 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 - github.com/arduino/go-paths-helper v1.9.0 + github.com/arduino/go-paths-helper v1.9.1 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.0 github.com/getlantern/systray v1.1.0 diff --git a/go.sum b/go.sum index 0b2e50826..c8c1efff7 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,8 @@ github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1: github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.4.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= -github.com/arduino/go-paths-helper v1.9.0 h1:IjWhDSF24n5bK/30NyApmzoVH9brWzc52KNPpBsRmMc= -github.com/arduino/go-paths-helper v1.9.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.9.1 h1:qpK+zMMjsklSBQa09/P5FZ/uf3LyjVmJK3DLeyiGjCc= +github.com/arduino/go-paths-helper v1.9.1/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b/go.mod h1:uwGy5PpN4lqW97FiLnbcx+xx8jly5YuPMJWfVwwjJiQ= github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b/go.mod h1:iIPnclBMYm1g32Q5kXoqng4jLhMStReIP7ZxaoUC2y8= From c0942facf5050d935e81dae780307f30ab49bd47 Mon Sep 17 00:00:00 2001 From: per1234 Date: Wed, 10 May 2023 19:32:03 -0700 Subject: [PATCH 095/233] Update dependency license metadata cache for `github.com/arduino/go-paths-helper` bump --- .../go/github.com/arduino/go-paths-helper.dep.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml index 85c69a854..8d14608ef 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/go-paths-helper -version: v1.9.0 +version: v1.9.1 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper From a4b266c599e66c620ebf1d7b7d35e8ecc869e5ab Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 19 May 2023 14:26:55 +0200 Subject: [PATCH 096/233] Remove installbuilder from macos release artifact (#785) * let gon generate the dmg installer and upload it * package step does not need notarization anymore * remove installbuilder env vars related to macos * remove macos from matrix * remove macos related steps from package job * remove `executable-path` and `artifact-name` vars, they are redundant * remove `code-sign-mac-installers` job: we already have a notarized dmg * adapt last `create-release` job * Revert "let gon generate the dmg installer and upload it" Gon is able to produce a working dmg, but there is not a link to application and a background img, for that we need `create-dmg` This reverts commit 7bb8b915d394cf91af4d9a374cd998375ed8a6fd. * add step to generate and sign the dmg installer * fix `create-release` job * Partially Revert "adapt last `create-release` job" This reverts commit e7c1b1dc94c0ca76412e9db8b645511c087abdf5. * test new version of the installer config * Warn the user if a previous installation exists in `$HOME/Applications/` * Revert "test new version of the installer config" This reverts commit c528951af94dab326e01331e87745e46ea093c4f. * if the running binary is the old running one we don't do anything otherwise we break the agent after the auto-update --- .github/workflows/release.yml | 108 ++++++++++++++++------------------ main.go | 28 +++++++++ 2 files changed, 80 insertions(+), 56 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 541da69c3..54c3b70fb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -326,51 +326,35 @@ jobs: # This job is responsible for generating the installers (using installbuilder) package: - needs: notarize-macos + needs: build runs-on: ubuntu-20.04 env: # vars used by installbuilder INSTALLBUILDER_PATH: "/opt/installbuilder-22.10.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" - # vars passed to installbuilder to install https certs automatically - CREATE_OSX_BUNDLED_MG: 0 # tell installbuilder to not create the DMG, gon will take care of that later # installbuilder will read this vars automatically (defined in installer.xml): INSTALLER_CERT_WINDOWS_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} INSTALLER_CERT_WINDOWS_PFX: "/tmp/ArduinoCerts2020.pfx" - INSTALLER_CERT_MAC_PASSWORD: ${{ secrets.INSTALLER_CERT_MAC_PASSWORD }} - INSTALLER_CERT_MAC_P12: "/tmp/ArduinoCerts2020.p12" strategy: fail-fast: false # if one os is failing continue nonetheless matrix: # used to generate installers for different OS and not for runs-on - os: [ubuntu-20.04, windows-2019, macos-12] + os: [ubuntu-20.04, windows-2019] arch: [amd64] include: - os: ubuntu-20.04 - install-builder-name: linux - executable-path: artifacts/linux-amd64/ + platform-name: linux installer-extension: .run - artifact-name: arduino-create-agent-ubuntu-20.04-amd64 - os: windows-2019 arch: 386 - install-builder-name: windows - executable-path: artifacts/windows/ + platform-name: windows extension: .exe installer-extension: .exe - artifact-name: arduino-create-agent-windows-2019-386 - os: windows-2019 - install-builder-name: windows - executable-path: artifacts/windows/ + platform-name: windows extension: .exe installer-extension: .exe - artifact-name: arduino-create-agent-windows-2019-amd64 - - os: macos-12 - install-builder-name: osx - executable-path: artifacts/macos/ArduinoCreateAgent.app - installer-extension: .app - artifact-name: ArduinoCreateAgent.app_amd64_notarized # this artifact contains the Contents directory - # here we support only amd64 for macos. Hopefully in the future installbuilder for macOS will be removed, see https://github.com/arduino/arduino-create-agent/issues/739 container: image: floydpink/ubuntu-install-builder:22.10.0 @@ -385,28 +369,19 @@ jobs: - name: Download artifact uses: actions/download-artifact@v3 with: - name: ${{ matrix.artifact-name }} - path: ${{ matrix.executable-path }} # path expected by installbuilder - - - name: unzip mac notarized bundle - working-directory: ${{ matrix.executable-path }} - run: | - apt install unzip - unzip ${{ matrix.artifact-name }}.zip - rm ${{ matrix.artifact-name }}.zip - if: matrix.os == 'macos-12' + name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}-${{ matrix.arch }} + path: artifacts/${{ matrix.platform-name }}/ # path expected by installbuilder # zip artifacts do not mantain executable permission - name: Make executable - run: chmod -v +x ${{ matrix.executable-path }}${{ env.PROJECT_NAME }}* + run: chmod -v +x artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}* if: matrix.os == 'ubuntu-20.04' - name: Rename executable to Arduino_Create_Agent - run: mv -v ${{ matrix.executable-path }}${{ env.PROJECT_NAME }}${{ matrix.extension }} ${{ matrix.executable-path }}Arduino_Create_Agent${{ matrix.extension }} - if: matrix.os != 'macos-12' + run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Create_Agent${{ matrix.extension }} - name: Rename executable to Arduino_Create_Agent_cli - run: mv -v ${{ matrix.executable-path }}${{ env.PROJECT_NAME }}_cli${{ matrix.extension }} ${{ matrix.executable-path }}Arduino_Create_Agent_cli${{ matrix.extension }} + run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}_cli${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Create_Agent_cli${{ matrix.extension }} if: matrix.os == 'ubuntu-20.04' - name: Save InstallBuilder license to file @@ -416,44 +391,64 @@ jobs: run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} if: matrix.os == 'windows-2019' - - name: Save macos signing certificate to file - run: echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode > ${{ env.INSTALLER_CERT_MAC_P12 }} - if: matrix.os == 'macos-12' - # installbuilder reads the env vars with certs paths and use it to sign the installer. - name: Launch Bitrock installbuilder run: | - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.platform-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} - name: Generate archive - run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}} + run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}} if: matrix.os == 'ubuntu-20.04' - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: ArduinoCreateAgent-${{ matrix.install-builder-name }}-${{ matrix.arch }} + name: ArduinoCreateAgent-${{ matrix.platform-name }}-${{ matrix.arch }} path: ArduinoCreateAgent* if-no-files-found: error - # This job will sign and notarize mac installers - code-sign-mac-installers: - needs: package + # This job will generate a dmg mac installer, sign/notarize it. + generate-sign-dmg: + needs: notarize-macos strategy: matrix: arch: [amd64] runs-on: macos-12 steps: + - name: Checkout repo with icons/background + uses: actions/checkout@v3 + with: + repository: 'bcmi-labs/arduino-create-agent-installer' # the repo which contains the icons/background + token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} + - name: Download artifact uses: actions/download-artifact@v3 with: - name: ArduinoCreateAgent-osx-${{ matrix.arch }} - path: ArduinoCreateAgent-osx + name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized + path: ArduinoCreateAgent.app - # zip artifacts do not mantain executable permission - - name: Make executable - run: chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.app/Contents/MacOS/* + - name: unzip artifact + working-directory: ArduinoCreateAgent.app + run: | + unzip ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip + rm ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip + + - name: Install create-dmg + run: brew install create-dmg + + - name: Genarate DMG + run: | + create-dmg \ + --volname "ArduinoCreateAgent" \ + --background "installer_icons/background.tiff" \ + --window-pos 200 120 \ + --window-size 500 320 \ + --icon-size 80 \ + --icon "ArduinoCreateAgent.app" 125 150 \ + --app-drop-link 375 150 \ + "ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg" \ + "ArduinoCreateAgent.app" - name: Import Code-Signing Certificates run: | @@ -483,22 +478,23 @@ jobs: # gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20) run: | cat > gon.config_installer.hcl < 1.3.0 we changed the install path of the agent in /Applications. + // If we are updating manually from 1.2.7 to 1.3.0 we have to uninstall the old agent manually first. + // This check will inform the user if he needs to run the uninstall first + if runtime.GOOS == "darwin" && oldInstallExists() { + printDialog("Old agent installation of the Arduino Create Agent found, please uninstall it before launching the new one") + os.Exit(0) + } + // Instantiate Tools Tools = tools.Tools{ Directory: config.GetDataDir().String(), @@ -434,6 +444,24 @@ func loop() { }() } +// oldInstallExists will return true if an old installation of the agent exists (on macos) and is not the process running +func oldInstallExists() bool { + oldAgentPath := config.GetDefaultHomeDir().Join("Applications", "ArduinoCreateAgent") + currentBinary, _ := os.Executable() + // if the current running binary is the old one we don't need to do anything + binIsOld, _ := paths.New(currentBinary).IsInsideDir(oldAgentPath) + if binIsOld { + return false + } + return oldAgentPath.Exist() +} + +// printDialog will print a GUI error dialog on macos +func printDialog(dialogText string) { + oscmd := exec.Command("osascript", "-e", "display dialog \""+dialogText+"\" buttons \"OK\" with title \"Error\"") + _ = oscmd.Run() +} + func parseIni(filename string) (args []string, err error) { cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename) if err != nil { From 4ce021ca3f4e01e9ee18d48cb3b5fc0acfaaa518 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 15:16:56 +0200 Subject: [PATCH 097/233] Bump golang.org/x/sys from 0.7.0 to 0.8.0 (#784) * Bump golang.org/x/sys from 0.7.0 to 0.8.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.7.0 to 0.8.0. - [Commits](https://github.com/golang/sys/compare/v0.7.0...v0.8.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update dependency license metadata cache --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 782269752..aeb5367d3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.7.0 +version: v0.8.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.7.0/LICENSE +- sources: sys@v0.8.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.7.0/PATENTS +- sources: sys@v0.8.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index bb159d59b..70dd67083 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 golang.org/x/crypto v0.8.0 - golang.org/x/sys v0.7.0 + golang.org/x/sys v0.8.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index c8c1efff7..2993921b8 100644 --- a/go.sum +++ b/go.sum @@ -396,8 +396,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 042b68c649ff1d9540cf6cc07bccaabf8174c5c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 15:19:26 +0200 Subject: [PATCH 098/233] Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#790) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.2 to 1.8.3. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.2...v1.8.3) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 70dd67083..4cdcaf5f9 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 github.com/sirupsen/logrus v1.9.0 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 - github.com/stretchr/testify v1.8.2 + github.com/stretchr/testify v1.8.3 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 diff --git a/go.sum b/go.sum index 2993921b8..b3d93dda8 100644 --- a/go.sum +++ b/go.sum @@ -294,17 +294,14 @@ github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jW github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= From 080344419608125563980b4828a20fab0b6c5959 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 15:34:12 +0200 Subject: [PATCH 099/233] Bump golang.org/x/crypto from 0.8.0 to 0.9.0 (#786) * Bump golang.org/x/crypto from 0.8.0 to 0.9.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.8.0 to 0.9.0. - [Commits](https://github.com/golang/crypto/compare/v0.8.0...v0.9.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update dependency license metadata cache --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/internal/alias.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/armor.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/elgamal.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/errors.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/packet.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/net/bpf.dep.yml | 6 +++--- .../go/golang.org/x/net/http2.dep.yml | 6 +++--- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +++--- .../go/golang.org/x/net/internal/socket.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv4.dep.yml | 6 +++--- .../go/golang.org/x/net/ipv6.dep.yml | 6 +++--- go.mod | 4 ++-- go.sum | 10 +++++----- 23 files changed, 70 insertions(+), 70 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index 39bf0cc74..32542ee80 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.8.0 +version: v0.9.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index c731236a4..07797706d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.8.0 +version: v0.9.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index 08512476b..a78617c44 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.8.0 +version: v0.9.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml index c20a3b807..bc4f08430 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/internal/alias -version: v0.8.0 +version: v0.9.0 type: go summary: Package alias implements memory aliasing tests. homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 6eb95ffbf..970ce11cb 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.8.0 +version: v0.9.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 1b24eb176..e21bf90be 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.8.0 +version: v0.9.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 93c8a9c6d..938c50dea 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.8.0 +version: v0.9.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index 47f20bdf8..a1e4a4eed 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.8.0 +version: v0.9.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index 34d9137af..d8f8967e3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.8.0 +version: v0.9.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index 13f85dd7d..246dc47dd 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.8.0 +version: v0.9.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 3f0273032..3300fee37 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.8.0 +version: v0.9.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index de4f9132b..7bc31a8e2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.8.0 +version: v0.9.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index fedddd3ad..f27a4a5d7 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.8.0 +version: v0.9.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 21bd3aa11..986ccaff9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.8.0 +version: v0.9.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.8.0/LICENSE +- sources: crypto@v0.9.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.8.0/PATENTS +- sources: crypto@v0.9.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 20e2d6663..7a5ce7ec7 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.9.0 +version: v0.10.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 5a71c059f..d0b815028 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.9.0 +version: v0.10.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index b46f44849..7a42a0b3e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.9.0 +version: v0.10.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 313b27f0b..84f4c1e16 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.9.0 +version: v0.10.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 7567b59c5..1b693f0a2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.9.0 +version: v0.10.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index 7f3d2f57d..eb327c756 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.9.0 +version: v0.10.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 2035a8714..197505ab8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.9.0 +version: v0.10.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.9.0/LICENSE +- sources: net@v0.10.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.9.0/PATENTS +- sources: net@v0.10.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 4cdcaf5f9..15849df63 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.8.0 + golang.org/x/crypto v0.9.0 golang.org/x/sys v0.8.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -71,7 +71,7 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect - golang.org/x/net v0.9.0 // indirect + golang.org/x/net v0.10.0 // indirect golang.org/x/text v0.9.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.62.0 // indirect diff --git a/go.sum b/go.sum index b3d93dda8..c91486885 100644 --- a/go.sum +++ b/go.sum @@ -342,8 +342,8 @@ golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= -golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -364,8 +364,8 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= -golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -396,7 +396,7 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= +golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From 4e7b23fc607ee4ca24c20578370df169a01b108a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 16:06:03 +0200 Subject: [PATCH 100/233] Bump github.com/gin-gonic/gin from 1.8.1 to 1.9.0 (#769) * Bump github.com/gin-gonic/gin from 1.8.1 to 1.9.0 Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.8.1 to 1.9.0. - [Release notes](https://github.com/gin-gonic/gin/releases) - [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md) - [Commits](https://github.com/gin-gonic/gin/compare/v1.8.1...v1.9.0) --- updated-dependencies: - dependency-name: github.com/gin-gonic/gin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update dependency license metadata cache --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/gin-gonic/gin.dep.yml | 2 +- .../github.com/gin-gonic/gin/binding.dep.yml | 6 +- .../gin-gonic/gin/internal/bytesconv.dep.yml | 6 +- .../gin-gonic/gin/internal/json.dep.yml | 6 +- .../github.com/gin-gonic/gin/render.dep.yml | 6 +- .../github.com/go-playground/locales.dep.yml | 4 +- .../go-playground/locales/currency.dep.yml | 8 +- .../universal-translator.dep.yml | 4 +- .../go-playground/validator/v10.dep.yml | 3 +- .../go/github.com/mattn/go-isatty.dep.yml | 2 +- .../github.com/pelletier/go-toml/v2.dep.yml | 2 +- .../{ast.dep.yml => characters.dep.yml} | 12 +- .../go-toml/v2/internal/danger.dep.yml | 8 +- .../go-toml/v2/internal/tracker.dep.yml | 8 +- .../pelletier/go-toml/v2/unstable.dep.yml | 35 +++ .../protobuf/encoding/protowire.dep.yml | 6 +- .../protobuf/internal/detrand.dep.yml | 6 +- .../internal/encoding/messageset.dep.yml | 6 +- .../protobuf/internal/errors.dep.yml | 6 +- .../protobuf/internal/flags.dep.yml | 6 +- .../protobuf/internal/genid.dep.yml | 6 +- .../protobuf/internal/order.dep.yml | 6 +- .../protobuf/internal/pragma.dep.yml | 6 +- .../protobuf/internal/strs.dep.yml | 6 +- .../google.golang.org/protobuf/proto.dep.yml | 6 +- .../protobuf/reflect/protoreflect.dep.yml | 6 +- .../protobuf/reflect/protoregistry.dep.yml | 6 +- .../protobuf/runtime/protoiface.dep.yml | 6 +- .../go/gopkg.in/yaml.v2.dep.yml | 265 ------------------ .../go/gopkg.in/yaml.v3.dep.yml | 80 ++++++ go.mod | 21 +- go.sum | 66 +++-- 32 files changed, 241 insertions(+), 381 deletions(-) rename .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/{ast.dep.yml => characters.dep.yml} (89%) create mode 100644 .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml create mode 100644 .licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml index 501e1b0e3..c3ac83973 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gin-gonic/gin -version: v1.8.1 +version: v1.9.0 type: go summary: Package gin implements a HTTP web framework called gin. homepage: https://pkg.go.dev/github.com/gin-gonic/gin diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml index 06e597b40..db9f528ad 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/binding -version: v1.8.1 +version: v1.9.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding license: mit licenses: -- sources: gin@v1.8.1/LICENSE +- sources: gin@v1.9.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml index 075098277..b536ac426 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/bytesconv -version: v1.8.1 +version: v1.9.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv license: mit licenses: -- sources: gin@v1.8.1/LICENSE +- sources: gin@v1.9.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml index 1757210e1..fb6d2566e 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/json -version: v1.8.1 +version: v1.9.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json license: mit licenses: -- sources: gin@v1.8.1/LICENSE +- sources: gin@v1.9.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml index 148875c13..33ddc3e50 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/render -version: v1.8.1 +version: v1.9.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render license: mit licenses: -- sources: gin@v1.8.1/LICENSE +- sources: gin@v1.9.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml index d21519810..ee78f87a8 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/locales.dep.yml @@ -1,8 +1,8 @@ --- name: github.com/go-playground/locales -version: v0.14.0 +version: v0.14.1 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/go-playground/locales license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml index 29ad8571e..7e33d3e3f 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/locales/currency.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/go-playground/locales/currency -version: v0.14.0 +version: v0.14.1 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/go-playground/locales/currency license: mit licenses: -- sources: locales@v0.14.0/LICENSE +- sources: locales@v0.14.1/LICENSE text: |- The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: locales@v0.14.0/README.md +- sources: locales@v0.14.1/README.md text: Distributed under MIT License, please see license file in code for more details. notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml index 4774803a5..3efb0fc2b 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/universal-translator.dep.yml @@ -1,8 +1,8 @@ --- name: github.com/go-playground/universal-translator -version: v0.18.0 +version: v0.18.1 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/go-playground/universal-translator license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml index 1b611a943..2b8f82c5f 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/validator/v10 -version: v10.10.0 +version: v10.11.2 type: go summary: Package validator implements value validations for structs and individual fields based on tags. @@ -35,3 +35,4 @@ licenses: text: Distributed under MIT License, please see license file within the code for more details. notices: [] +... diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml index de6d423c4..6d4bc325a 100644 --- a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/mattn/go-isatty -version: v0.0.14 +version: v0.0.17 type: go summary: Package isatty implements interface to isatty homepage: https://pkg.go.dev/github.com/mattn/go-isatty diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml index 63307638c..b6441574b 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/pelletier/go-toml/v2 -version: v2.0.1 +version: v2.0.6 type: go summary: Package toml is a library to read and write TOML documents. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2 diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml similarity index 89% rename from .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml rename to .licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml index 4225dd6ba..c2f15cc95 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/ast.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml @@ -1,12 +1,12 @@ --- -name: github.com/pelletier/go-toml/v2/internal/ast -version: v2.0.1 +name: github.com/pelletier/go-toml/v2/internal/characters +version: v2.0.6 type: go -summary: -homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/ast +summary: +homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters license: mit licenses: -- sources: v2@v2.0.1/LICENSE +- sources: v2@v2.0.6/LICENSE text: | The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.1/README.md +- sources: v2@v2.0.6/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml index a348f62c4..7d970106f 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/danger -version: v2.0.1 +version: v2.0.6 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger license: mit licenses: -- sources: v2@v2.0.1/LICENSE +- sources: v2@v2.0.6/LICENSE text: | The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.1/README.md +- sources: v2@v2.0.6/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml index 7f812ebb8..5995535fd 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/tracker -version: v2.0.1 +version: v2.0.6 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker license: mit licenses: -- sources: v2@v2.0.1/LICENSE +- sources: v2@v2.0.6/LICENSE text: | The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.1/README.md +- sources: v2@v2.0.6/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml new file mode 100644 index 000000000..1c947842a --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml @@ -0,0 +1,35 @@ +--- +name: github.com/pelletier/go-toml/v2/unstable +version: v2.0.6 +type: go +summary: Package unstable provides APIs that do not meet the backward compatibility + guarantees yet. +homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable +license: mit +licenses: +- sources: v2@v2.0.6/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: v2@v2.0.6/README.md + text: The MIT License (MIT). Read [LICENSE](LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index 6bb75e5d3..7f80cce7a 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/encoding/protowire -version: v1.28.0 +version: v1.28.1 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index 86ddb7109..8294f0cd4 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/detrand -version: v1.28.0 +version: v1.28.1 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index a42ad9fde..f3375a481 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/encoding/messageset -version: v1.28.0 +version: v1.28.1 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index 3bd1b5195..9509d6dc3 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/errors -version: v1.28.0 +version: v1.28.1 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index 9f82c1e20..05ef6a533 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/flags -version: v1.28.0 +version: v1.28.1 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index 1829b4596..860b0682f 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/genid -version: v1.28.0 +version: v1.28.1 type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml index 607a513a2..cd0445581 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/order -version: v1.28.0 +version: v1.28.1 type: go summary: Package order provides ordered access to messages and maps. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index 0cafc67d3..c4df10568 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/pragma -version: v1.28.0 +version: v1.28.1 type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index 3934ee997..998009fac 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/strs -version: v1.28.0 +version: v1.28.1 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index 13601188e..c2d607c6e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/proto -version: v1.28.0 +version: v1.28.1 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 1b60e723d..740b2bfc4 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/reflect/protoreflect -version: v1.28.0 +version: v1.28.1 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index 67dc8e379..44351250a 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/reflect/protoregistry -version: v1.28.0 +version: v1.28.1 type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index d6d0d8a92..48dc76686 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/runtime/protoiface -version: v1.28.0 +version: v1.28.1 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface license: bsd-3-clause licenses: -- sources: protobuf@v1.28.0/LICENSE +- sources: protobuf@v1.28.1/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.0/PATENTS +- sources: protobuf@v1.28.1/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml deleted file mode 100644 index da704355e..000000000 --- a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v2.dep.yml +++ /dev/null @@ -1,265 +0,0 @@ ---- -name: gopkg.in/yaml.v2 -version: v2.4.0 -type: go -summary: Package yaml implements YAML support for the Go language. -homepage: https://pkg.go.dev/gopkg.in/yaml.v2 -# Apache-2.0 subsumes MIT -# https://www.gnu.org/licenses/license-compatibility.html#combining -license: apache-2.0 -licenses: -- sources: LICENSE - text: |2 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -- sources: LICENSE.libyaml - text: | - The following files were ported to Go from C files of libyaml, and thus - are still covered by their original copyright and license: - - apic.go - emitterc.go - parserc.go - readerc.go - scannerc.go - writerc.go - yamlh.go - yamlprivateh.go - - Copyright (c) 2006 Kirill Simonov - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - of the Software, and to permit persons to whom the Software is furnished to do - so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -- sources: README.md - text: The yaml package is licensed under the Apache License 2.0. Please see the - LICENSE file for details. -notices: -- sources: NOTICE - text: |- - Copyright 2011-2016 Canonical Ltd. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml new file mode 100644 index 000000000..e77248e58 --- /dev/null +++ b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml @@ -0,0 +1,80 @@ +--- +name: gopkg.in/yaml.v3 +version: v3.0.1 +type: go +summary: Package yaml implements YAML support for the Go language. +homepage: https://pkg.go.dev/gopkg.in/yaml.v3 +license: other +licenses: +- sources: LICENSE + text: |2 + + This project is covered by two different licenses: MIT and Apache. + + #### MIT License #### + + The following files were ported to Go from C files of libyaml, and thus + are still covered by their original MIT license, with the additional + copyright staring in 2011 when the project was ported over: + + apic.go emitterc.go parserc.go readerc.go scannerc.go + writerc.go yamlh.go yamlprivateh.go + + Copyright (c) 2006-2010 Kirill Simonov + Copyright (c) 2006-2011 Kirill Simonov + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + ### Apache License ### + + All the remaining project files are covered by the Apache license: + + Copyright (c) 2011-2019 Canonical Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +- sources: README.md + text: |- + The yaml package is licensed under the MIT and Apache License 2.0 licenses. + Please see the LICENSE file for details. +notices: +- sources: NOTICE + text: |- + Copyright 2011-2016 Canonical Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/go.mod b/go.mod index 15849df63..5252af201 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.0 github.com/getlantern/systray v1.1.0 - github.com/gin-gonic/gin v1.8.1 + github.com/gin-gonic/gin v1.9.0 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 github.com/mattn/go-shellwords v1.0.12 @@ -30,6 +30,8 @@ require ( ) require ( + github.com/bytedance/sonic v1.8.0 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect @@ -42,11 +44,11 @@ require ( github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-playground/locales v0.14.0 // indirect - github.com/go-playground/universal-translator v0.18.0 // indirect - github.com/go-playground/validator/v10 v10.10.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.11.2 // indirect github.com/go-stack/stack v1.8.0 // indirect - github.com/goccy/go-json v0.9.7 // indirect + github.com/goccy/go-json v0.10.0 // indirect github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/gorilla/websocket v1.4.0 // indirect @@ -55,25 +57,28 @@ require ( github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.15.13 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/kr/binarydist v0.1.0 // indirect github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect github.com/miekg/dns v1.1.35 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect - github.com/pelletier/go-toml/v2 v2.0.1 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect + golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/net v0.10.0 // indirect golang.org/x/text v0.9.0 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/ini.v1 v1.62.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index c91486885..720b333ee 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,14 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= +github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= +github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cmaglie/go.rice v1.0.3/go.mod h1:AF3bOWkvdOpp8/S3UL8qbQ4N7DiISIbJtj54GWFPAsc= github.com/cmaglie/pb v1.0.27/go.mod h1:GilkKZMXYjBA4NxItWFfO+lwkp59PLHQ+IOW/b/kmZI= @@ -83,26 +89,25 @@ github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1y github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= -github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= +github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= -github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= -github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= -github.com/go-playground/validator/v10 v10.10.0 h1:I7mrTYv78z8k8VXa/qJlOlEXn/nBh+BF8dHX5nt/dr0= -github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= +github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/goccy/go-json v0.9.7 h1:IcB+Aqpx/iMHu5Yooh7jEzJk1JZ7Pjtmys2ukPr7EeM= -github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -176,6 +181,8 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= @@ -183,9 +190,7 @@ github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -203,8 +208,8 @@ github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0Re github.com/marcinbor85/gohex v0.0.0-20210308104911-55fb1c624d84/go.mod h1:Pb6XcsXyropB9LNHhnqaknG/vEwYztLkQzVCHv8sQ3M= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= @@ -234,9 +239,8 @@ github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgF github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU= -github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -258,9 +262,7 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e/go.mod h1:tm/wZFQ8e24NYaBGIlnO2WGCAi67re4HHuOm0sftE/M= @@ -294,16 +296,22 @@ github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jW github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.6 h1:zoJUBK8kLIUDNJ9LGB04qOQRfoDRoWBBpl0X7pZyi5I= github.com/ugorji/go v1.1.6/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os= @@ -332,6 +340,8 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 h1:+qjyw15FIXxmcA/QmrDrofQPLMAav6X2v+UYH/pQq8A= goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4/go.mod h1:NnzBwdNktihbNek+pPiFMQP9PPFsUt8MMPPyo9opDSo= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20180214000028-650f4a345ab4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -341,7 +351,6 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -389,10 +398,8 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -400,7 +407,6 @@ golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -435,8 +441,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -444,8 +450,6 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -468,8 +472,8 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= From c9c688d70c6f045538334b2d11e1e4842677023b Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 23 May 2023 17:47:37 +0200 Subject: [PATCH 101/233] Update the autostart file when it's required (#791) * the agent is now able to detect if the autostart file is updated or not * exit only if the launchd file not exist Otherwise the agent is not started at all --- config/autostart.go | 60 ++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/config/autostart.go b/config/autostart.go index c6b2b8d52..1f8d81fec 100644 --- a/config/autostart.go +++ b/config/autostart.go @@ -15,6 +15,7 @@ package config import ( + "bytes" // we need this for the ArduinoCreateAgent.plist in this package _ "embed" "os" @@ -38,33 +39,55 @@ func getLaunchdAgentPath() *paths.Path { func InstallPlistFile() { launchdAgentPath := getLaunchdAgentPath() if !launchdAgentPath.Exist() { - err := writePlistFile(launchdAgentPath) - if err != nil { - log.Error(err) + writeAndLoadPlistFile(launchdAgentPath) + log.Info("Quitting, another instance of the agent has been started by launchd") + os.Exit(0) + } else { + // we already have an existing launchd plist file, so we check if it's updated + launchAgentContent, _ := launchdAgentPath.ReadFile() + launchAgentContentNew, _ := getLaunchdAgentDefinition() + if bytes.Equal(launchAgentContent, launchAgentContentNew) { + log.Infof("the autostart file %s already exists: nothing to do", launchdAgentPath) } else { - err = loadLaunchdAgent() // this will load the agent: basically starting a new instance - if err != nil { - log.Error(err) - } else { - log.Info("Quitting, another instance of the agent has been started by launchd") - os.Exit(0) - } + log.Infof("the autostart file %s needs to be updated", launchdAgentPath) + removePlistFile() + writeAndLoadPlistFile(launchdAgentPath) } - } else { - // we already have an existing launchd plist file, so we don't have to do anything - log.Infof("the autostart file %s already exists: nothing to do", launchdAgentPath) } } +// writeAndLoadPlistFile function will write the plist file, load it, and then exit, because launchd will start a new instance. +func writeAndLoadPlistFile(launchdAgentPath *paths.Path) { + err := writePlistFile(launchdAgentPath) + if err != nil { + log.Error(err) + } else { + err = loadLaunchdAgent() // this will load the agent: basically starting a new instance + if err != nil { + log.Error(err) + } + } +} + // writePlistFile function will write the required plist file to launchdAgentPath // it will return nil in case of success, // it will error in any other case func writePlistFile(launchdAgentPath *paths.Path) error { + definition, err := getLaunchdAgentDefinition() + if err != nil { + return err + } + // we need to create a new launchd plist file + return launchdAgentPath.WriteFile(definition) +} + +// getLaunchdAgentDefinition will return the definition of the new LaunchdAgent +func getLaunchdAgentDefinition() ([]byte, error) { src, err := os.Executable() if err != nil { - return err + return nil, err } data := struct { Program string @@ -76,9 +99,12 @@ func writePlistFile(launchdAgentPath *paths.Path) error { t := template.Must(template.New("launchdConfig").Parse(string(launchdAgentDefinition))) - // we need to create a new launchd plist file - plistFile, _ := launchdAgentPath.Create() - return t.Execute(plistFile, data) + buf := bytes.NewBuffer(nil) + err = t.Execute(buf, data) + if err != nil { + return nil, err + } + return buf.Bytes(), nil } // loadLaunchdAgent will use launchctl to load the agent, will return an error if something goes wrong From 7c88643fd7efbaeed329784b6f1f22050cabbc71 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 9 Jun 2023 17:13:14 +0200 Subject: [PATCH 102/233] Check the folder content in new version of the agent on macos (#797) * disable pushing autoupdate file on s3 for testing purposes also set prerelease: true for the github release, so that we can perform tests * we check if the bundle is already there * fix typo * Revert "disable pushing autoupdate file on s3 for testing purposes" This reverts commit 61373da56030a458f4a820152753e99453bbed72. --- main.go | 2 +- updater/updater_darwin.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index e37410c4a..9f021af27 100755 --- a/main.go +++ b/main.go @@ -453,7 +453,7 @@ func oldInstallExists() bool { if binIsOld { return false } - return oldAgentPath.Exist() + return oldAgentPath.Join("ArduinoCreateAgent.app").Exist() } // printDialog will print a GUI error dialog on macos diff --git a/updater/updater_darwin.go b/updater/updater_darwin.go index f0bc6e5ed..ec00f88cc 100644 --- a/updater/updater_darwin.go +++ b/updater/updater_darwin.go @@ -59,7 +59,7 @@ func checkForUpdates(currentVersion string, updateURL string, cmdName string) (s if currentAppPath.Ext() != ".app" { return "", fmt.Errorf("could not find app root in %s", executablePath) } - oldAppPath := currentAppPath.Parent().Join("ArdiunoCreateAgent.old.app") + oldAppPath := currentAppPath.Parent().Join("ArduinoCreateAgent.old.app") if oldAppPath.Exist() { return "", fmt.Errorf("temp app already exists: %s, cannot update", oldAppPath) } From e728784f620eb1c1db23b0affa1e63658c77d3d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 11:53:14 +0200 Subject: [PATCH 103/233] Bump github.com/stretchr/testify from 1.8.3 to 1.8.4 (#794) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.3 to 1.8.4. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.3...v1.8.4) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5252af201..d9192c58f 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 github.com/sirupsen/logrus v1.9.0 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 - github.com/stretchr/testify v1.8.3 + github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 diff --git a/go.sum b/go.sum index 720b333ee..e49f5a5fe 100644 --- a/go.sum +++ b/go.sum @@ -306,8 +306,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= From 769a8e9bbba269f78048b3464e45afb050aaf138 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 12:03:57 +0200 Subject: [PATCH 104/233] Bump github.com/codeclysm/extract/v3 from 3.1.0 to 3.1.1 (#793) * Bump github.com/codeclysm/extract/v3 from 3.1.0 to 3.1.1 Bumps [github.com/codeclysm/extract/v3](https://github.com/codeclysm/extract) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/codeclysm/extract/releases) - [Commits](https://github.com/codeclysm/extract/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: github.com/codeclysm/extract/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update license --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/codeclysm/extract/v3.dep.yml | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml index 5389a442f..0c6f99746 100644 --- a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/codeclysm/extract/v3 -version: v3.1.0 +version: v3.1.1 type: go summary: Package extract allows to extract archives in zip, tar.gz or tar.bz2 formats easily. diff --git a/go.mod b/go.mod index d9192c58f..8e67e84b4 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 github.com/arduino/go-paths-helper v1.9.1 github.com/blang/semver v3.5.1+incompatible - github.com/codeclysm/extract/v3 v3.1.0 + github.com/codeclysm/extract/v3 v3.1.1 github.com/getlantern/systray v1.1.0 github.com/gin-gonic/gin v1.9.0 github.com/go-ini/ini v1.62.0 diff --git a/go.sum b/go.sum index e49f5a5fe..3f24e2ded 100644 --- a/go.sum +++ b/go.sum @@ -39,8 +39,8 @@ github.com/cmaglie/go.rice v1.0.3/go.mod h1:AF3bOWkvdOpp8/S3UL8qbQ4N7DiISIbJtj54 github.com/cmaglie/pb v1.0.27/go.mod h1:GilkKZMXYjBA4NxItWFfO+lwkp59PLHQ+IOW/b/kmZI= github.com/codeclysm/cc v1.2.2/go.mod h1:XtW4ArCNgQwFphcRGG9+sPX5WM1J6/u0gMy5ZdV3obA= github.com/codeclysm/extract/v3 v3.0.2/go.mod h1:NKsw+hqua9H+Rlwy/w/3Qgt9jDonYEgB6wJu+25eOKw= -github.com/codeclysm/extract/v3 v3.1.0 h1:z14FpkRizce3HNHsqJoZWwj0ovzZ2hiIkmT96FQS3j8= -github.com/codeclysm/extract/v3 v3.1.0/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= +github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= +github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= From aec28ebd3a74791f5457b929ecd658c04f27ca6f Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 23 Jun 2023 10:57:30 +0200 Subject: [PATCH 105/233] Fix https certificates being removed after `downloadtool` command (#801) * fix https certificates being removed after `downloadtool` command * add log --- hub.go | 6 ------ systray/systray_real.go | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/hub.go b/hub.go index 003d3d959..70b1c9dd3 100755 --- a/hub.go +++ b/hub.go @@ -26,9 +26,6 @@ import ( "strconv" "strings" - cert "github.com/arduino/arduino-create-agent/certificates" - "github.com/arduino/arduino-create-agent/config" - "github.com/arduino/arduino-create-agent/upload" log "github.com/sirupsen/logrus" ) @@ -183,9 +180,6 @@ func checkCmd(m []byte) { go spList(false) go spList(true) } else if strings.HasPrefix(sl, "downloadtool") { - // Always delete root certificates when we receive a downloadtool command - // Useful if the install procedure was not followed strictly (eg. manually) - cert.DeleteCertificates(config.GetCertificatesDir()) go func() { args := strings.Split(s, " ") var tool, toolVersion, pack, behaviour string diff --git a/systray/systray_real.go b/systray/systray_real.go index 74ed12c67..20db97118 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -101,6 +101,7 @@ func (s *Systray) start() { err := cert.InstallCertificate(certDir.Join("ca.cert.cer")) // if something goes wrong during the cert install we remove them, so the user is able to retry if err != nil { + log.Errorf("cannot install certificates something went wrong: %s", err) cert.DeleteCertificates(certDir) } s.Restart() From d170a5e8d36292dfb95387d0d345d2b279b6c224 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 3 Jul 2023 10:56:45 +0200 Subject: [PATCH 106/233] Bump arduino-cli to include https://github.com/arduino/arduino-cli/commit/fe6d7499eb5e0920419829371c0e11f9af000499 (#802) * bump arduino-cli to latest to have https://github.com/arduino/arduino-cli/commit/fe6d7499eb5e0920419829371c0e11f9af000499 * bump deps * go mod tidy --- .../arduino-cli/arduino/serialutils.dep.yml | 57 +- .../arduino/arduino-cli/i18n.dep.yml | 701 ++++++++++++++++++ .../github.com/leonelquinteros/gotext.dep.yml | 34 + .../leonelquinteros/gotext/plurals.dep.yml | 35 + .../protobuf/encoding/protowire.dep.yml | 6 +- .../protobuf/internal/detrand.dep.yml | 6 +- .../internal/encoding/messageset.dep.yml | 6 +- .../protobuf/internal/errors.dep.yml | 6 +- .../protobuf/internal/flags.dep.yml | 6 +- .../protobuf/internal/genid.dep.yml | 6 +- .../protobuf/internal/order.dep.yml | 6 +- .../protobuf/internal/pragma.dep.yml | 6 +- .../protobuf/internal/strs.dep.yml | 6 +- .../google.golang.org/protobuf/proto.dep.yml | 6 +- .../protobuf/reflect/protoreflect.dep.yml | 6 +- .../protobuf/reflect/protoregistry.dep.yml | 6 +- .../protobuf/runtime/protoiface.dep.yml | 6 +- .../go/gopkg.in/yaml.v3.dep.yml | 2 +- go.mod | 10 +- go.sum | 277 +------ upload/upload.go | 2 +- 21 files changed, 865 insertions(+), 331 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml index c9af3e07c..39129997c 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml @@ -1,27 +1,13 @@ --- name: github.com/arduino/arduino-cli/arduino/serialutils -version: v0.0.0-20210422154105-5aa424818026 +version: v0.0.0-20230630155703-fe6d7499eb5e type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/arduino/serialutils license: gpl-3.0-only licenses: -- sources: arduino-cli@v0.0.0-20210422154105-5aa424818026/LICENSE.txt - text: | - This file includes licensing information for arduino-cli - - Copyright (c) 2018 ARDUINO SA (www.arduino.cc) - - The software is released under the GNU General Public License, which covers the main body - of the arduino-cli code. The terms of this license can be found at: - https://www.gnu.org/licenses/gpl-3.0.en.html - - You can be released from the requirements of the above licenses by purchasing - a commercial license. Buying such a license is mandatory if you want to modify or - otherwise use the software for commercial activities involving the Arduino - software without disclosing the source code of your own applications. To purchase - a commercial license, send an email to license@arduino.cc - +- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/LICENSE.txt + text: |2 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -696,4 +682,39 @@ licenses: the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . +- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/license_header.tpl + text: | + This file is part of arduino-cli. + + Copyright{{ if .Year }} {{.Year}}{{ end }} {{.Holder}} + + This software is released under the GNU General Public License version 3, + which covers the main part of arduino-cli. + The terms of this license can be found at: + https://www.gnu.org/licenses/gpl-3.0.en.html + + You can be released from the requirements of the above licenses by purchasing + a commercial license. Buying such a license is mandatory if you want to + modify or otherwise use the software for commercial activities involving the + Arduino software without disclosing the source code of your own applications. + To purchase a commercial license, send an email to license@arduino.cc. +- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/README.md + text: |- + Arduino CLI is licensed under the [GPL 3.0] license. + + You can be released from the requirements of the above license by purchasing a commercial license. Buying such a license + is mandatory if you want to modify or otherwise use the software for commercial activities involving the Arduino + software without disclosing the source code of your own applications. To purchase a commercial license, send an email to + license@arduino.cc + + [install]: https://arduino.github.io/arduino-cli/latest/installation + [user documentation]: https://arduino.github.io/arduino-cli/latest/ + [getting started]: https://arduino.github.io/arduino-cli/latest/getting-started/ + [commands reference]: https://arduino.github.io/arduino-cli/latest/commands/arduino-cli + [faq]: https://arduino.github.io/arduino-cli/latest/FAQ/ + [how to contribute]: https://arduino.github.io/arduino-cli/latest/CONTRIBUTING/ + [contributors]: https://github.com/arduino/arduino-cli/graphs/contributors + [nightly builds]: https://arduino.github.io/arduino-cli/latest/installation/#nightly-builds + [security policy]: https://github.com/arduino/arduino-cli/security/policy + [gpl 3.0]: https://www.gnu.org/licenses/gpl-3.0.en.html notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml new file mode 100644 index 000000000..35b9d6853 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml @@ -0,0 +1,701 @@ +--- +name: github.com/arduino/arduino-cli/i18n +version: v0.0.0-20230630155703-fe6d7499eb5e +type: go +summary: +homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/i18n +license: gpl-3.0-only +licenses: +- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/LICENSE.txt + text: |2 + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for + software and other kinds of works. + + The licenses for most software and other practical works are designed + to take away your freedom to share and change the works. By contrast, + the GNU General Public License is intended to guarantee your freedom to + share and change all versions of a program--to make sure it remains free + software for all its users. We, the Free Software Foundation, use the + GNU General Public License for most of our software; it applies also to + any other work released this way by its authors. You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + them if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you + these rights or asking you to surrender the rights. Therefore, you have + certain responsibilities if you distribute copies of the software, or if + you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must pass on to the recipients the same + freedoms that you received. You must make sure that they, too, receive + or can get the source code. And you must show them these terms so they + know their rights. + + Developers that use the GNU GPL protect your rights with two steps: + (1) assert copyright on the software, and (2) offer you this License + giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains + that there is no warranty for this free software. For both users' and + authors' sake, the GPL requires that modified versions be marked as + changed, so that their problems will not be attributed erroneously to + authors of previous versions. + + Some devices are designed to deny users access to install or run + modified versions of the software inside them, although the manufacturer + can do so. This is fundamentally incompatible with the aim of + protecting users' freedom to change the software. The systematic + pattern of such abuse occurs in the area of products for individuals to + use, which is precisely where it is most unacceptable. Therefore, we + have designed this version of the GPL to prohibit the practice for those + products. If such problems arise substantially in other domains, we + stand ready to extend this provision to those domains in future versions + of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. + States should not allow patents to restrict development and use of + software on general-purpose computers, but in those that do, we wish to + avoid the special danger that patents applied to a free program could + make it effectively proprietary. To prevent this, the GPL assures that + patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this + License. Each licensee is addressed as "you". "Licensees" and + "recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work + in a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a "modified version" of the + earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based + on the Program. + + To "propagate" a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through + a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" + to the extent that it includes a convenient and prominently visible + feature that (1) displays an appropriate copyright notice, and (2) + tells the user that there is no warranty for the work (except to the + extent that warranties are provided), that licensees may convey the + work under this License, and how to view a copy of this License. If + the interface presents a list of user commands or options, such as a + menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work + for making modifications to it. "Object code" means any non-source + form of a work. + + A "Standard Interface" means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that + is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other + than the work as a whole, that (a) is included in the normal form of + packaging a Major Component, but which is not part of that Major + Component, and (b) serves only to enable use of the work with that + Major Component, or to implement a Standard Interface for which an + implementation is available to the public in source code form. A + "Major Component", in this context, means a major essential component + (kernel, window system, and so on) of the specific operating system + (if any) on which the executable work runs, or a compiler used to + produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all + the source code needed to generate, install, and (for an executable + work) run the object code and to modify the work, including scripts to + control those activities. However, it does not include the work's + System Libraries, or general-purpose tools or generally available free + programs which are used unmodified in performing those activities but + which are not part of the work. For example, Corresponding Source + includes interface definition files associated with source files for + the work, and the source code for shared libraries and dynamically + linked subprograms that the work is specifically designed to require, + such as by intimate data communication or control flow between those + subprograms and other parts of the work. + + The Corresponding Source need not include anything that users + can regenerate automatically from other parts of the Corresponding + Source. + + The Corresponding Source for a work in source code form is that + same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program. The output from running a + covered work is covered by this License only if the output, given its + content, constitutes a covered work. This License acknowledges your + rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not + convey, without conditions so long as your license otherwise remains + in force. You may convey covered works to others for the sole purpose + of having them make modifications exclusively for you, or provide you + with facilities for running those works, provided that you comply with + the terms of this License in conveying all material for which you do + not control copyright. Those thus making or running the covered works + for you must do so exclusively on your behalf, under your direction + and control, on terms that prohibit them from making any copies of + your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under + the conditions stated below. Sublicensing is not allowed; section 10 + makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article + 11 of the WIPO copyright treaty adopted on 20 December 1996, or + similar laws prohibiting or restricting circumvention of such + measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention + is effected by exercising rights under this License with respect to + the covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's + users, your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; + keep intact all notices stating that this License and any + non-permissive terms added in accord with section 7 apply to the code; + keep intact all notices of the absence of any warranty; and give all + recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, + and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the + terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, + and which are not combined with it such as to form a larger program, + in or on a volume of a storage or distribution medium, is called an + "aggregate" if the compilation and its resulting copyright are not + used to limit the access or legal rights of the compilation's users + beyond what the individual works permit. Inclusion of a covered work + in an aggregate does not cause this License to apply to the other + parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms + of sections 4 and 5, provided that you also convey the + machine-readable Corresponding Source under the terms of this License, + in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be + included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, "normally used" refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as + part of a transaction in which the right of possession and use of the + User Product is transferred to the recipient in perpetuity or for a + fixed term (regardless of how the transaction is characterized), the + Corresponding Source conveyed under this section must be accompanied + by the Installation Information. But this requirement does not apply + if neither you nor any third party retains the ability to install + modified object code on the User Product (for example, the work has + been installed in ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access to a + network may be denied when the modification itself materially and + adversely affects the operation of the network or violates the rules and + protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, + in accord with this section must be in a format that is publicly + documented (and with an implementation available to the public in + source code form), and must require no special password or key for + unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall + be treated as though they were included in this License, to the extent + that they are valid under applicable law. If additional permissions + apply only to part of the Program, that part may be used separately + under those permissions, but the entire Program remains governed by + this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option + remove any additional permissions from that copy, or from any part of + it. (Additional permissions may be written to require their own + removal in certain cases when you modify the work.) You may place + additional permissions on material, added by you to a covered work, + for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you + add to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further + restrictions" within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further + restriction, you may remove that term. If a license document contains + a further restriction but permits relicensing or conveying under this + License, you may add to a covered work material governed by the terms + of that license document, provided that the further restriction does + not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you + must place, in the relevant source files, a statement of the + additional terms that apply to those files, or a notice indicating + where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the + form of a separately written license, or stated as exceptions; + the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or + modify it is void, and will automatically terminate your rights under + this License (including any patent licenses granted under the third + paragraph of section 11). + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly and + finally terminates your license, and (b) permanently, if the copyright + holder fails to notify you of the violation by some reasonable means + prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you have + received notice of violation of this License (for any work) from that + copyright holder, and you cure the violation prior to 30 days after + your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or + run a copy of the Program. Ancillary propagation of a covered work + occurring solely as a consequence of using peer-to-peer transmission + to receive a copy likewise does not require acceptance. However, + nothing other than this License grants you permission to propagate or + modify any covered work. These actions infringe copyright if you do + not accept this License. Therefore, by modifying or propagating a + covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically + receives a license from the original licensors, to run, modify and + propagate that work, subject to this License. You are not responsible + for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered + work results from an entity transaction, each party to that + transaction who receives a copy of the work also receives whatever + licenses to the work the party's predecessor in interest had or could + give under the previous paragraph, plus a right to possession of the + Corresponding Source of the work from the predecessor in interest, if + the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the + rights granted or affirmed under this License. For example, you may + not impose a license fee, royalty, or other charge for exercise of + rights granted under this License, and you may not initiate litigation + (including a cross-claim or counterclaim in a lawsuit) alleging that + any patent claim is infringed by making, using, selling, offering for + sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The + work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims + owned or controlled by the contributor, whether already acquired or + hereafter acquired, that would be infringed by some manner, permitted + by this License, of making, using, or selling its contributor version, + but do not include claims that would be infringed only as a + consequence of further modification of the contributor version. For + purposes of this definition, "control" includes the right to grant + patent sublicenses in a manner consistent with the requirements of + this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to + make, use, sell, offer for sale, import and otherwise run, modify and + propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To "grant" such a patent license to a + party means to make such an agreement or commitment not to enforce a + patent against the party. + + If you convey a covered work, knowingly relying on a patent license, + and the Corresponding Source of the work is not available for anyone + to copy, free of charge and under the terms of this License, through a + publicly available network server or other readily accessible means, + then you must either (1) cause the Corresponding Source to be so + available, or (2) arrange to deprive yourself of the benefit of the + patent license for this particular work, or (3) arrange, in a manner + consistent with the requirements of this License, to extend the patent + license to downstream recipients. "Knowingly relying" means you have + actual knowledge that, but for the patent license, your conveying the + covered work in a country, or your recipient's use of the covered work + in a country, would infringe one or more identifiable patents in that + country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties + receiving the covered work authorizing them to use, propagate, modify + or convey a specific copy of the covered work, then the patent license + you grant is automatically extended to all recipients of the covered + work and works based on it. + + A patent license is "discriminatory" if it does not include within + the scope of its coverage, prohibits the exercise of, or is + conditioned on the non-exercise of one or more of the rights that are + specifically granted under this License. You may not convey a covered + work if you are a party to an arrangement with a third party that is + in the business of distributing software, under which you make payment + to the third party based on the extent of your activity of conveying + the work, and under which the third party grants, to any of the + parties who would receive the covered work from you, a discriminatory + patent license (a) in connection with copies of the covered work + conveyed by you (or copies made from those copies), or (b) primarily + for and in connection with specific products or compilations that + contain the covered work, unless you entered into that arrangement, + or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting + any implied license or other defenses to infringement that may + otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot convey a + covered work so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you may + not convey it at all. For example, if you agree to terms that obligate you + to collect a royalty for further conveying from those to whom you convey + the Program, the only way you could satisfy both those terms and this + License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have + permission to link or combine any covered work with a work licensed + under version 3 of the GNU Affero General Public License into a single + combined work, and to convey the resulting work. The terms of this + License will continue to apply to the part which is the covered work, + but the special requirements of the GNU Affero General Public License, + section 13, concerning interaction through a network will apply to the + combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of + the GNU General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the + Program specifies that a certain numbered version of the GNU General + Public License "or any later version" applies to it, you have the + option of following the terms and conditions either of that numbered + version or of any later version published by the Free Software + Foundation. If the Program does not specify a version number of the + GNU General Public License, you may choose any version ever published + by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future + versions of the GNU General Public License can be used, that proxy's + public statement of acceptance of a version permanently authorizes you + to choose that version for the Program. + + Later license versions may give you additional or different + permissions. However, no additional obligations are imposed on any + author or copyright holder as a result of your choosing to follow a + later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided + above cannot be given local legal effect according to their terms, + reviewing courts shall apply local law that most closely approximates + an absolute waiver of all civil liability in connection with the + Program, unless a warranty or assumption of liability accompanies a + copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + state the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short + notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, your program's commands + might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, + if any, to sign a "copyright disclaimer" for the program, if necessary. + For more information on this, and how to apply and follow the GNU GPL, see + . + + The GNU General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications with + the library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. But first, please read + . +- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/license_header.tpl + text: | + This file is part of arduino-cli. + + Copyright{{ if .Year }} {{.Year}}{{ end }} {{.Holder}} + + This software is released under the GNU General Public License version 3, + which covers the main part of arduino-cli. + The terms of this license can be found at: + https://www.gnu.org/licenses/gpl-3.0.en.html + + You can be released from the requirements of the above licenses by purchasing + a commercial license. Buying such a license is mandatory if you want to + modify or otherwise use the software for commercial activities involving the + Arduino software without disclosing the source code of your own applications. + To purchase a commercial license, send an email to license@arduino.cc. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml b/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml new file mode 100644 index 000000000..9f13e6e9a --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml @@ -0,0 +1,34 @@ +--- +name: github.com/leonelquinteros/gotext +version: v1.4.0 +type: go +summary: Package gotext implements GNU gettext utilities. +homepage: https://pkg.go.dev/github.com/leonelquinteros/gotext +license: mit +licenses: +- sources: LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2016 Leonel Quinteros + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: README.md + text: "[MIT license](LICENSE)" +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml b/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml new file mode 100644 index 000000000..e80ad4e09 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml @@ -0,0 +1,35 @@ +--- +name: github.com/leonelquinteros/gotext/plurals +version: v1.4.0 +type: go +summary: Package plurals is the pluralform compiler to get the correct translation + id of the plural string +homepage: https://pkg.go.dev/github.com/leonelquinteros/gotext/plurals +license: mit +licenses: +- sources: gotext@v1.4.0/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2016 Leonel Quinteros + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +- sources: gotext@v1.4.0/README.md + text: "[MIT license](LICENSE)" +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index 7f80cce7a..beb0e7880 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/encoding/protowire -version: v1.28.1 +version: v1.30.0 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index 8294f0cd4..7cb833aa4 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/detrand -version: v1.28.1 +version: v1.30.0 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index f3375a481..98ff26bf9 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/encoding/messageset -version: v1.28.1 +version: v1.30.0 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index 9509d6dc3..3cefaae5e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/errors -version: v1.28.1 +version: v1.30.0 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index 05ef6a533..c8abf3682 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/flags -version: v1.28.1 +version: v1.30.0 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index 860b0682f..4ac0531da 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/genid -version: v1.28.1 +version: v1.30.0 type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml index cd0445581..9c2ea0a9f 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/order -version: v1.28.1 +version: v1.30.0 type: go summary: Package order provides ordered access to messages and maps. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index c4df10568..34e7153c3 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/pragma -version: v1.28.1 +version: v1.30.0 type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index 998009fac..1fc7f9fa6 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/strs -version: v1.28.1 +version: v1.30.0 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index c2d607c6e..8bdc4a98a 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/proto -version: v1.28.1 +version: v1.30.0 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 740b2bfc4..52ad5040a 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/reflect/protoreflect -version: v1.28.1 +version: v1.30.0 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index 44351250a..e96904398 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/reflect/protoregistry -version: v1.28.1 +version: v1.30.0 type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index 48dc76686..92c41e498 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/runtime/protoiface -version: v1.28.1 +version: v1.30.0 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface license: bsd-3-clause licenses: -- sources: protobuf@v1.28.1/LICENSE +- sources: protobuf@v1.30.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.28.1/PATENTS +- sources: protobuf@v1.30.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml index e77248e58..cef0ee501 100644 --- a/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml +++ b/.licenses/arduino-create-agent/go/gopkg.in/yaml.v3.dep.yml @@ -4,7 +4,7 @@ version: v3.0.1 type: go summary: Package yaml implements YAML support for the Go language. homepage: https://pkg.go.dev/gopkg.in/yaml.v3 -license: other +license: mit licenses: - sources: LICENSE text: |2 diff --git a/go.mod b/go.mod index 8e67e84b4..50de5cc4c 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 - github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 + github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e github.com/arduino/go-paths-helper v1.9.1 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 @@ -49,6 +49,7 @@ require ( github.com/go-playground/validator/v10 v10.11.2 // indirect github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.0 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/gorilla/websocket v1.4.0 // indirect @@ -61,6 +62,7 @@ require ( github.com/kr/binarydist v0.1.0 // indirect github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.1 // indirect + github.com/leonelquinteros/gotext v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b // indirect github.com/mattn/go-isatty v0.0.17 // indirect @@ -71,15 +73,15 @@ require ( github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/smartystreets/goconvey v1.6.4 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect golang.org/x/net v0.10.0 // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/text v0.9.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect - gopkg.in/ini.v1 v1.62.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 3f24e2ded..8a528820b 100644 --- a/go.sum +++ b/go.sum @@ -1,77 +1,30 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZKpY1VU0VTxOv+jV6NVgJEZ/hMBVs= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026 h1:YzxiXS2tBkotw65inAy9hYkXEHcCmszj9mRNQXNEEnU= -github.com/arduino/arduino-cli v0.0.0-20210422154105-5aa424818026/go.mod h1:5dWroFPvaWuBNVuYMV0X8osqIhyUG5otRgJlRHN831E= -github.com/arduino/board-discovery v0.0.0-20180823133458-1ba29327fb0c/go.mod h1:HK7SpkEax/3P+0w78iRQx1sz1vCDYYw9RXwHjQTB5i8= -github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.4.0/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= +github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= github.com/arduino/go-paths-helper v1.9.1 h1:qpK+zMMjsklSBQa09/P5FZ/uf3LyjVmJK3DLeyiGjCc= github.com/arduino/go-paths-helper v1.9.1/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= -github.com/arduino/go-properties-orderedmap v1.3.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= -github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b/go.mod h1:uwGy5PpN4lqW97FiLnbcx+xx8jly5YuPMJWfVwwjJiQ= -github.com/arduino/go-win32-utils v0.0.0-20180330194947-ed041402e83b/go.mod h1:iIPnclBMYm1g32Q5kXoqng4jLhMStReIP7ZxaoUC2y8= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cmaglie/go.rice v1.0.3/go.mod h1:AF3bOWkvdOpp8/S3UL8qbQ4N7DiISIbJtj54GWFPAsc= -github.com/cmaglie/pb v1.0.27/go.mod h1:GilkKZMXYjBA4NxItWFfO+lwkp59PLHQ+IOW/b/kmZI= -github.com/codeclysm/cc v1.2.2/go.mod h1:XtW4ArCNgQwFphcRGG9+sPX5WM1J6/u0gMy5ZdV3obA= -github.com/codeclysm/extract/v3 v3.0.2/go.mod h1:NKsw+hqua9H+Rlwy/w/3Qgt9jDonYEgB6wJu+25eOKw= github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/goselect v0.1.1/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4wg/adLLz5xh5CmpiCA= github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fluxio/iohelpers v0.0.0-20160419043813-3a4dd67a94d2/go.mod h1:c7sGIpDbBo0JZZ1tKyC1p5smWf8QcUjK4bFtZjHAecg= -github.com/fluxio/multierror v0.0.0-20160419044231-9c68d39025e5/go.mod h1:BEUDl7FG1cc76sM0J0x8dqr6RhiL4uqvk6oFkwuNyuM= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 h1:6uJ+sZ/e03gkbqZ0kUG6mfKoqDb4XMAzMIwlajq19So= @@ -86,17 +39,12 @@ github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f h1:wrYrQttPS8FHIRSl github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= github.com/getlantern/systray v1.1.0 h1:U0wCEqseLi2ok1fE6b88gJklzriavPJixZysZPkZd/Y= github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1yWbVabNgpCM= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= @@ -108,31 +56,10 @@ github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 h1:OL2d27ueTKnlQJoqLW2fc9pWYulFnJYLWzomGV7HqZo= github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4/go.mod h1:Pw1H1OjSNHiqeuxAduB1BKYXIwFtsyrY47nEqSgEiCM= @@ -144,137 +71,64 @@ github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGa github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/h2non/filetype v1.0.6/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= -github.com/h2non/filetype v1.0.8/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/clock v0.0.0-20180524022203-d293bb356ca4/go.mod h1:nD0vlnrUjcjJhqN5WuCWZyzfd5AHZAC9/ajvbSx69xA= -github.com/juju/errors v0.0.0-20150916125642-1b5e39b83d18/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/errors v0.0.0-20200330140219-3fe23663418f h1:MCOvExGLpaSIzLYB4iQXEHP4jYVU6vmzLNQPdMVrxnM= github.com/juju/errors v0.0.0-20200330140219-3fe23663418f/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20170605014607-8232ab8918d9/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 h1:UUHMLvzt/31azWTN/ifGWef4WUqvXk0iRqdhdy/2uzI= -github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= -github.com/juju/retry v0.0.0-20160928201858-1998d01ba1c3/go.mod h1:OohPQGsr4pnxwD5YljhQ+TZnuVRYpa5irjugL1Yuif4= github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0 h1:+WWUkhnTjV6RNOxkcwk79qrjeyHEHvBzlneueBsatX4= -github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0/go.mod h1:hpGvhGHPVbNBraRLZEhoQwFLMrjK8PSlO4D3nDjKYXo= -github.com/juju/utils v0.0.0-20180808125547-9dfc6dbfb02b/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= -github.com/juju/version v0.0.0-20161031051906-1f41e27e54f2/go.mod h1:kE8gK5X0CImdr7qpSKl3xB2PmpySSmfj7zVbkZFs81U= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leonelquinteros/gotext v1.4.0 h1:2NHPCto5IoMXbrT0bldPrxj0qM5asOCwtb1aUQZ1tys= github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2spuF/i/Qlsvz1Us= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0ReT1eKt5QlKjwgi5AFm5mI6O1A2G4ChI0Ag= -github.com/marcinbor85/gohex v0.0.0-20210308104911-55fb1c624d84/go.mod h1:Pb6XcsXyropB9LNHhnqaknG/vEwYztLkQzVCHv8sQ3M= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mdlayher/genetlink v0.0.0-20190313224034-60417448a851/go.mod h1:EsbsAEUEs15qC1cosAwxgCWV0Qhd8TmkxnA9Kw1Vhl4= -github.com/mdlayher/netlink v0.0.0-20190313131330-258ea9dff42c/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= -github.com/mdlayher/taskstats v0.0.0-20190313225729-7cbba52ee072/go.mod h1:sGdS7A6CAETR53zkdjGkgoFlh1vSm7MtX+i8XfEsTMA= -github.com/miekg/dns v1.0.5/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/oleksandr/bonjour v0.0.0-20160508152359-5dcf00d8b228/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 h1:d291KOLbN1GthTPA1fLKyWdclX3k1ZP+CzYtun+a5Es= github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= -github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.4 h1:Lb0RYJCmgUcBgZosfoi9Y9sbl6+LJgOIgk/2Y4YjMFg= github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583/go.mod h1:sFPiU/UgDcsQVu3vkqpZLCXWFwUoQRpHGu9ATihPAl0= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e/go.mod h1:tm/wZFQ8e24NYaBGIlnO2WGCAi67re4HHuOm0sftE/M= -github.com/segmentio/objconv v1.0.1/go.mod h1:auayaH5k3137Cl4SoXTgrzQcuQDmvuVtZgS0fb1Ahys= -github.com/segmentio/stats/v4 v4.5.3/go.mod h1:LsaahUJR7iiSs8mnkvQvdQ/RLHAS5adGLxuntg0ydGo= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 h1:ZMBZ2DKX1sScUSo9ZUwGI7jCMukslPNQNfZaw9vVyfY= github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485/go.mod h1:9qeq2P58+4+LyuncL3waJDG+giOfXgowfrRZZF9XdWk= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= @@ -283,24 +137,10 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykE github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.0.1-0.20200710201246-675ae5f5a98c/go.mod h1:aeNIJzz/GSSVlS+gpCpQWZ83BKbsoW57mr90+YthtkQ= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= -github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -308,94 +148,45 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.6 h1:zoJUBK8kLIUDNJ9LGB04qOQRfoDRoWBBpl0X7pZyi5I= github.com/ugorji/go v1.1.6/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= -github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea h1:CyhwejzVGvZ3Q2PSbQ4NRRYn+ZWv5eS1vlaEusT+bAI= github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea/go.mod h1:eNr558nEUjP8acGw8FFjTeWvSgU1stO7FAO6eknhHe4= -go.bug.st/cleanup v1.0.0/go.mod h1:EqVmTg2IBk4znLbPD28xne3abjsJftMdqqJEjhn70bk= go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= -go.bug.st/relaxed-semver v0.0.0-20190922224835-391e10178d18/go.mod h1:Cx1VqMtEhE9pIkEyUj3LVVVPkv89dgW8aCKrRPDR/uE= -go.bug.st/serial v1.1.2/go.mod h1:VmYBeyJWp5BnJ0tw2NUJHZdJTGl2ecBGABHlzRK1knY= go.bug.st/serial v1.4.1 h1:AwYUNixVf90XymNeJaUkMrPp+GZQe3RMFQmpVdHIUK8= go.bug.st/serial v1.4.1/go.mod h1:z8CesKorE90Qr/oRSJiEuvzYRKol9r/anJZEb5kt304= -go.bug.st/serial.v1 v0.0.0-20180827123349-5f7892a7bb45/go.mod h1:dRSl/CVCTf56CkXgJMDOdSwNfo2g1orOGE/gBGdvjZw= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 h1:+qjyw15FIXxmcA/QmrDrofQPLMAav6X2v+UYH/pQq8A= goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4/go.mod h1:NnzBwdNktihbNek+pPiFMQP9PPFsUt8MMPPyo9opDSo= golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/crypto v0.0.0-20180214000028-650f4a345ab4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200406173513-056763e48d71/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -405,75 +196,25 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20160818015218-f2b6f6c918c4/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -gopkg.in/yaml.v2 v2.0.0-20170712054546-1be3d31502d6/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/upload/upload.go b/upload/upload.go index 3cc4fe990..ba06c4a82 100644 --- a/upload/upload.go +++ b/upload/upload.go @@ -165,7 +165,7 @@ func Kill() { // sometimes) and an error (usually because the port listing failed) func reset(port string, wait bool, l Logger) (string, error) { info(l, "Restarting in bootloader mode") - newPort, err := serialutils.Reset(port, wait, nil) // TODO use callbacks to print as the cli does + newPort, err := serialutils.Reset(port, wait, nil, false) // TODO use callbacks to print as the cli does if err != nil { info(l, err) return "", err From 1d88dcbf6f7da7c4a4809e5970bb0bc4138bcdc6 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 28 Aug 2023 11:51:35 +0200 Subject: [PATCH 107/233] Bump go 1.20 (#814) * bump GO to 1.20 * fix license cache --- .github/workflows/check-go-dependencies-task.yml | 2 +- .github/workflows/check-go-task.yml | 2 +- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- .licensed.yml | 4 ++++ .../{internal/alias.dep.yml => curve25519.dep.yml} | 9 +++++---- go.mod | 2 +- 9 files changed, 16 insertions(+), 11 deletions(-) rename .licenses/arduino-create-agent/go/golang.org/x/crypto/{internal/alias.dep.yml => curve25519.dep.yml} (91%) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index b460b96fa..ed31f06b5 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -3,7 +3,7 @@ name: Check Go Dependencies env: # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.19" + GO_VERSION: "1.20" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 32c039526..5d6796017 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -3,7 +3,7 @@ name: Check Go env: # See: https://github.com/actions/setup-go/tree/main#supported-version-syntax - GO_VERSION: "1.19" + GO_VERSION: "1.20" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index fb755a25c..14b7df441 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -30,7 +30,7 @@ on: repository_dispatch: env: - GO_VERSION: "1.19" + GO_VERSION: "1.20" jobs: run-determination: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 54c3b70fb..51041c4eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ env: AC_USERNAME: ${{ secrets.AC_USERNAME }} # used by gon AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.19" + GO_VERSION: "1.20" jobs: # The build job is responsible for: configuring the environment, testing and compiling process diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index b257b505f..7bc9d38e0 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -3,7 +3,7 @@ name: Test Integration env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.19" + GO_VERSION: "1.20" # See: https://github.com/actions/setup-python/tree/v2#available-versions-of-python PYTHON_VERSION: "3.9" diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index fa4a67854..492511218 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -3,7 +3,7 @@ name: Test Go env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.19" + GO_VERSION: "1.20" # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows on: diff --git a/.licensed.yml b/.licensed.yml index b8e0c8347..c772413d0 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -5,6 +5,10 @@ sources: apps: - source_path: ./ +reviewed: + go: + - golang.org/x/crypto/curve25519 + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies/AGPL-3.0/.licensed.yml allowed: # The following are based on: https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml index bc4f08430..87fad2602 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/internal/alias.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml @@ -1,10 +1,11 @@ --- -name: golang.org/x/crypto/internal/alias +name: golang.org/x/crypto/curve25519 version: v0.9.0 type: go -summary: Package alias implements memory aliasing tests. -homepage: https://pkg.go.dev/golang.org/x/crypto/internal/alias -license: bsd-3-clause +summary: Package curve25519 provides an implementation of the X25519 function, which + performs scalar multiplication on the elliptic curve known as Curve25519. +homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519 +license: other licenses: - sources: crypto@v0.9.0/LICENSE text: | diff --git a/go.mod b/go.mod index 50de5cc4c..49cffdf3b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/arduino/arduino-create-agent -go 1.19 +go 1.20 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 From 604da4abc4854ca5ee11552dd2986fc5d69616e7 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 28 Aug 2023 12:46:56 +0200 Subject: [PATCH 108/233] Bump GOA to V3 and generate (#815) * go get goa v3 & go mod tidy * bump goa version used in design files (DSL) * goa gen github.com/arduino/arduino-create-agent/design a lot of docs file were deleted because in #670 I forgot to run generate Same * remove doc server followup of #670 since generated doc files are not there anymore * go mod tidy again * bump to goa v3 also in v2 package * fixes after bump to goa v3 (needs to be tested) * update license cache * apply suggestions by code-review --- .../v5.dep.yml} | 6 +- .../go/github.com/google/uuid.dep.yml | 38 + .../go/github.com/gorilla/websocket.dep.yml | 2 +- .../go/goa.design/goa/{ => v3}/http.dep.yml | 11 +- .../goa/{ => v3}/http/middleware.dep.yml | 11 +- .../v3/middleware.dep.yml} | 10 +- .../go/goa.design/goa/v3/pkg.dep.yml | 34 + .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +- .../go/golang.org/x/crypto/curve25519.dep.yml | 6 +- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +- .../golang.org/x/crypto/openpgp/armor.dep.yml | 6 +- .../x/crypto/openpgp/elgamal.dep.yml | 6 +- .../x/crypto/openpgp/errors.dep.yml | 6 +- .../x/crypto/openpgp/packet.dep.yml | 6 +- .../golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +- .../crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +- .../go/golang.org/x/net/bpf.dep.yml | 6 +- .../go/golang.org/x/net/http2.dep.yml | 6 +- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +- .../golang.org/x/net/internal/socket.dep.yml | 6 +- .../go/golang.org/x/net/ipv4.dep.yml | 6 +- .../go/golang.org/x/net/ipv6.dep.yml | 6 +- .../go/golang.org/x/sys/unix.dep.yml | 6 +- .../x/text/internal/language.dep.yml | 6 +- .../x/text/internal/language/compact.dep.yml | 6 +- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +- .../go/golang.org/x/text/language.dep.yml | 6 +- .../protobuf/encoding/protowire.dep.yml | 6 +- .../protobuf/internal/detrand.dep.yml | 6 +- .../internal/encoding/messageset.dep.yml | 6 +- .../protobuf/internal/errors.dep.yml | 6 +- .../protobuf/internal/flags.dep.yml | 6 +- .../protobuf/internal/genid.dep.yml | 6 +- .../protobuf/internal/order.dep.yml | 6 +- .../protobuf/internal/pragma.dep.yml | 6 +- .../protobuf/internal/strs.dep.yml | 6 +- .../google.golang.org/protobuf/proto.dep.yml | 6 +- .../protobuf/reflect/protoreflect.dep.yml | 6 +- .../protobuf/reflect/protoregistry.dep.yml | 6 +- .../protobuf/runtime/protoiface.dep.yml | 6 +- design/design.go | 2 +- design/pkgs.go | 2 +- gen/docs/client.go | 21 - gen/docs/endpoints.go | 25 - gen/docs/service.go | 22 - gen/http/cli/arduino_create_agent/cli.go | 64 +- gen/http/docs/client/client.go | 44 - gen/http/docs/client/encode_decode.go | 8 - gen/http/docs/client/paths.go | 8 - gen/http/docs/client/types.go | 8 - gen/http/docs/server/encode_decode.go | 8 - gen/http/docs/server/paths.go | 8 - gen/http/docs/server/server.go | 73 -- gen/http/docs/server/types.go | 8 - gen/http/indexes/client/cli.go | 14 +- gen/http/indexes/client/client.go | 15 +- gen/http/indexes/client/encode_decode.go | 72 +- gen/http/indexes/client/paths.go | 2 +- gen/http/indexes/client/types.go | 9 +- gen/http/indexes/server/encode_decode.go | 95 +- gen/http/indexes/server/paths.go | 2 +- gen/http/indexes/server/server.go | 100 +- gen/http/indexes/server/types.go | 6 +- gen/http/openapi.json | 2 +- gen/http/openapi.yaml | 938 +++++++++--------- gen/http/openapi3.json | 1 + gen/http/openapi3.yaml | 379 +++++++ gen/http/tools/client/cli.go | 14 +- gen/http/tools/client/client.go | 18 +- gen/http/tools/client/encode_decode.go | 90 +- gen/http/tools/client/paths.go | 2 +- gen/http/tools/client/types.go | 20 +- gen/http/tools/server/encode_decode.go | 42 +- gen/http/tools/server/paths.go | 2 +- gen/http/tools/server/server.go | 120 +-- gen/http/tools/server/types.go | 12 +- gen/indexes/client.go | 19 +- gen/indexes/endpoints.go | 10 +- gen/indexes/service.go | 28 +- gen/indexes/views/view.go | 11 +- gen/tools/client.go | 16 +- gen/tools/endpoints.go | 12 +- gen/tools/service.go | 82 +- gen/tools/views/view.go | 23 +- go.mod | 25 +- go.sum | 59 +- v2/http.go | 16 +- 93 files changed, 1556 insertions(+), 1347 deletions(-) rename .licenses/arduino-create-agent/go/github.com/dimfeld/{httptreemux.dep.yml => httptreemux/v5.dep.yml} (91%) create mode 100644 .licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml rename .licenses/arduino-create-agent/go/goa.design/goa/{ => v3}/http.dep.yml (84%) rename .licenses/arduino-create-agent/go/goa.design/goa/{ => v3}/http/middleware.dep.yml (82%) rename .licenses/arduino-create-agent/go/goa.design/{goa.dep.yml => goa/v3/middleware.dep.yml} (85%) create mode 100644 .licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml delete mode 100644 gen/docs/client.go delete mode 100644 gen/docs/endpoints.go delete mode 100644 gen/docs/service.go delete mode 100644 gen/http/docs/client/client.go delete mode 100644 gen/http/docs/client/encode_decode.go delete mode 100644 gen/http/docs/client/paths.go delete mode 100644 gen/http/docs/client/types.go delete mode 100644 gen/http/docs/server/encode_decode.go delete mode 100644 gen/http/docs/server/paths.go delete mode 100644 gen/http/docs/server/server.go delete mode 100644 gen/http/docs/server/types.go create mode 100644 gen/http/openapi3.json create mode 100644 gen/http/openapi3.yaml diff --git a/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml b/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml rename to .licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml index 1fe733b11..768570786 100644 --- a/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml @@ -1,10 +1,10 @@ --- -name: github.com/dimfeld/httptreemux -version: v5.0.1+incompatible +name: github.com/dimfeld/httptreemux/v5 +version: v5.5.0 type: go summary: This is inspired by Julien Schmidt's httprouter, in that it uses a patricia tree, but the implementation is rather different. -homepage: https://pkg.go.dev/github.com/dimfeld/httptreemux +homepage: https://pkg.go.dev/github.com/dimfeld/httptreemux/v5 license: mit licenses: - sources: LICENSE diff --git a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml new file mode 100644 index 000000000..7f334eb6e --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml @@ -0,0 +1,38 @@ +--- +name: github.com/google/uuid +version: v1.3.0 +type: go +summary: Package uuid generates and inspects UUIDs. +homepage: https://pkg.go.dev/github.com/google/uuid +license: bsd-3-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2009,2014 Google Inc. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml b/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml index 47a7a9411..b3abb5163 100644 --- a/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gorilla/websocket -version: v1.4.0 +version: v1.5.0 type: go summary: Package websocket implements the WebSocket protocol defined in RFC 6455. homepage: https://pkg.go.dev/github.com/gorilla/websocket diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml similarity index 84% rename from .licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml rename to .licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml index 8c69b62ff..2f5b72763 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/http.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml @@ -1,12 +1,13 @@ --- -name: goa.design/goa/http -version: v1.0.1-0.20190116060309-40843d63b0e4 +name: goa.design/goa/v3/http +version: v3.12.4 type: go -summary: -homepage: https://pkg.go.dev/goa.design/goa/http +summary: Package http contains HTTP specific constructs that complement the code generated + by Goa. +homepage: https://pkg.go.dev/goa.design/goa/v3/http license: mit licenses: -- sources: goa@v1.0.1-0.20190116060309-40843d63b0e4/LICENSE +- sources: v3@v3.12.4/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml similarity index 82% rename from .licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml rename to .licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml index 6945f1cdb..bd9bbbf48 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/http/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml @@ -1,12 +1,13 @@ --- -name: goa.design/goa/http/middleware -version: v1.0.1-0.20190116060309-40843d63b0e4 +name: goa.design/goa/v3/http/middleware +version: v3.12.4 type: go -summary: -homepage: https://pkg.go.dev/goa.design/goa/http/middleware +summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to + provide additional functionality. +homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware license: mit licenses: -- sources: goa@v1.0.1-0.20190116060309-40843d63b0e4/LICENSE +- sources: v3@v3.12.4/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml similarity index 85% rename from .licenses/arduino-create-agent/go/goa.design/goa.dep.yml rename to .licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml index 0324e20a3..07fd2adbd 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml @@ -1,12 +1,12 @@ --- -name: goa.design/goa -version: v1.0.1-0.20190116060309-40843d63b0e4 +name: goa.design/goa/v3/middleware +version: v3.12.4 type: go -summary: -homepage: https://pkg.go.dev/goa.design/goa +summary: Package middleware contains transport independent middlewares. +homepage: https://pkg.go.dev/goa.design/goa/v3/middleware license: mit licenses: -- sources: LICENSE +- sources: v3@v3.12.4/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml new file mode 100644 index 000000000..73b6cd954 --- /dev/null +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml @@ -0,0 +1,34 @@ +--- +name: goa.design/goa/v3/pkg +version: v3.12.4 +type: go +summary: Package goa implements a Go framework for writing microservices that promotes + best practice by providing a single source of truth from which server code, client + code, and documentation is derived. +homepage: https://pkg.go.dev/goa.design/goa/v3/pkg +license: mit +licenses: +- sources: v3@v3.12.4/LICENSE + text: | + The MIT License (MIT) + + Copyright (c) 2015 Raphael Simon and goa Contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index 32542ee80..2b03d90da 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.9.0 +version: v0.12.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index 07797706d..e6eb77a48 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.9.0 +version: v0.12.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml index 87fad2602..49745efc0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/curve25519 -version: v0.9.0 +version: v0.12.0 type: go summary: Package curve25519 provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519. homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519 license: other licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index a78617c44..8f9003434 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.9.0 +version: v0.12.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 970ce11cb..1f042d482 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.9.0 +version: v0.12.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index e21bf90be..0d86c7467 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.9.0 +version: v0.12.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 938c50dea..939bed409 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.9.0 +version: v0.12.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index a1e4a4eed..e8835b050 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.9.0 +version: v0.12.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index d8f8967e3..0affbd8cd 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.9.0 +version: v0.12.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index 246dc47dd..2bd72897a 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.9.0 +version: v0.12.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 3300fee37..390a4a942 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.9.0 +version: v0.12.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 7bc31a8e2..d21b73b20 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.9.0 +version: v0.12.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index f27a4a5d7..6972aa661 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.9.0 +version: v0.12.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 986ccaff9..a139cbc4c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.9.0 +version: v0.12.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.9.0/LICENSE +- sources: crypto@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.9.0/PATENTS +- sources: crypto@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 7a5ce7ec7..9e307f7c1 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.10.0 +version: v0.14.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index d0b815028..cbf8c0acf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.10.0 +version: v0.14.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 7a42a0b3e..7664817d2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.10.0 +version: v0.14.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 84f4c1e16..0e2f3f5f2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.10.0 +version: v0.14.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 1b693f0a2..c6297a5d0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.10.0 +version: v0.14.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index eb327c756..a2266173d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.10.0 +version: v0.14.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 197505ab8..4d272a7a7 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.10.0 +version: v0.14.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.10.0/LICENSE +- sources: net@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.10.0/PATENTS +- sources: net@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index aeb5367d3..c762d63dc 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.8.0 +version: v0.11.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.8.0/LICENSE +- sources: sys@v0.11.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.8.0/PATENTS +- sources: sys@v0.11.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index ee6bc7364..85143d519 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.9.0 +version: v0.12.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.9.0/LICENSE +- sources: text@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.9.0/PATENTS +- sources: text@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index eeb0da1d6..bdff88a8a 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.9.0 +version: v0.12.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.9.0/LICENSE +- sources: text@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.9.0/PATENTS +- sources: text@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index 86d4f6934..aca4fbcca 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.9.0 +version: v0.12.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.9.0/LICENSE +- sources: text@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.9.0/PATENTS +- sources: text@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index e174298a5..266a8d28e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.9.0 +version: v0.12.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.9.0/LICENSE +- sources: text@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.9.0/PATENTS +- sources: text@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index beb0e7880..92450adf2 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/encoding/protowire -version: v1.30.0 +version: v1.31.0 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index 7cb833aa4..5a3ce24f0 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/detrand -version: v1.30.0 +version: v1.31.0 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index 98ff26bf9..894b34a4f 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/encoding/messageset -version: v1.30.0 +version: v1.31.0 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index 3cefaae5e..abaf8506d 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/errors -version: v1.30.0 +version: v1.31.0 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index c8abf3682..00b7eb5f6 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/flags -version: v1.30.0 +version: v1.31.0 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index 4ac0531da..c7cebaba3 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/genid -version: v1.30.0 +version: v1.31.0 type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml index 9c2ea0a9f..7726c9988 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/order -version: v1.30.0 +version: v1.31.0 type: go summary: Package order provides ordered access to messages and maps. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index 34e7153c3..7dac9ae78 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/pragma -version: v1.30.0 +version: v1.31.0 type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index 1fc7f9fa6..4e22c9344 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/strs -version: v1.30.0 +version: v1.31.0 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index 8bdc4a98a..a898c7fb7 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/proto -version: v1.30.0 +version: v1.31.0 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 52ad5040a..31c905bac 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/reflect/protoreflect -version: v1.30.0 +version: v1.31.0 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index e96904398..15277039f 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/reflect/protoregistry -version: v1.30.0 +version: v1.31.0 type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index 92c41e498..873b8907e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/runtime/protoiface -version: v1.30.0 +version: v1.31.0 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface license: bsd-3-clause licenses: -- sources: protobuf@v1.30.0/LICENSE +- sources: protobuf@v1.31.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.30.0/PATENTS +- sources: protobuf@v1.31.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/design/design.go b/design/design.go index f2c07ecf5..7fb32d206 100644 --- a/design/design.go +++ b/design/design.go @@ -15,7 +15,7 @@ package design -import . "goa.design/goa/dsl" +import . "goa.design/goa/v3/dsl" var _ = API("arduino-create-agent", func() { Title("Arduino Create Agent") diff --git a/design/pkgs.go b/design/pkgs.go index 081af2ec5..f47ca0fe0 100644 --- a/design/pkgs.go +++ b/design/pkgs.go @@ -15,7 +15,7 @@ package design -import . "goa.design/goa/dsl" +import . "goa.design/goa/v3/dsl" var _ = Service("indexes", func() { Description("The indexes service manages the package_index files") diff --git a/gen/docs/client.go b/gen/docs/client.go deleted file mode 100644 index 480f8dc7a..000000000 --- a/gen/docs/client.go +++ /dev/null @@ -1,21 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs client -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package docs - -import ( - goa "goa.design/goa" -) - -// Client is the "docs" service client. -type Client struct { -} - -// NewClient initializes a "docs" service client given the endpoints. -func NewClient(goa.Endpoint) *Client { - return &Client{} -} diff --git a/gen/docs/endpoints.go b/gen/docs/endpoints.go deleted file mode 100644 index c03e4ab49..000000000 --- a/gen/docs/endpoints.go +++ /dev/null @@ -1,25 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs endpoints -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package docs - -import ( - goa "goa.design/goa" -) - -// Endpoints wraps the "docs" service endpoints. -type Endpoints struct { -} - -// NewEndpoints wraps the methods of the "docs" service with endpoints. -func NewEndpoints(s Service) *Endpoints { - return &Endpoints{} -} - -// Use applies the given middleware to all the "docs" service endpoints. -func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) { -} diff --git a/gen/docs/service.go b/gen/docs/service.go deleted file mode 100644 index 3b1e0a265..000000000 --- a/gen/docs/service.go +++ /dev/null @@ -1,22 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs service -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package docs - -// Service is the docs service interface. -type Service interface { -} - -// ServiceName is the name of the service as defined in the design. This is the -// same value that is set in the endpoint request contexts under the ServiceKey -// key. -const ServiceName = "docs" - -// MethodNames lists the service method names as defined in the design. These -// are the same values that are set in the endpoint request contexts under the -// MethodKey key. -var MethodNames = [0]string{} diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index 76e9a56e2..75ec883ef 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // arduino-create-agent HTTP client CLI support package // @@ -15,14 +15,13 @@ import ( indexesc "github.com/arduino/arduino-create-agent/gen/http/indexes/client" toolsc "github.com/arduino/arduino-create-agent/gen/http/tools/client" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // UsageCommands returns the set of commands and sub-commands using the format // -// command (subcommand1|subcommand2|...) -// +// command (subcommand1|subcommand2|...) func UsageCommands() string { return `indexes (list|add|remove) tools (available|installed|install|remove) @@ -44,7 +43,7 @@ func ParseEndpoint( enc func(*http.Request) goahttp.Encoder, dec func(*http.Response) goahttp.Decoder, restore bool, -) (goa.Endpoint, interface{}, error) { +) (goa.Endpoint, any, error) { var ( indexesFlags = flag.NewFlagSet("indexes", flag.ContinueOnError) @@ -159,7 +158,7 @@ func ParseEndpoint( } var ( - data interface{} + data any endpoint goa.Endpoint err error ) @@ -207,7 +206,7 @@ func ParseEndpoint( func indexesUsage() { fmt.Fprintf(os.Stderr, `The indexes service manages the package_index files Usage: - %s [globalflags] indexes COMMAND [flags] + %[1]s [globalflags] indexes COMMAND [flags] COMMAND: list: List implements list. @@ -215,41 +214,41 @@ COMMAND: remove: Remove implements remove. Additional help: - %s indexes COMMAND --help -`, os.Args[0], os.Args[0]) + %[1]s indexes COMMAND --help +`, os.Args[0]) } func indexesListUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] indexes list + fmt.Fprintf(os.Stderr, `%[1]s [flags] indexes list List implements list. Example: - `+os.Args[0]+` indexes list + %[1]s indexes list `, os.Args[0]) } func indexesAddUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] indexes add -body JSON + fmt.Fprintf(os.Stderr, `%[1]s [flags] indexes add -body JSON Add implements add. -body JSON: Example: - `+os.Args[0]+` indexes add --body '{ - "url": "http://downloads.arduino.cc/packages/package_index.json" + %[1]s indexes add --body '{ + "url": "https://downloads.arduino.cc/packages/package_index.json" }' `, os.Args[0]) } func indexesRemoveUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] indexes remove -body JSON + fmt.Fprintf(os.Stderr, `%[1]s [flags] indexes remove -body JSON Remove implements remove. -body JSON: Example: - `+os.Args[0]+` indexes remove --body '{ - "url": "http://downloads.arduino.cc/packages/package_index.json" + %[1]s indexes remove --body '{ + "url": "https://downloads.arduino.cc/packages/package_index.json" }' `, os.Args[0]) } @@ -258,7 +257,7 @@ Example: func toolsUsage() { fmt.Fprintf(os.Stderr, `The tools service manages the available and installed tools Usage: - %s [globalflags] tools COMMAND [flags] + %[1]s [globalflags] tools COMMAND [flags] COMMAND: available: Available implements available. @@ -267,48 +266,48 @@ COMMAND: remove: Remove implements remove. Additional help: - %s tools COMMAND --help -`, os.Args[0], os.Args[0]) + %[1]s tools COMMAND --help +`, os.Args[0]) } func toolsAvailableUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] tools available + fmt.Fprintf(os.Stderr, `%[1]s [flags] tools available Available implements available. Example: - `+os.Args[0]+` tools available + %[1]s tools available `, os.Args[0]) } func toolsInstalledUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] tools installed + fmt.Fprintf(os.Stderr, `%[1]s [flags] tools installed Installed implements installed. Example: - `+os.Args[0]+` tools installed + %[1]s tools installed `, os.Args[0]) } func toolsInstallUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] tools install -body JSON + fmt.Fprintf(os.Stderr, `%[1]s [flags] tools install -body JSON Install implements install. -body JSON: Example: - `+os.Args[0]+` tools install --body '{ - "checksum": "Quam voluptas voluptates expedita rem ipsum.", + %[1]s tools install --body '{ + "checksum": "Beatae dolor adipisci nulla et quam voluptas.", "name": "avrdude", "packager": "arduino", - "url": "Iusto libero explicabo beatae dolor adipisci nulla.", + "url": "Deserunt voluptatem impedit iusto libero.", "version": "6.3.0-arduino9" }' `, os.Args[0]) } func toolsRemoveUsage() { - fmt.Fprintf(os.Stderr, `%s [flags] tools remove -body JSON -packager STRING -name STRING -version STRING + fmt.Fprintf(os.Stderr, `%[1]s [flags] tools remove -body JSON -packager STRING -name STRING -version STRING Remove implements remove. -body JSON: @@ -317,8 +316,9 @@ Remove implements remove. -version STRING: The version of the tool Example: - `+os.Args[0]+` tools remove --body '{ - "url": "http://downloads.arduino.cc/packages/package_index.json" + %[1]s tools remove --body '{ + "checksum": "Ipsa minima quia.", + "url": "Expedita rem ipsum quasi harum nostrum." }' --packager "arduino" --name "avrdude" --version "6.3.0-arduino9" `, os.Args[0]) } diff --git a/gen/http/docs/client/client.go b/gen/http/docs/client/client.go deleted file mode 100644 index b7f6ee012..000000000 --- a/gen/http/docs/client/client.go +++ /dev/null @@ -1,44 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs client HTTP transport -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client - -import ( - "net/http" - - goahttp "goa.design/goa/http" -) - -// Client lists the docs service endpoint HTTP clients. -type Client struct { - // RestoreResponseBody controls whether the response bodies are reset after - // decoding so they can be read again. - RestoreResponseBody bool - - scheme string - host string - encoder func(*http.Request) goahttp.Encoder - decoder func(*http.Response) goahttp.Decoder -} - -// NewClient instantiates HTTP clients for all the docs service servers. -func NewClient( - scheme string, - host string, - doer goahttp.Doer, - enc func(*http.Request) goahttp.Encoder, - dec func(*http.Response) goahttp.Decoder, - restoreBody bool, -) *Client { - return &Client{ - RestoreResponseBody: restoreBody, - scheme: scheme, - host: host, - decoder: dec, - encoder: enc, - } -} diff --git a/gen/http/docs/client/encode_decode.go b/gen/http/docs/client/encode_decode.go deleted file mode 100644 index e6b7b4af3..000000000 --- a/gen/http/docs/client/encode_decode.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs HTTP client encoders and decoders -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client diff --git a/gen/http/docs/client/paths.go b/gen/http/docs/client/paths.go deleted file mode 100644 index f0c4e10eb..000000000 --- a/gen/http/docs/client/paths.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// HTTP request path constructors for the docs service. -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client diff --git a/gen/http/docs/client/types.go b/gen/http/docs/client/types.go deleted file mode 100644 index d2e2410ee..000000000 --- a/gen/http/docs/client/types.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs HTTP client types -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client diff --git a/gen/http/docs/server/encode_decode.go b/gen/http/docs/server/encode_decode.go deleted file mode 100644 index df1840332..000000000 --- a/gen/http/docs/server/encode_decode.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs HTTP server encoders and decoders -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server diff --git a/gen/http/docs/server/paths.go b/gen/http/docs/server/paths.go deleted file mode 100644 index 72ae3fc84..000000000 --- a/gen/http/docs/server/paths.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// HTTP request path constructors for the docs service. -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server diff --git a/gen/http/docs/server/server.go b/gen/http/docs/server/server.go deleted file mode 100644 index 627b1fb60..000000000 --- a/gen/http/docs/server/server.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs HTTP server -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server - -import ( - "context" - "net/http" - - docs "github.com/arduino/arduino-create-agent/gen/docs" - goahttp "goa.design/goa/http" -) - -// Server lists the docs service endpoint HTTP handlers. -type Server struct { - Mounts []*MountPoint -} - -// ErrorNamer is an interface implemented by generated error structs that -// exposes the name of the error as defined in the design. -type ErrorNamer interface { - ErrorName() string -} - -// MountPoint holds information about the mounted endpoints. -type MountPoint struct { - // Method is the name of the service method served by the mounted HTTP handler. - Method string - // Verb is the HTTP method used to match requests to the mounted handler. - Verb string - // Pattern is the HTTP request path pattern used to match requests to the - // mounted handler. - Pattern string -} - -// New instantiates HTTP handlers for all the docs service endpoints. -func New( - e *docs.Endpoints, - mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), -) *Server { - return &Server{ - Mounts: []*MountPoint{ - {"docs/pkgs.html", "GET", "/v2/docs/pkgs"}, - }, - } -} - -// Service returns the name of the service served. -func (s *Server) Service() string { return "docs" } - -// Use wraps the server handlers with the given middleware. -func (s *Server) Use(m func(http.Handler) http.Handler) { -} - -// Mount configures the mux to serve the docs endpoints. -func Mount(mux goahttp.Muxer) { - MountDocsPkgsHTML(mux, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - http.ServeFile(w, r, "docs/pkgs.html") - })) -} - -// MountDocsPkgsHTML configures the mux to serve GET request made to -// "/v2/docs/pkgs". -func MountDocsPkgsHTML(mux goahttp.Muxer, h http.Handler) { - mux.Handle("GET", "/v2/docs/pkgs", h.ServeHTTP) -} diff --git a/gen/http/docs/server/types.go b/gen/http/docs/server/types.go deleted file mode 100644 index 123e3bc30..000000000 --- a/gen/http/docs/server/types.go +++ /dev/null @@ -1,8 +0,0 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. -// -// docs HTTP server types -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server diff --git a/gen/http/indexes/client/cli.go b/gen/http/indexes/client/cli.go index f6a2ff094..52d376d69 100644 --- a/gen/http/indexes/client/cli.go +++ b/gen/http/indexes/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes HTTP client CLI support package // @@ -22,15 +22,13 @@ func BuildAddPayload(indexesAddBody string) (*indexes.IndexPayload, error) { { err = json.Unmarshal([]byte(indexesAddBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, example of valid JSON:\n%s", "'{\n \"url\": \"http://downloads.arduino.cc/packages/package_index.json\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"url\": \"https://downloads.arduino.cc/packages/package_index.json\"\n }'") } } - if err != nil { - return nil, err - } v := &indexes.IndexPayload{ URL: body.URL, } + return v, nil } @@ -42,14 +40,12 @@ func BuildRemovePayload(indexesRemoveBody string) (*indexes.IndexPayload, error) { err = json.Unmarshal([]byte(indexesRemoveBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, example of valid JSON:\n%s", "'{\n \"url\": \"http://downloads.arduino.cc/packages/package_index.json\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"url\": \"https://downloads.arduino.cc/packages/package_index.json\"\n }'") } } - if err != nil { - return nil, err - } v := &indexes.IndexPayload{ URL: body.URL, } + return v, nil } diff --git a/gen/http/indexes/client/client.go b/gen/http/indexes/client/client.go index 418f060c2..d0b4ec7f1 100644 --- a/gen/http/indexes/client/client.go +++ b/gen/http/indexes/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes client HTTP transport // @@ -11,8 +11,8 @@ import ( "context" "net/http" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // Client lists the indexes service endpoint HTTP clients. @@ -63,13 +63,12 @@ func (c *Client) List() goa.Endpoint { var ( decodeResponse = DecodeListResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildListRequest(ctx, v) if err != nil { return nil, err } resp, err := c.ListDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("indexes", "list", err) } @@ -84,7 +83,7 @@ func (c *Client) Add() goa.Endpoint { encodeRequest = EncodeAddRequest(c.encoder) decodeResponse = DecodeAddResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildAddRequest(ctx, v) if err != nil { return nil, err @@ -94,7 +93,6 @@ func (c *Client) Add() goa.Endpoint { return nil, err } resp, err := c.AddDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("indexes", "add", err) } @@ -109,7 +107,7 @@ func (c *Client) Remove() goa.Endpoint { encodeRequest = EncodeRemoveRequest(c.encoder) decodeResponse = DecodeRemoveResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildRemoveRequest(ctx, v) if err != nil { return nil, err @@ -119,7 +117,6 @@ func (c *Client) Remove() goa.Endpoint { return nil, err } resp, err := c.RemoveDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("indexes", "remove", err) } diff --git a/gen/http/indexes/client/encode_decode.go b/gen/http/indexes/client/encode_decode.go index 3bca6b10c..be2254655 100644 --- a/gen/http/indexes/client/encode_decode.go +++ b/gen/http/indexes/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes HTTP client encoders and decoders // @@ -10,18 +10,18 @@ package client import ( "bytes" "context" - "io/ioutil" + "io" "net/http" "net/url" indexes "github.com/arduino/arduino-create-agent/gen/indexes" indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" ) // BuildListRequest instantiates a HTTP request object with method and path set // to call the "indexes" service "list" endpoint -func (c *Client) BuildListRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildListRequest(ctx context.Context, v any) (*http.Request, error) { u := &url.URL{Scheme: c.scheme, Host: c.host, Path: ListIndexesPath()} req, err := http.NewRequest("GET", u.String(), nil) if err != nil { @@ -38,18 +38,18 @@ func (c *Client) BuildListRequest(ctx context.Context, v interface{}) (*http.Req // list endpoint. restoreBody controls whether the response body should be // restored after having been read. // DecodeListResponse may return the following errors: -// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest -// - error: internal error -func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest +// - error: internal error +func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -80,7 +80,7 @@ func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBod } return nil, NewListInvalidURL(&body) default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("indexes", "list", resp.StatusCode, string(body)) } } @@ -88,7 +88,7 @@ func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBod // BuildAddRequest instantiates a HTTP request object with method and path set // to call the "indexes" service "add" endpoint -func (c *Client) BuildAddRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildAddRequest(ctx context.Context, v any) (*http.Request, error) { u := &url.URL{Scheme: c.scheme, Host: c.host, Path: AddIndexesPath()} req, err := http.NewRequest("POST", u.String(), nil) if err != nil { @@ -103,8 +103,8 @@ func (c *Client) BuildAddRequest(ctx context.Context, v interface{}) (*http.Requ // EncodeAddRequest returns an encoder for requests sent to the indexes add // server. -func EncodeAddRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, interface{}) error { - return func(req *http.Request, v interface{}) error { +func EncodeAddRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error { + return func(req *http.Request, v any) error { p, ok := v.(*indexes.IndexPayload) if !ok { return goahttp.ErrInvalidType("indexes", "add", "*indexes.IndexPayload", v) @@ -121,18 +121,18 @@ func EncodeAddRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Re // add endpoint. restoreBody controls whether the response body should be // restored after having been read. // DecodeAddResponse may return the following errors: -// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest -// - error: internal error -func DecodeAddResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest +// - error: internal error +func DecodeAddResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -149,7 +149,7 @@ func DecodeAddResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody } p := NewAddOperationOK(&body) view := "default" - vres := &indexesviews.Operation{p, view} + vres := &indexesviews.Operation{Projected: p, View: view} if err = indexesviews.ValidateOperation(vres); err != nil { return nil, goahttp.ErrValidationError("indexes", "add", err) } @@ -170,7 +170,7 @@ func DecodeAddResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody } return nil, NewAddInvalidURL(&body) default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("indexes", "add", resp.StatusCode, string(body)) } } @@ -178,7 +178,7 @@ func DecodeAddResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody // BuildRemoveRequest instantiates a HTTP request object with method and path // set to call the "indexes" service "remove" endpoint -func (c *Client) BuildRemoveRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildRemoveRequest(ctx context.Context, v any) (*http.Request, error) { u := &url.URL{Scheme: c.scheme, Host: c.host, Path: RemoveIndexesPath()} req, err := http.NewRequest("POST", u.String(), nil) if err != nil { @@ -193,8 +193,8 @@ func (c *Client) BuildRemoveRequest(ctx context.Context, v interface{}) (*http.R // EncodeRemoveRequest returns an encoder for requests sent to the indexes // remove server. -func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, interface{}) error { - return func(req *http.Request, v interface{}) error { +func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error { + return func(req *http.Request, v any) error { p, ok := v.(*indexes.IndexPayload) if !ok { return goahttp.ErrInvalidType("indexes", "remove", "*indexes.IndexPayload", v) @@ -211,18 +211,18 @@ func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http // remove endpoint. restoreBody controls whether the response body should be // restored after having been read. // DecodeRemoveResponse may return the following errors: -// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest -// - error: internal error -func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest +// - error: internal error +func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -239,7 +239,7 @@ func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreB } p := NewRemoveOperationOK(&body) view := "default" - vres := &indexesviews.Operation{p, view} + vres := &indexesviews.Operation{Projected: p, View: view} if err = indexesviews.ValidateOperation(vres); err != nil { return nil, goahttp.ErrValidationError("indexes", "remove", err) } @@ -260,7 +260,7 @@ func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreB } return nil, NewRemoveInvalidURL(&body) default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("indexes", "remove", resp.StatusCode, string(body)) } } diff --git a/gen/http/indexes/client/paths.go b/gen/http/indexes/client/paths.go index 24fb5b1cb..6ae3e1516 100644 --- a/gen/http/indexes/client/paths.go +++ b/gen/http/indexes/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // HTTP request path constructors for the indexes service. // diff --git a/gen/http/indexes/client/types.go b/gen/http/indexes/client/types.go index 4d9d04b06..cdc4677ba 100644 --- a/gen/http/indexes/client/types.go +++ b/gen/http/indexes/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes HTTP client types // @@ -10,7 +10,7 @@ package client import ( indexes "github.com/arduino/arduino-create-agent/gen/indexes" indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // AddRequestBody is the type of the "indexes" service "add" endpoint HTTP @@ -123,6 +123,7 @@ func NewListInvalidURL(body *ListInvalidURLResponseBody) *goa.ServiceError { Timeout: *body.Timeout, Fault: *body.Fault, } + return v } @@ -132,6 +133,7 @@ func NewAddOperationOK(body *AddResponseBody) *indexesviews.OperationView { v := &indexesviews.OperationView{ Status: body.Status, } + return v } @@ -145,6 +147,7 @@ func NewAddInvalidURL(body *AddInvalidURLResponseBody) *goa.ServiceError { Timeout: *body.Timeout, Fault: *body.Fault, } + return v } @@ -154,6 +157,7 @@ func NewRemoveOperationOK(body *RemoveResponseBody) *indexesviews.OperationView v := &indexesviews.OperationView{ Status: body.Status, } + return v } @@ -168,6 +172,7 @@ func NewRemoveInvalidURL(body *RemoveInvalidURLResponseBody) *goa.ServiceError { Timeout: *body.Timeout, Fault: *body.Fault, } + return v } diff --git a/gen/http/indexes/server/encode_decode.go b/gen/http/indexes/server/encode_decode.go index 4172333cf..884d88004 100644 --- a/gen/http/indexes/server/encode_decode.go +++ b/gen/http/indexes/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes HTTP server encoders and decoders // @@ -9,19 +9,20 @@ package server import ( "context" + "errors" "io" "net/http" indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // EncodeListResponse returns an encoder for responses returned by the indexes // list endpoint. -func EncodeListResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { - res := v.([]string) +func EncodeListResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { + res, _ := v.([]string) enc := encoder(ctx, w) body := res w.WriteHeader(http.StatusOK) @@ -31,19 +32,25 @@ func EncodeListResponse(encoder func(context.Context, http.ResponseWriter) goaht // EncodeListError returns an encoder for errors returned by the list indexes // endpoint. -func EncodeListError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, error) error { - encodeError := goahttp.ErrorEncoder(encoder) +func EncodeListError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error { + encodeError := goahttp.ErrorEncoder(encoder, formatter) return func(ctx context.Context, w http.ResponseWriter, v error) error { - en, ok := v.(ErrorNamer) - if !ok { + var en goa.GoaErrorNamer + if !errors.As(v, &en) { return encodeError(ctx, w, v) } - switch en.ErrorName() { + switch en.GoaErrorName() { case "invalid_url": - res := v.(*goa.ServiceError) + var res *goa.ServiceError + errors.As(v, &res) enc := encoder(ctx, w) - body := NewListInvalidURLResponseBody(res) - w.Header().Set("goa-error", "invalid_url") + var body any + if formatter != nil { + body = formatter(ctx, res) + } else { + body = NewListInvalidURLResponseBody(res) + } + w.Header().Set("goa-error", res.GoaErrorName()) w.WriteHeader(http.StatusBadRequest) return enc.Encode(body) default: @@ -54,8 +61,8 @@ func EncodeListError(encoder func(context.Context, http.ResponseWriter) goahttp. // EncodeAddResponse returns an encoder for responses returned by the indexes // add endpoint. -func EncodeAddResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { +func EncodeAddResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { res := v.(*indexesviews.Operation) enc := encoder(ctx, w) body := NewAddResponseBody(res.Projected) @@ -66,8 +73,8 @@ func EncodeAddResponse(encoder func(context.Context, http.ResponseWriter) goahtt // DecodeAddRequest returns a decoder for requests sent to the indexes add // endpoint. -func DecodeAddRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (interface{}, error) { - return func(r *http.Request) (interface{}, error) { +func DecodeAddRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) { + return func(r *http.Request) (any, error) { var ( body AddRequestBody err error @@ -91,19 +98,25 @@ func DecodeAddRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Dec // EncodeAddError returns an encoder for errors returned by the add indexes // endpoint. -func EncodeAddError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, error) error { - encodeError := goahttp.ErrorEncoder(encoder) +func EncodeAddError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error { + encodeError := goahttp.ErrorEncoder(encoder, formatter) return func(ctx context.Context, w http.ResponseWriter, v error) error { - en, ok := v.(ErrorNamer) - if !ok { + var en goa.GoaErrorNamer + if !errors.As(v, &en) { return encodeError(ctx, w, v) } - switch en.ErrorName() { + switch en.GoaErrorName() { case "invalid_url": - res := v.(*goa.ServiceError) + var res *goa.ServiceError + errors.As(v, &res) enc := encoder(ctx, w) - body := NewAddInvalidURLResponseBody(res) - w.Header().Set("goa-error", "invalid_url") + var body any + if formatter != nil { + body = formatter(ctx, res) + } else { + body = NewAddInvalidURLResponseBody(res) + } + w.Header().Set("goa-error", res.GoaErrorName()) w.WriteHeader(http.StatusBadRequest) return enc.Encode(body) default: @@ -114,8 +127,8 @@ func EncodeAddError(encoder func(context.Context, http.ResponseWriter) goahttp.E // EncodeRemoveResponse returns an encoder for responses returned by the // indexes remove endpoint. -func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { +func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { res := v.(*indexesviews.Operation) enc := encoder(ctx, w) body := NewRemoveResponseBody(res.Projected) @@ -126,8 +139,8 @@ func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goa // DecodeRemoveRequest returns a decoder for requests sent to the indexes // remove endpoint. -func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (interface{}, error) { - return func(r *http.Request) (interface{}, error) { +func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) { + return func(r *http.Request) (any, error) { var ( body RemoveRequestBody err error @@ -151,19 +164,25 @@ func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp. // EncodeRemoveError returns an encoder for errors returned by the remove // indexes endpoint. -func EncodeRemoveError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, error) error { - encodeError := goahttp.ErrorEncoder(encoder) +func EncodeRemoveError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error { + encodeError := goahttp.ErrorEncoder(encoder, formatter) return func(ctx context.Context, w http.ResponseWriter, v error) error { - en, ok := v.(ErrorNamer) - if !ok { + var en goa.GoaErrorNamer + if !errors.As(v, &en) { return encodeError(ctx, w, v) } - switch en.ErrorName() { + switch en.GoaErrorName() { case "invalid_url": - res := v.(*goa.ServiceError) + var res *goa.ServiceError + errors.As(v, &res) enc := encoder(ctx, w) - body := NewRemoveInvalidURLResponseBody(res) - w.Header().Set("goa-error", "invalid_url") + var body any + if formatter != nil { + body = formatter(ctx, res) + } else { + body = NewRemoveInvalidURLResponseBody(res) + } + w.Header().Set("goa-error", res.GoaErrorName()) w.WriteHeader(http.StatusBadRequest) return enc.Encode(body) default: diff --git a/gen/http/indexes/server/paths.go b/gen/http/indexes/server/paths.go index f1ec8674d..08bf1d4a4 100644 --- a/gen/http/indexes/server/paths.go +++ b/gen/http/indexes/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // HTTP request path constructors for the indexes service. // diff --git a/gen/http/indexes/server/server.go b/gen/http/indexes/server/server.go index 99c912659..521fff980 100644 --- a/gen/http/indexes/server/server.go +++ b/gen/http/indexes/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes HTTP server // @@ -12,8 +12,8 @@ import ( "net/http" indexes "github.com/arduino/arduino-create-agent/gen/indexes" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // Server lists the indexes service endpoint HTTP handlers. @@ -24,12 +24,6 @@ type Server struct { Remove http.Handler } -// ErrorNamer is an interface implemented by generated error structs that -// exposes the name of the error as defined in the design. -type ErrorNamer interface { - ErrorName() string -} - // MountPoint holds information about the mounted endpoints. type MountPoint struct { // Method is the name of the service method served by the mounted HTTP handler. @@ -41,13 +35,19 @@ type MountPoint struct { Pattern string } -// New instantiates HTTP handlers for all the indexes service endpoints. +// New instantiates HTTP handlers for all the indexes service endpoints using +// the provided encoder and decoder. The handlers are mounted on the given mux +// using the HTTP verb and path defined in the design. errhandler is called +// whenever a response fails to be encoded. formatter is used to format errors +// returned by the service methods prior to encoding. Both errhandler and +// formatter are optional and can be nil. func New( e *indexes.Endpoints, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) *Server { return &Server{ Mounts: []*MountPoint{ @@ -55,9 +55,9 @@ func New( {"Add", "POST", "/v2/pkgs/indexes/add"}, {"Remove", "POST", "/v2/pkgs/indexes/delete"}, }, - List: NewListHandler(e.List, mux, dec, enc, eh), - Add: NewAddHandler(e.Add, mux, dec, enc, eh), - Remove: NewRemoveHandler(e.Remove, mux, dec, enc, eh), + List: NewListHandler(e.List, mux, decoder, encoder, errhandler, formatter), + Add: NewAddHandler(e.Add, mux, decoder, encoder, errhandler, formatter), + Remove: NewRemoveHandler(e.Remove, mux, decoder, encoder, errhandler, formatter), } } @@ -71,6 +71,9 @@ func (s *Server) Use(m func(http.Handler) http.Handler) { s.Remove = m(s.Remove) } +// MethodNames returns the methods served. +func (s *Server) MethodNames() []string { return indexes.MethodNames[:] } + // Mount configures the mux to serve the indexes endpoints. func Mount(mux goahttp.Muxer, h *Server) { MountListHandler(mux, h.List) @@ -78,6 +81,11 @@ func Mount(mux goahttp.Muxer, h *Server) { MountRemoveHandler(mux, h.Remove) } +// Mount configures the mux to serve the indexes endpoints. +func (s *Server) Mount(mux goahttp.Muxer) { + Mount(mux, s) +} + // MountListHandler configures the mux to serve the "indexes" service "list" // endpoint. func MountListHandler(mux goahttp.Muxer, h http.Handler) { @@ -95,29 +103,29 @@ func MountListHandler(mux goahttp.Muxer, h http.Handler) { func NewListHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - encodeResponse = EncodeListResponse(enc) - encodeError = EncodeListError(enc) + encodeResponse = EncodeListResponse(encoder) + encodeError = EncodeListError(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) ctx = context.WithValue(ctx, goa.MethodKey, "list") ctx = context.WithValue(ctx, goa.ServiceKey, "indexes") - + var err error res, err := endpoint(ctx, nil) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } @@ -139,14 +147,15 @@ func MountAddHandler(mux goahttp.Muxer, h http.Handler) { func NewAddHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - decodeRequest = DecodeAddRequest(mux, dec) - encodeResponse = EncodeAddResponse(enc) - encodeError = EncodeAddError(enc) + decodeRequest = DecodeAddRequest(mux, decoder) + encodeResponse = EncodeAddResponse(encoder) + encodeError = EncodeAddError(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) @@ -155,21 +164,19 @@ func NewAddHandler( payload, err := decodeRequest(r) if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } - res, err := endpoint(ctx, payload) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } @@ -191,14 +198,15 @@ func MountRemoveHandler(mux goahttp.Muxer, h http.Handler) { func NewRemoveHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - decodeRequest = DecodeRemoveRequest(mux, dec) - encodeResponse = EncodeRemoveResponse(enc) - encodeError = EncodeRemoveError(enc) + decodeRequest = DecodeRemoveRequest(mux, decoder) + encodeResponse = EncodeRemoveResponse(encoder) + encodeError = EncodeRemoveError(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) @@ -207,21 +215,19 @@ func NewRemoveHandler( payload, err := decodeRequest(r) if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } - res, err := endpoint(ctx, payload) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } diff --git a/gen/http/indexes/server/types.go b/gen/http/indexes/server/types.go index 4f6792278..b0a144716 100644 --- a/gen/http/indexes/server/types.go +++ b/gen/http/indexes/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes HTTP server types // @@ -10,7 +10,7 @@ package server import ( indexes "github.com/arduino/arduino-create-agent/gen/indexes" indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // AddRequestBody is the type of the "indexes" service "add" endpoint HTTP @@ -160,6 +160,7 @@ func NewAddIndexPayload(body *AddRequestBody) *indexes.IndexPayload { v := &indexes.IndexPayload{ URL: *body.URL, } + return v } @@ -168,6 +169,7 @@ func NewRemoveIndexPayload(body *RemoveRequestBody) *indexes.IndexPayload { v := &indexes.IndexPayload{ URL: *body.URL, } + return v } diff --git a/gen/http/openapi.json b/gen/http/openapi.json index 2638bb9af..a315391ad 100644 --- a/gen/http/openapi.json +++ b/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/v2/docs/pkgs":{"get":{"summary":"Download docs/pkgs.html","operationId":"docs#/v2/docs/pkgs","responses":{"200":{"description":"File downloaded","schema":{"type":"file"}}},"schemes":["http"]}},"/v2/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Harum nostrum qui ipsa minima quia dolorem."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/Indexeslist_invalid_url_response_body"}}},"schemes":["http"]}},"/v2/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/Indexesadd_invalid_url_response_body"}}},"schemes":["http"]}},"/v2/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/Indexesremove_invalid_url_response_body"}}},"schemes":["http"]}},"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"http://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"http://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"http://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"http://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"Indexesadd_invalid_url_response_body":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"Indexeslist_invalid_url_response_body":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"Indexesremove_invalid_url_response_body":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Occaecati eum."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Sit quod dolor repellat."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Id ut totam.","name":"avrdude","packager":"arduino","url":"Vero ipsum corporis nihil.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Nobis officia optio inventore."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Inventore exercitationem."}},"example":{"checksum":"Qui modi dolorem.","url":"In voluptatibus."}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Repudiandae dignissimos consectetur eos molestiae culpa soluta."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesListInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesAddInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesRemoveInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesListInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Totam cum inventore exercitationem in."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Totam vero ipsum corporis nihil voluptatem id."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Modi dolorem reprehenderit perspiciatis illo aspernatur.","name":"avrdude","packager":"arduino","url":"Officia optio inventore atque in voluptatibus qui.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Et qui id et cumque illo."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Officia maiores reiciendis est nemo."}},"example":{"checksum":"Corporis eum et numquam sapiente.","url":"Est voluptatem eos reprehenderit quo sint quod."}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}} \ No newline at end of file diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml index f887b2660..30aaaa8d7 100644 --- a/gen/http/openapi.yaml +++ b/gen/http/openapi.yaml @@ -1,491 +1,461 @@ swagger: "2.0" info: - title: Arduino Create Agent - description: "A companion of Arduino Create. \n\tAllows the website to perform operations - on the user computer, \n\tsuch as detecting which boards are connected and upload - sketches on them." - version: "" + title: Arduino Create Agent + description: "A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them." + version: "" host: localhost:80 +basePath: /v2 consumes: -- application/json -- application/xml -- application/gob + - application/json + - application/xml + - application/gob produces: -- application/json -- application/xml -- application/gob + - application/json + - application/xml + - application/gob paths: - /v2/docs/pkgs: - get: - summary: Download docs/pkgs.html - operationId: docs#/v2/docs/pkgs - responses: - "200": - description: File downloaded - schema: - type: file - schemes: - - http - /v2/pkgs/indexes: - get: - tags: - - indexes - summary: list indexes - operationId: indexes#list - responses: - "200": - description: OK response. - schema: - type: array - items: - type: string - example: Harum nostrum qui ipsa minima quia dolorem. - "400": - description: Bad Request response. - schema: - $ref: '#/definitions/Indexeslist_invalid_url_response_body' - schemes: - - http - /v2/pkgs/indexes/add: - post: - tags: - - indexes - summary: add indexes - operationId: indexes#add - parameters: - - name: AddRequestBody - in: body - required: true - schema: - $ref: '#/definitions/IndexesAddRequestBody' - required: - - url - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/IndexesAddResponseBody' - "400": - description: Bad Request response. - schema: - $ref: '#/definitions/Indexesadd_invalid_url_response_body' - schemes: - - http - /v2/pkgs/indexes/delete: - post: - tags: - - indexes - summary: remove indexes - operationId: indexes#remove - parameters: - - name: RemoveRequestBody - in: body - required: true - schema: - $ref: '#/definitions/IndexesRemoveRequestBody' - required: - - url - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/IndexesRemoveResponseBody' - "400": - description: Bad Request response. - schema: - $ref: '#/definitions/Indexesremove_invalid_url_response_body' - schemes: - - http - /v2/pkgs/tools/available: - get: - tags: - - tools - summary: available tools - operationId: tools#available - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/ToolsToolResponseCollection' - schemes: - - http - /v2/pkgs/tools/installed: - get: - tags: - - tools - summary: installed tools - operationId: tools#installed - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/ToolsToolResponseCollection' - schemes: - - http - post: - tags: - - tools - summary: install tools - operationId: tools#install - parameters: - - name: InstallRequestBody - in: body - required: true - schema: - $ref: '#/definitions/ToolsInstallRequestBody' - required: - - name - - version - - packager - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/ToolsInstallResponseBody' - schemes: - - http - /v2/pkgs/tools/installed/{packager}/{name}/{version}: - delete: - tags: - - tools - summary: remove tools - operationId: tools#remove - parameters: - - name: packager - in: path - description: The packager of the tool - required: true - type: string - - name: name - in: path - description: The name of the tool - required: true - type: string - - name: version - in: path - description: The version of the tool - required: true - type: string - - name: RemoveRequestBody - in: body - required: true - schema: - $ref: '#/definitions/ToolsRemoveRequestBody' - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/ToolsRemoveResponseBody' - schemes: - - http + /pkgs/indexes: + get: + tags: + - indexes + summary: list indexes + operationId: indexes#list + responses: + "200": + description: OK response. + schema: + type: array + items: + type: string + example: Repudiandae dignissimos consectetur eos molestiae culpa soluta. + "400": + description: Bad Request response. + schema: + $ref: '#/definitions/IndexesListInvalidURLResponseBody' + schemes: + - http + /pkgs/indexes/add: + post: + tags: + - indexes + summary: add indexes + operationId: indexes#add + parameters: + - name: AddRequestBody + in: body + required: true + schema: + $ref: '#/definitions/IndexesAddRequestBody' + required: + - url + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/IndexesAddResponseBody' + "400": + description: Bad Request response. + schema: + $ref: '#/definitions/IndexesAddInvalidURLResponseBody' + schemes: + - http + /pkgs/indexes/delete: + post: + tags: + - indexes + summary: remove indexes + operationId: indexes#remove + parameters: + - name: RemoveRequestBody + in: body + required: true + schema: + $ref: '#/definitions/IndexesRemoveRequestBody' + required: + - url + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/IndexesRemoveResponseBody' + "400": + description: Bad Request response. + schema: + $ref: '#/definitions/IndexesRemoveInvalidURLResponseBody' + schemes: + - http + /pkgs/tools/available: + get: + tags: + - tools + summary: available tools + operationId: tools#available + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/ToolsToolResponseCollection' + schemes: + - http + /pkgs/tools/installed: + get: + tags: + - tools + summary: installed tools + operationId: tools#installed + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/ToolsToolResponseCollection' + schemes: + - http + post: + tags: + - tools + summary: install tools + operationId: tools#install + parameters: + - name: InstallRequestBody + in: body + required: true + schema: + $ref: '#/definitions/ToolsInstallRequestBody' + required: + - name + - version + - packager + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/ToolsInstallResponseBody' + schemes: + - http + /pkgs/tools/installed/{packager}/{name}/{version}: + delete: + tags: + - tools + summary: remove tools + operationId: tools#remove + parameters: + - name: packager + in: path + description: The packager of the tool + required: true + type: string + - name: name + in: path + description: The name of the tool + required: true + type: string + - name: version + in: path + description: The version of the tool + required: true + type: string + - name: RemoveRequestBody + in: body + required: true + schema: + $ref: '#/definitions/ToolsRemoveRequestBody' + responses: + "200": + description: OK response. + schema: + $ref: '#/definitions/ToolsRemoveResponseBody' + schemes: + - http definitions: - IndexesAddRequestBody: - title: IndexesAddRequestBody - type: object - properties: - url: - type: string - description: The url of the index file - example: http://downloads.arduino.cc/packages/package_index.json - example: - url: http://downloads.arduino.cc/packages/package_index.json - required: - - url - IndexesAddResponseBody: - title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' - type: object - properties: - status: - type: string - description: The status of the operation - example: ok - description: AddResponseBody result type (default view) - example: - status: ok - required: - - status - IndexesRemoveRequestBody: - title: IndexesRemoveRequestBody - type: object - properties: - url: - type: string - description: The url of the index file - example: http://downloads.arduino.cc/packages/package_index.json - example: - url: http://downloads.arduino.cc/packages/package_index.json - required: - - url - IndexesRemoveResponseBody: - title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' - type: object - properties: - status: - type: string - description: The status of the operation - example: ok - description: RemoveResponseBody result type (default view) - example: - status: ok - required: - - status - Indexesadd_invalid_url_response_body: - title: 'Mediatype identifier: application/vnd.goa.error; view=default' - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: false - id: - type: string - description: ID is a unique identifier for this particular occurrence of the - problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence - of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: false - timeout: - type: boolean - description: Is the error a timeout? - example: false - description: url invalid (default view) - example: - fault: true - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: true - timeout: true - required: - - name - - id - - message - - temporary - - timeout - - fault - Indexeslist_invalid_url_response_body: - title: 'Mediatype identifier: application/vnd.goa.error; view=default' - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: true - id: - type: string - description: ID is a unique identifier for this particular occurrence of the - problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence - of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: false - timeout: - type: boolean - description: Is the error a timeout? - example: false - description: url invalid (default view) - example: - fault: false - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: false - timeout: false - required: - - name - - id - - message - - temporary - - timeout - - fault - Indexesremove_invalid_url_response_body: - title: 'Mediatype identifier: application/vnd.goa.error; view=default' - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: false - id: - type: string - description: ID is a unique identifier for this particular occurrence of the - problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence - of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: true - timeout: - type: boolean - description: Is the error a timeout? - example: true - description: url invalid (default view) - example: - fault: false - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: true - timeout: false - required: - - name - - id - - message - - temporary - - timeout - - fault - ToolResponse: - title: 'Mediatype identifier: application/vnd.arduino.tool; view=default' - type: object - properties: - name: - type: string - description: The name of the tool - example: avrdude - packager: - type: string - description: The packager of the tool - example: arduino - version: - type: string - description: The version of the tool - example: 6.3.0-arduino9 - description: A tool is an executable program that can upload sketches. (default - view) - example: - name: avrdude - packager: arduino - version: 6.3.0-arduino9 - required: - - name - - version - - packager - ToolsInstallRequestBody: - title: ToolsInstallRequestBody - type: object - properties: - checksum: - type: string - description: "A checksum of the archive. Mandatory when url is present. \n\tThis - ensures that the package is downloaded correcly." - example: Occaecati eum. - name: - type: string - description: The name of the tool - example: avrdude - packager: - type: string - description: The packager of the tool - example: arduino - url: - type: string - description: "The url where the package can be found. Optional. \n\tIf present - checksum must also be present." - example: Sit quod dolor repellat. - version: - type: string - description: The version of the tool - example: 6.3.0-arduino9 - example: - checksum: Id ut totam. - name: avrdude - packager: arduino - url: Vero ipsum corporis nihil. - version: 6.3.0-arduino9 - required: - - name - - version - - packager - ToolsInstallResponseBody: - title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' - type: object - properties: - status: - type: string - description: The status of the operation - example: ok - description: InstallResponseBody result type (default view) - example: - status: ok - required: - - status - ToolsRemoveRequestBody: - title: ToolsRemoveRequestBody - type: object - properties: - checksum: - type: string - description: "A checksum of the archive. Mandatory when url is present. \n\tThis - ensures that the package is downloaded correcly." - example: Nobis officia optio inventore. - url: - type: string - description: "The url where the package can be found. Optional. \n\tIf present - checksum must also be present." - example: Inventore exercitationem. - example: - checksum: Qui modi dolorem. - url: In voluptatibus. - ToolsRemoveResponseBody: - title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' - type: object - properties: - status: - type: string - description: The status of the operation - example: ok - description: RemoveResponseBody result type (default view) - example: - status: ok - required: - - status - ToolsToolResponseCollection: - title: 'Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default' - type: array - items: - $ref: '#/definitions/ToolResponse' - description: AvailableResponseBody is the result type for an array of ToolResponse - (default view) - example: - - name: avrdude - packager: arduino - version: 6.3.0-arduino9 - - name: avrdude - packager: arduino - version: 6.3.0-arduino9 - - name: avrdude - packager: arduino - version: 6.3.0-arduino9 - - name: avrdude - packager: arduino - version: 6.3.0-arduino9 + IndexesAddInvalidURLResponseBody: + title: 'Mediatype identifier: application/vnd.goa.error; view=default' + type: object + properties: + fault: + type: boolean + description: Is the error a server-side fault? + example: true + id: + type: string + description: ID is a unique identifier for this particular occurrence of the problem. + example: 123abc + message: + type: string + description: Message is a human-readable explanation specific to this occurrence of the problem. + example: parameter 'p' must be an integer + name: + type: string + description: Name is the name of this class of errors. + example: bad_request + temporary: + type: boolean + description: Is the error temporary? + example: true + timeout: + type: boolean + description: Is the error a timeout? + example: false + description: url invalid (default view) + example: + fault: false + id: 123abc + message: parameter 'p' must be an integer + name: bad_request + temporary: false + timeout: false + required: + - name + - id + - message + - temporary + - timeout + - fault + IndexesAddRequestBody: + title: IndexesAddRequestBody + type: object + properties: + url: + type: string + description: The url of the index file + example: https://downloads.arduino.cc/packages/package_index.json + example: + url: https://downloads.arduino.cc/packages/package_index.json + required: + - url + IndexesAddResponseBody: + title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' + type: object + properties: + status: + type: string + description: The status of the operation + example: ok + description: AddResponseBody result type (default view) + example: + status: ok + required: + - status + IndexesListInvalidURLResponseBody: + title: 'Mediatype identifier: application/vnd.goa.error; view=default' + type: object + properties: + fault: + type: boolean + description: Is the error a server-side fault? + example: true + id: + type: string + description: ID is a unique identifier for this particular occurrence of the problem. + example: 123abc + message: + type: string + description: Message is a human-readable explanation specific to this occurrence of the problem. + example: parameter 'p' must be an integer + name: + type: string + description: Name is the name of this class of errors. + example: bad_request + temporary: + type: boolean + description: Is the error temporary? + example: false + timeout: + type: boolean + description: Is the error a timeout? + example: false + description: url invalid (default view) + example: + fault: true + id: 123abc + message: parameter 'p' must be an integer + name: bad_request + temporary: true + timeout: true + required: + - name + - id + - message + - temporary + - timeout + - fault + IndexesRemoveInvalidURLResponseBody: + title: 'Mediatype identifier: application/vnd.goa.error; view=default' + type: object + properties: + fault: + type: boolean + description: Is the error a server-side fault? + example: false + id: + type: string + description: ID is a unique identifier for this particular occurrence of the problem. + example: 123abc + message: + type: string + description: Message is a human-readable explanation specific to this occurrence of the problem. + example: parameter 'p' must be an integer + name: + type: string + description: Name is the name of this class of errors. + example: bad_request + temporary: + type: boolean + description: Is the error temporary? + example: true + timeout: + type: boolean + description: Is the error a timeout? + example: true + description: url invalid (default view) + example: + fault: false + id: 123abc + message: parameter 'p' must be an integer + name: bad_request + temporary: true + timeout: false + required: + - name + - id + - message + - temporary + - timeout + - fault + IndexesRemoveRequestBody: + title: IndexesRemoveRequestBody + type: object + properties: + url: + type: string + description: The url of the index file + example: https://downloads.arduino.cc/packages/package_index.json + example: + url: https://downloads.arduino.cc/packages/package_index.json + required: + - url + IndexesRemoveResponseBody: + title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' + type: object + properties: + status: + type: string + description: The status of the operation + example: ok + description: RemoveResponseBody result type (default view) + example: + status: ok + required: + - status + ToolResponse: + title: 'Mediatype identifier: application/vnd.arduino.tool; view=default' + type: object + properties: + name: + type: string + description: The name of the tool + example: avrdude + packager: + type: string + description: The packager of the tool + example: arduino + version: + type: string + description: The version of the tool + example: 6.3.0-arduino9 + description: A tool is an executable program that can upload sketches. (default view) + example: + name: avrdude + packager: arduino + version: 6.3.0-arduino9 + required: + - name + - version + - packager + ToolsInstallRequestBody: + title: ToolsInstallRequestBody + type: object + properties: + checksum: + type: string + description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." + example: Totam cum inventore exercitationem in. + name: + type: string + description: The name of the tool + example: avrdude + packager: + type: string + description: The packager of the tool + example: arduino + url: + type: string + description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." + example: Totam vero ipsum corporis nihil voluptatem id. + version: + type: string + description: The version of the tool + example: 6.3.0-arduino9 + example: + checksum: Modi dolorem reprehenderit perspiciatis illo aspernatur. + name: avrdude + packager: arduino + url: Officia optio inventore atque in voluptatibus qui. + version: 6.3.0-arduino9 + required: + - name + - version + - packager + ToolsInstallResponseBody: + title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' + type: object + properties: + status: + type: string + description: The status of the operation + example: ok + description: InstallResponseBody result type (default view) + example: + status: ok + required: + - status + ToolsRemoveRequestBody: + title: ToolsRemoveRequestBody + type: object + properties: + checksum: + type: string + description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." + example: Et qui id et cumque illo. + url: + type: string + description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." + example: Officia maiores reiciendis est nemo. + example: + checksum: Corporis eum et numquam sapiente. + url: Est voluptatem eos reprehenderit quo sint quod. + ToolsRemoveResponseBody: + title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' + type: object + properties: + status: + type: string + description: The status of the operation + example: ok + description: RemoveResponseBody result type (default view) + example: + status: ok + required: + - status + ToolsToolResponseCollection: + title: 'Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default' + type: array + items: + $ref: '#/definitions/ToolResponse' + description: AvailableResponseBody is the result type for an array of ToolResponse (default view) + example: + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json new file mode 100644 index 000000000..200367bbf --- /dev/null +++ b/gen/http/openapi3.json @@ -0,0 +1 @@ +{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Eveniet iure nihil optio qui."},"example":["Et perferendis eveniet voluptas.","Ut aut illum eaque dolor magni.","Amet illo veritatis laudantium optio."]},"example":["Illo enim vero qui rerum ut inventore.","Dolorem nihil autem minima alias."]}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"Beatae dolor adipisci nulla et quam voluptas.","name":"avrdude","packager":"arduino","url":"Deserunt voluptatem impedit iusto libero.","version":"6.3.0-arduino9"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"avrdude"},"example":"avrdude"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"},"example":"6.3.0-arduino9"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"Ipsa minima quia.","url":"Expedita rem ipsum quasi harum nostrum."}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"AddRequestBody":{"type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Sint odio sed consequatur numquam."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Et quo doloremque sapiente atque."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Mollitia commodi sunt.","name":"avrdude","packager":"arduino","url":"Quae reprehenderit provident provident debitis illo.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Ea culpa."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Odit officiis illo qui quia provident illo."}},"example":{"checksum":"Rerum eum esse corporis ex.","url":"Molestiae dolor quaerat enim."}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}},"tags":[{"name":"indexes","description":"The indexes service manages the package_index files"},{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml new file mode 100644 index 000000000..84ccfb1a9 --- /dev/null +++ b/gen/http/openapi3.yaml @@ -0,0 +1,379 @@ +openapi: 3.0.3 +info: + title: Arduino Create Agent + description: "A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them." + version: "1.0" +servers: + - url: http://localhost:80 + description: Default server for arduino-create-agent +paths: + /v2/pkgs/indexes: + get: + tags: + - indexes + summary: list indexes + operationId: indexes#list + responses: + "200": + description: OK response. + content: + application/json: + schema: + type: array + items: + type: string + example: Eveniet iure nihil optio qui. + example: + - Et perferendis eveniet voluptas. + - Ut aut illum eaque dolor magni. + - Amet illo veritatis laudantium optio. + example: + - Illo enim vero qui rerum ut inventore. + - Dolorem nihil autem minima alias. + "400": + description: 'invalid_url: url invalid' + content: + application/vnd.goa.error: + schema: + $ref: '#/components/schemas/Error' + /v2/pkgs/indexes/add: + post: + tags: + - indexes + summary: add indexes + operationId: indexes#add + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddRequestBody' + example: + url: https://downloads.arduino.cc/packages/package_index.json + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + example: + status: ok + "400": + description: 'invalid_url: url invalid' + content: + application/vnd.goa.error: + schema: + $ref: '#/components/schemas/Error' + /v2/pkgs/indexes/delete: + post: + tags: + - indexes + summary: remove indexes + operationId: indexes#remove + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AddRequestBody' + example: + url: https://downloads.arduino.cc/packages/package_index.json + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + example: + status: ok + "400": + description: 'invalid_url: url invalid' + content: + application/vnd.goa.error: + schema: + $ref: '#/components/schemas/Error' + /v2/pkgs/tools/available: + get: + tags: + - tools + summary: available tools + operationId: tools#available + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolCollection' + example: + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + /v2/pkgs/tools/installed: + get: + tags: + - tools + summary: installed tools + operationId: tools#installed + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolCollection' + example: + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + post: + tags: + - tools + summary: install tools + operationId: tools#install + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/InstallRequestBody' + example: + checksum: Beatae dolor adipisci nulla et quam voluptas. + name: avrdude + packager: arduino + url: Deserunt voluptatem impedit iusto libero. + version: 6.3.0-arduino9 + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + example: + status: ok + /v2/pkgs/tools/installed/{packager}/{name}/{version}: + delete: + tags: + - tools + summary: remove tools + operationId: tools#remove + parameters: + - name: packager + in: path + description: The packager of the tool + required: true + schema: + type: string + description: The packager of the tool + example: arduino + example: arduino + - name: name + in: path + description: The name of the tool + required: true + schema: + type: string + description: The name of the tool + example: avrdude + example: avrdude + - name: version + in: path + description: The version of the tool + required: true + schema: + type: string + description: The version of the tool + example: 6.3.0-arduino9 + example: 6.3.0-arduino9 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveRequestBody' + example: + checksum: Ipsa minima quia. + url: Expedita rem ipsum quasi harum nostrum. + responses: + "200": + description: OK response. + content: + application/json: + schema: + $ref: '#/components/schemas/Operation' + example: + status: ok +components: + schemas: + AddRequestBody: + type: object + properties: + url: + type: string + description: The url of the index file + example: https://downloads.arduino.cc/packages/package_index.json + example: + url: https://downloads.arduino.cc/packages/package_index.json + required: + - url + ArduinoTool: + type: object + properties: + name: + type: string + description: The name of the tool + example: avrdude + packager: + type: string + description: The packager of the tool + example: arduino + version: + type: string + description: The version of the tool + example: 6.3.0-arduino9 + description: A tool is an executable program that can upload sketches. + example: + name: avrdude + packager: arduino + version: 6.3.0-arduino9 + required: + - name + - version + - packager + Error: + type: object + properties: + fault: + type: boolean + description: Is the error a server-side fault? + example: false + id: + type: string + description: ID is a unique identifier for this particular occurrence of the problem. + example: 123abc + message: + type: string + description: Message is a human-readable explanation specific to this occurrence of the problem. + example: parameter 'p' must be an integer + name: + type: string + description: Name is the name of this class of errors. + example: bad_request + temporary: + type: boolean + description: Is the error temporary? + example: false + timeout: + type: boolean + description: Is the error a timeout? + example: false + description: url invalid + example: + fault: false + id: 123abc + message: parameter 'p' must be an integer + name: bad_request + temporary: false + timeout: true + required: + - name + - id + - message + - temporary + - timeout + - fault + InstallRequestBody: + type: object + properties: + checksum: + type: string + description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." + example: Sint odio sed consequatur numquam. + name: + type: string + description: The name of the tool + example: avrdude + packager: + type: string + description: The packager of the tool + example: arduino + url: + type: string + description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." + example: Et quo doloremque sapiente atque. + version: + type: string + description: The version of the tool + example: 6.3.0-arduino9 + example: + checksum: Mollitia commodi sunt. + name: avrdude + packager: arduino + url: Quae reprehenderit provident provident debitis illo. + version: 6.3.0-arduino9 + required: + - name + - version + - packager + Operation: + type: object + properties: + status: + type: string + description: The status of the operation + example: ok + example: + status: ok + required: + - status + RemoveRequestBody: + type: object + properties: + checksum: + type: string + description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." + example: Ea culpa. + url: + type: string + description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." + example: Odit officiis illo qui quia provident illo. + example: + checksum: Rerum eum esse corporis ex. + url: Molestiae dolor quaerat enim. + ToolCollection: + type: array + items: + $ref: '#/components/schemas/ArduinoTool' + example: + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 + - name: avrdude + packager: arduino + version: 6.3.0-arduino9 +tags: + - name: indexes + description: The indexes service manages the package_index files + - name: tools + description: The tools service manages the available and installed tools diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index d708a242e..c6b125ff9 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools HTTP client CLI support package // @@ -22,12 +22,9 @@ func BuildInstallPayload(toolsInstallBody string) (*tools.ToolPayload, error) { { err = json.Unmarshal([]byte(toolsInstallBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, example of valid JSON:\n%s", "'{\n \"checksum\": \"Quam voluptas voluptates expedita rem ipsum.\",\n \"name\": \"avrdude\",\n \"packager\": \"arduino\",\n \"url\": \"Iusto libero explicabo beatae dolor adipisci nulla.\",\n \"version\": \"6.3.0-arduino9\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"checksum\": \"Beatae dolor adipisci nulla et quam voluptas.\",\n \"name\": \"avrdude\",\n \"packager\": \"arduino\",\n \"url\": \"Deserunt voluptatem impedit iusto libero.\",\n \"version\": \"6.3.0-arduino9\"\n }'") } } - if err != nil { - return nil, err - } v := &tools.ToolPayload{ Name: body.Name, Version: body.Version, @@ -35,6 +32,7 @@ func BuildInstallPayload(toolsInstallBody string) (*tools.ToolPayload, error) { URL: body.URL, Checksum: body.Checksum, } + return v, nil } @@ -46,7 +44,7 @@ func BuildRemovePayload(toolsRemoveBody string, toolsRemovePackager string, tool { err = json.Unmarshal([]byte(toolsRemoveBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, example of valid JSON:\n%s", "'{\n \"url\": \"http://downloads.arduino.cc/packages/package_index.json\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"checksum\": \"Ipsa minima quia.\",\n \"url\": \"Expedita rem ipsum quasi harum nostrum.\"\n }'") } } var packager string @@ -61,9 +59,6 @@ func BuildRemovePayload(toolsRemoveBody string, toolsRemovePackager string, tool { version = toolsRemoveVersion } - if err != nil { - return nil, err - } v := &tools.ToolPayload{ URL: body.URL, Checksum: body.Checksum, @@ -71,5 +66,6 @@ func BuildRemovePayload(toolsRemoveBody string, toolsRemovePackager string, tool v.Packager = packager v.Name = name v.Version = version + return v, nil } diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index b2bb68414..540a1c8a8 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools client HTTP transport // @@ -11,8 +11,8 @@ import ( "context" "net/http" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // Client lists the tools service endpoint HTTP clients. @@ -70,13 +70,12 @@ func (c *Client) Available() goa.Endpoint { var ( decodeResponse = DecodeAvailableResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildAvailableRequest(ctx, v) if err != nil { return nil, err } resp, err := c.AvailableDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("tools", "available", err) } @@ -90,13 +89,12 @@ func (c *Client) Installed() goa.Endpoint { var ( decodeResponse = DecodeInstalledResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildInstalledRequest(ctx, v) if err != nil { return nil, err } resp, err := c.InstalledDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("tools", "installed", err) } @@ -111,7 +109,7 @@ func (c *Client) Install() goa.Endpoint { encodeRequest = EncodeInstallRequest(c.encoder) decodeResponse = DecodeInstallResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildInstallRequest(ctx, v) if err != nil { return nil, err @@ -121,7 +119,6 @@ func (c *Client) Install() goa.Endpoint { return nil, err } resp, err := c.InstallDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("tools", "install", err) } @@ -136,7 +133,7 @@ func (c *Client) Remove() goa.Endpoint { encodeRequest = EncodeRemoveRequest(c.encoder) decodeResponse = DecodeRemoveResponse(c.decoder, c.RestoreResponseBody) ) - return func(ctx context.Context, v interface{}) (interface{}, error) { + return func(ctx context.Context, v any) (any, error) { req, err := c.BuildRemoveRequest(ctx, v) if err != nil { return nil, err @@ -146,7 +143,6 @@ func (c *Client) Remove() goa.Endpoint { return nil, err } resp, err := c.RemoveDoer.Do(req) - if err != nil { return nil, goahttp.ErrRequestError("tools", "remove", err) } diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index acb1d0468..81266c7dc 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools HTTP client encoders and decoders // @@ -10,18 +10,18 @@ package client import ( "bytes" "context" - "io/ioutil" + "io" "net/http" "net/url" tools "github.com/arduino/arduino-create-agent/gen/tools" toolsviews "github.com/arduino/arduino-create-agent/gen/tools/views" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" ) // BuildAvailableRequest instantiates a HTTP request object with method and // path set to call the "tools" service "available" endpoint -func (c *Client) BuildAvailableRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildAvailableRequest(ctx context.Context, v any) (*http.Request, error) { u := &url.URL{Scheme: c.scheme, Host: c.host, Path: AvailableToolsPath()} req, err := http.NewRequest("GET", u.String(), nil) if err != nil { @@ -37,16 +37,16 @@ func (c *Client) BuildAvailableRequest(ctx context.Context, v interface{}) (*htt // DecodeAvailableResponse returns a decoder for responses returned by the // tools available endpoint. restoreBody controls whether the response body // should be restored after having been read. -func DecodeAvailableResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +func DecodeAvailableResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -63,14 +63,14 @@ func DecodeAvailableResponse(decoder func(*http.Response) goahttp.Decoder, resto } p := NewAvailableToolCollectionOK(body) view := "default" - vres := toolsviews.ToolCollection{p, view} + vres := toolsviews.ToolCollection{Projected: p, View: view} if err = toolsviews.ValidateToolCollection(vres); err != nil { return nil, goahttp.ErrValidationError("tools", "available", err) } res := tools.NewToolCollection(vres) return res, nil default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("tools", "available", resp.StatusCode, string(body)) } } @@ -78,7 +78,7 @@ func DecodeAvailableResponse(decoder func(*http.Response) goahttp.Decoder, resto // BuildInstalledRequest instantiates a HTTP request object with method and // path set to call the "tools" service "installed" endpoint -func (c *Client) BuildInstalledRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildInstalledRequest(ctx context.Context, v any) (*http.Request, error) { u := &url.URL{Scheme: c.scheme, Host: c.host, Path: InstalledToolsPath()} req, err := http.NewRequest("GET", u.String(), nil) if err != nil { @@ -94,16 +94,16 @@ func (c *Client) BuildInstalledRequest(ctx context.Context, v interface{}) (*htt // DecodeInstalledResponse returns a decoder for responses returned by the // tools installed endpoint. restoreBody controls whether the response body // should be restored after having been read. -func DecodeInstalledResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +func DecodeInstalledResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -120,14 +120,14 @@ func DecodeInstalledResponse(decoder func(*http.Response) goahttp.Decoder, resto } p := NewInstalledToolCollectionOK(body) view := "default" - vres := toolsviews.ToolCollection{p, view} + vres := toolsviews.ToolCollection{Projected: p, View: view} if err = toolsviews.ValidateToolCollection(vres); err != nil { return nil, goahttp.ErrValidationError("tools", "installed", err) } res := tools.NewToolCollection(vres) return res, nil default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("tools", "installed", resp.StatusCode, string(body)) } } @@ -135,7 +135,7 @@ func DecodeInstalledResponse(decoder func(*http.Response) goahttp.Decoder, resto // BuildInstallRequest instantiates a HTTP request object with method and path // set to call the "tools" service "install" endpoint -func (c *Client) BuildInstallRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildInstallRequest(ctx context.Context, v any) (*http.Request, error) { u := &url.URL{Scheme: c.scheme, Host: c.host, Path: InstallToolsPath()} req, err := http.NewRequest("POST", u.String(), nil) if err != nil { @@ -150,8 +150,8 @@ func (c *Client) BuildInstallRequest(ctx context.Context, v interface{}) (*http. // EncodeInstallRequest returns an encoder for requests sent to the tools // install server. -func EncodeInstallRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, interface{}) error { - return func(req *http.Request, v interface{}) error { +func EncodeInstallRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error { + return func(req *http.Request, v any) error { p, ok := v.(*tools.ToolPayload) if !ok { return goahttp.ErrInvalidType("tools", "install", "*tools.ToolPayload", v) @@ -167,16 +167,16 @@ func EncodeInstallRequest(encoder func(*http.Request) goahttp.Encoder) func(*htt // DecodeInstallResponse returns a decoder for responses returned by the tools // install endpoint. restoreBody controls whether the response body should be // restored after having been read. -func DecodeInstallResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +func DecodeInstallResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -193,14 +193,14 @@ func DecodeInstallResponse(decoder func(*http.Response) goahttp.Decoder, restore } p := NewInstallOperationOK(&body) view := "default" - vres := &toolsviews.Operation{p, view} + vres := &toolsviews.Operation{Projected: p, View: view} if err = toolsviews.ValidateOperation(vres); err != nil { return nil, goahttp.ErrValidationError("tools", "install", err) } res := tools.NewOperation(vres) return res, nil default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("tools", "install", resp.StatusCode, string(body)) } } @@ -208,7 +208,7 @@ func DecodeInstallResponse(decoder func(*http.Response) goahttp.Decoder, restore // BuildRemoveRequest instantiates a HTTP request object with method and path // set to call the "tools" service "remove" endpoint -func (c *Client) BuildRemoveRequest(ctx context.Context, v interface{}) (*http.Request, error) { +func (c *Client) BuildRemoveRequest(ctx context.Context, v any) (*http.Request, error) { var ( packager string name string @@ -237,8 +237,8 @@ func (c *Client) BuildRemoveRequest(ctx context.Context, v interface{}) (*http.R // EncodeRemoveRequest returns an encoder for requests sent to the tools remove // server. -func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, interface{}) error { - return func(req *http.Request, v interface{}) error { +func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error { + return func(req *http.Request, v any) error { p, ok := v.(*tools.ToolPayload) if !ok { return goahttp.ErrInvalidType("tools", "remove", "*tools.ToolPayload", v) @@ -254,16 +254,16 @@ func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http // DecodeRemoveResponse returns a decoder for responses returned by the tools // remove endpoint. restoreBody controls whether the response body should be // restored after having been read. -func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) { - return func(resp *http.Response) (interface{}, error) { +func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { if restoreBody { - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { return nil, err } - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) defer func() { - resp.Body = ioutil.NopCloser(bytes.NewBuffer(b)) + resp.Body = io.NopCloser(bytes.NewBuffer(b)) }() } else { defer resp.Body.Close() @@ -280,15 +280,27 @@ func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreB } p := NewRemoveOperationOK(&body) view := "default" - vres := &toolsviews.Operation{p, view} + vres := &toolsviews.Operation{Projected: p, View: view} if err = toolsviews.ValidateOperation(vres); err != nil { return nil, goahttp.ErrValidationError("tools", "remove", err) } res := tools.NewOperation(vres) return res, nil default: - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) return nil, goahttp.ErrInvalidResponse("tools", "remove", resp.StatusCode, string(body)) } } } + +// unmarshalToolResponseToToolsviewsToolView builds a value of type +// *toolsviews.ToolView from a value of type *ToolResponse. +func unmarshalToolResponseToToolsviewsToolView(v *ToolResponse) *toolsviews.ToolView { + res := &toolsviews.ToolView{ + Name: v.Name, + Version: v.Version, + Packager: v.Packager, + } + + return res +} diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index ab66d03f4..112da41a5 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index 255a61504..0b2a81488 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools HTTP client types // @@ -10,7 +10,7 @@ package client import ( tools "github.com/arduino/arduino-create-agent/gen/tools" toolsviews "github.com/arduino/arduino-create-agent/gen/tools/views" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // InstallRequestBody is the type of the "tools" service "install" endpoint @@ -101,12 +101,9 @@ func NewRemoveRequestBody(p *tools.ToolPayload) *RemoveRequestBody { func NewAvailableToolCollectionOK(body AvailableResponseBody) toolsviews.ToolCollectionView { v := make([]*toolsviews.ToolView, len(body)) for i, val := range body { - v[i] = &toolsviews.ToolView{ - Name: val.Name, - Version: val.Version, - Packager: val.Packager, - } + v[i] = unmarshalToolResponseToToolsviewsToolView(val) } + return v } @@ -115,12 +112,9 @@ func NewAvailableToolCollectionOK(body AvailableResponseBody) toolsviews.ToolCol func NewInstalledToolCollectionOK(body InstalledResponseBody) toolsviews.ToolCollectionView { v := make([]*toolsviews.ToolView, len(body)) for i, val := range body { - v[i] = &toolsviews.ToolView{ - Name: val.Name, - Version: val.Version, - Packager: val.Packager, - } + v[i] = unmarshalToolResponseToToolsviewsToolView(val) } + return v } @@ -130,6 +124,7 @@ func NewInstallOperationOK(body *InstallResponseBody) *toolsviews.OperationView v := &toolsviews.OperationView{ Status: body.Status, } + return v } @@ -139,6 +134,7 @@ func NewRemoveOperationOK(body *RemoveResponseBody) *toolsviews.OperationView { v := &toolsviews.OperationView{ Status: body.Status, } + return v } diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index 5746d12e4..5b09d8e0b 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools HTTP server encoders and decoders // @@ -13,14 +13,14 @@ import ( "net/http" toolsviews "github.com/arduino/arduino-create-agent/gen/tools/views" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // EncodeAvailableResponse returns an encoder for responses returned by the // tools available endpoint. -func EncodeAvailableResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { +func EncodeAvailableResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { res := v.(toolsviews.ToolCollection) enc := encoder(ctx, w) body := NewToolResponseCollection(res.Projected) @@ -31,8 +31,8 @@ func EncodeAvailableResponse(encoder func(context.Context, http.ResponseWriter) // EncodeInstalledResponse returns an encoder for responses returned by the // tools installed endpoint. -func EncodeInstalledResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { +func EncodeInstalledResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { res := v.(toolsviews.ToolCollection) enc := encoder(ctx, w) body := NewToolResponseCollection(res.Projected) @@ -43,8 +43,8 @@ func EncodeInstalledResponse(encoder func(context.Context, http.ResponseWriter) // EncodeInstallResponse returns an encoder for responses returned by the tools // install endpoint. -func EncodeInstallResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { +func EncodeInstallResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { res := v.(*toolsviews.Operation) enc := encoder(ctx, w) body := NewInstallResponseBody(res.Projected) @@ -55,8 +55,8 @@ func EncodeInstallResponse(encoder func(context.Context, http.ResponseWriter) go // DecodeInstallRequest returns a decoder for requests sent to the tools // install endpoint. -func DecodeInstallRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (interface{}, error) { - return func(r *http.Request) (interface{}, error) { +func DecodeInstallRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) { + return func(r *http.Request) (any, error) { var ( body InstallRequestBody err error @@ -80,8 +80,8 @@ func DecodeInstallRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp // EncodeRemoveResponse returns an encoder for responses returned by the tools // remove endpoint. -func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error { - return func(ctx context.Context, w http.ResponseWriter, v interface{}) error { +func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { res := v.(*toolsviews.Operation) enc := encoder(ctx, w) body := NewRemoveResponseBody(res.Projected) @@ -92,8 +92,8 @@ func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goa // DecodeRemoveRequest returns a decoder for requests sent to the tools remove // endpoint. -func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (interface{}, error) { - return func(r *http.Request) (interface{}, error) { +func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) { + return func(r *http.Request) (any, error) { var ( body RemoveRequestBody err error @@ -121,3 +121,15 @@ func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp. return payload, nil } } + +// marshalToolsviewsToolViewToToolResponse builds a value of type *ToolResponse +// from a value of type *toolsviews.ToolView. +func marshalToolsviewsToolViewToToolResponse(v *toolsviews.ToolView) *ToolResponse { + res := &ToolResponse{ + Name: *v.Name, + Version: *v.Version, + Packager: *v.Packager, + } + + return res +} diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index 49cffd067..7579e9770 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index f758b2c20..af81a4fb9 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools HTTP server // @@ -12,8 +12,8 @@ import ( "net/http" tools "github.com/arduino/arduino-create-agent/gen/tools" - goa "goa.design/goa" - goahttp "goa.design/goa/http" + goahttp "goa.design/goa/v3/http" + goa "goa.design/goa/v3/pkg" ) // Server lists the tools service endpoint HTTP handlers. @@ -25,12 +25,6 @@ type Server struct { Remove http.Handler } -// ErrorNamer is an interface implemented by generated error structs that -// exposes the name of the error as defined in the design. -type ErrorNamer interface { - ErrorName() string -} - // MountPoint holds information about the mounted endpoints. type MountPoint struct { // Method is the name of the service method served by the mounted HTTP handler. @@ -42,13 +36,19 @@ type MountPoint struct { Pattern string } -// New instantiates HTTP handlers for all the tools service endpoints. +// New instantiates HTTP handlers for all the tools service endpoints using the +// provided encoder and decoder. The handlers are mounted on the given mux +// using the HTTP verb and path defined in the design. errhandler is called +// whenever a response fails to be encoded. formatter is used to format errors +// returned by the service methods prior to encoding. Both errhandler and +// formatter are optional and can be nil. func New( e *tools.Endpoints, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) *Server { return &Server{ Mounts: []*MountPoint{ @@ -57,10 +57,10 @@ func New( {"Install", "POST", "/v2/pkgs/tools/installed"}, {"Remove", "DELETE", "/v2/pkgs/tools/installed/{packager}/{name}/{version}"}, }, - Available: NewAvailableHandler(e.Available, mux, dec, enc, eh), - Installed: NewInstalledHandler(e.Installed, mux, dec, enc, eh), - Install: NewInstallHandler(e.Install, mux, dec, enc, eh), - Remove: NewRemoveHandler(e.Remove, mux, dec, enc, eh), + Available: NewAvailableHandler(e.Available, mux, decoder, encoder, errhandler, formatter), + Installed: NewInstalledHandler(e.Installed, mux, decoder, encoder, errhandler, formatter), + Install: NewInstallHandler(e.Install, mux, decoder, encoder, errhandler, formatter), + Remove: NewRemoveHandler(e.Remove, mux, decoder, encoder, errhandler, formatter), } } @@ -75,6 +75,9 @@ func (s *Server) Use(m func(http.Handler) http.Handler) { s.Remove = m(s.Remove) } +// MethodNames returns the methods served. +func (s *Server) MethodNames() []string { return tools.MethodNames[:] } + // Mount configures the mux to serve the tools endpoints. func Mount(mux goahttp.Muxer, h *Server) { MountAvailableHandler(mux, h.Available) @@ -83,6 +86,11 @@ func Mount(mux goahttp.Muxer, h *Server) { MountRemoveHandler(mux, h.Remove) } +// Mount configures the mux to serve the tools endpoints. +func (s *Server) Mount(mux goahttp.Muxer) { + Mount(mux, s) +} + // MountAvailableHandler configures the mux to serve the "tools" service // "available" endpoint. func MountAvailableHandler(mux goahttp.Muxer, h http.Handler) { @@ -100,29 +108,29 @@ func MountAvailableHandler(mux goahttp.Muxer, h http.Handler) { func NewAvailableHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - encodeResponse = EncodeAvailableResponse(enc) - encodeError = goahttp.ErrorEncoder(enc) + encodeResponse = EncodeAvailableResponse(encoder) + encodeError = goahttp.ErrorEncoder(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) ctx = context.WithValue(ctx, goa.MethodKey, "available") ctx = context.WithValue(ctx, goa.ServiceKey, "tools") - + var err error res, err := endpoint(ctx, nil) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } @@ -144,29 +152,29 @@ func MountInstalledHandler(mux goahttp.Muxer, h http.Handler) { func NewInstalledHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - encodeResponse = EncodeInstalledResponse(enc) - encodeError = goahttp.ErrorEncoder(enc) + encodeResponse = EncodeInstalledResponse(encoder) + encodeError = goahttp.ErrorEncoder(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) ctx = context.WithValue(ctx, goa.MethodKey, "installed") ctx = context.WithValue(ctx, goa.ServiceKey, "tools") - + var err error res, err := endpoint(ctx, nil) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } @@ -188,14 +196,15 @@ func MountInstallHandler(mux goahttp.Muxer, h http.Handler) { func NewInstallHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - decodeRequest = DecodeInstallRequest(mux, dec) - encodeResponse = EncodeInstallResponse(enc) - encodeError = goahttp.ErrorEncoder(enc) + decodeRequest = DecodeInstallRequest(mux, decoder) + encodeResponse = EncodeInstallResponse(encoder) + encodeError = goahttp.ErrorEncoder(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) @@ -204,21 +213,19 @@ func NewInstallHandler( payload, err := decodeRequest(r) if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } - res, err := endpoint(ctx, payload) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } @@ -240,14 +247,15 @@ func MountRemoveHandler(mux goahttp.Muxer, h http.Handler) { func NewRemoveHandler( endpoint goa.Endpoint, mux goahttp.Muxer, - dec func(*http.Request) goahttp.Decoder, - enc func(context.Context, http.ResponseWriter) goahttp.Encoder, - eh func(context.Context, http.ResponseWriter, error), + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, ) http.Handler { var ( - decodeRequest = DecodeRemoveRequest(mux, dec) - encodeResponse = EncodeRemoveResponse(enc) - encodeError = goahttp.ErrorEncoder(enc) + decodeRequest = DecodeRemoveRequest(mux, decoder) + encodeResponse = EncodeRemoveResponse(encoder) + encodeError = goahttp.ErrorEncoder(encoder, formatter) ) return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) @@ -256,21 +264,19 @@ func NewRemoveHandler( payload, err := decodeRequest(r) if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } - res, err := endpoint(ctx, payload) - if err != nil { if err := encodeError(ctx, w, err); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } return } if err := encodeResponse(ctx, w, res); err != nil { - eh(ctx, w, err) + errhandler(ctx, w, err) } }) } diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index 49d37011d..6aaeb823f 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools HTTP server types // @@ -10,7 +10,7 @@ package server import ( tools "github.com/arduino/arduino-create-agent/gen/tools" toolsviews "github.com/arduino/arduino-create-agent/gen/tools/views" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // InstallRequestBody is the type of the "tools" service "install" endpoint @@ -74,11 +74,7 @@ type ToolResponse struct { func NewToolResponseCollection(res toolsviews.ToolCollectionView) ToolResponseCollection { body := make([]*ToolResponse, len(res)) for i, val := range res { - body[i] = &ToolResponse{ - Name: *val.Name, - Version: *val.Version, - Packager: *val.Packager, - } + body[i] = marshalToolsviewsToolViewToToolResponse(val) } return body } @@ -110,6 +106,7 @@ func NewInstallToolPayload(body *InstallRequestBody) *tools.ToolPayload { URL: body.URL, Checksum: body.Checksum, } + return v } @@ -122,6 +119,7 @@ func NewRemoveToolPayload(body *RemoveRequestBody, packager string, name string, v.Packager = packager v.Name = name v.Version = version + return v } diff --git a/gen/indexes/client.go b/gen/indexes/client.go index a95c0f640..ca50f7ae0 100644 --- a/gen/indexes/client.go +++ b/gen/indexes/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes client // @@ -10,7 +10,7 @@ package indexes import ( "context" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // Client is the "indexes" service client. @@ -30,8 +30,11 @@ func NewClient(list, add, remove goa.Endpoint) *Client { } // List calls the "list" endpoint of the "indexes" service. +// List may return the following errors: +// - "invalid_url" (type *goa.ServiceError): url invalid +// - error: internal error func (c *Client) List(ctx context.Context) (res []string, err error) { - var ires interface{} + var ires any ires, err = c.ListEndpoint(ctx, nil) if err != nil { return @@ -40,8 +43,11 @@ func (c *Client) List(ctx context.Context) (res []string, err error) { } // Add calls the "add" endpoint of the "indexes" service. +// Add may return the following errors: +// - "invalid_url" (type *goa.ServiceError): url invalid +// - error: internal error func (c *Client) Add(ctx context.Context, p *IndexPayload) (res *Operation, err error) { - var ires interface{} + var ires any ires, err = c.AddEndpoint(ctx, p) if err != nil { return @@ -50,8 +56,11 @@ func (c *Client) Add(ctx context.Context, p *IndexPayload) (res *Operation, err } // Remove calls the "remove" endpoint of the "indexes" service. +// Remove may return the following errors: +// - "invalid_url" (type *goa.ServiceError): url invalid +// - error: internal error func (c *Client) Remove(ctx context.Context, p *IndexPayload) (res *Operation, err error) { - var ires interface{} + var ires any ires, err = c.RemoveEndpoint(ctx, p) if err != nil { return diff --git a/gen/indexes/endpoints.go b/gen/indexes/endpoints.go index 052938e1e..17b22ff34 100644 --- a/gen/indexes/endpoints.go +++ b/gen/indexes/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes endpoints // @@ -10,7 +10,7 @@ package indexes import ( "context" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // Endpoints wraps the "indexes" service endpoints. @@ -39,7 +39,7 @@ func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) { // NewListEndpoint returns an endpoint function that calls the method "list" of // service "indexes". func NewListEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { return s.List(ctx) } } @@ -47,7 +47,7 @@ func NewListEndpoint(s Service) goa.Endpoint { // NewAddEndpoint returns an endpoint function that calls the method "add" of // service "indexes". func NewAddEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { p := req.(*IndexPayload) res, err := s.Add(ctx, p) if err != nil { @@ -61,7 +61,7 @@ func NewAddEndpoint(s Service) goa.Endpoint { // NewRemoveEndpoint returns an endpoint function that calls the method // "remove" of service "indexes". func NewRemoveEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { p := req.(*IndexPayload) res, err := s.Remove(ctx, p) if err != nil { diff --git a/gen/indexes/service.go b/gen/indexes/service.go index ad57b8f88..784d36cb0 100644 --- a/gen/indexes/service.go +++ b/gen/indexes/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes service // @@ -11,7 +11,7 @@ import ( "context" indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // The indexes service manages the package_index files @@ -48,34 +48,20 @@ type Operation struct { // MakeInvalidURL builds a goa.ServiceError from an error. func MakeInvalidURL(err error) *goa.ServiceError { - return &goa.ServiceError{ - Name: "invalid_url", - ID: goa.NewErrorID(), - Message: err.Error(), - } + return goa.NewServiceError(err, "invalid_url", false, false, false) } // NewOperation initializes result type Operation from viewed result type // Operation. func NewOperation(vres *indexesviews.Operation) *Operation { - var res *Operation - switch vres.View { - case "default", "": - res = newOperation(vres.Projected) - } - return res + return newOperation(vres.Projected) } // NewViewedOperation initializes viewed result type Operation from result type // Operation using the given view. func NewViewedOperation(res *Operation, view string) *indexesviews.Operation { - var vres *indexesviews.Operation - switch view { - case "default", "": - p := newOperationView(res) - vres = &indexesviews.Operation{p, "default"} - } - return vres + p := newOperationView(res) + return &indexesviews.Operation{Projected: p, View: "default"} } // newOperation converts projected type Operation to service type Operation. @@ -87,7 +73,7 @@ func newOperation(vres *indexesviews.OperationView) *Operation { return res } -// newOperationView projects result type Operation into projected type +// newOperationView projects result type Operation to projected type // OperationView using the "default" view. func newOperationView(res *Operation) *indexesviews.OperationView { vres := &indexesviews.OperationView{ diff --git a/gen/indexes/views/view.go b/gen/indexes/views/view.go index fb5d90fc8..a01c1a26c 100644 --- a/gen/indexes/views/view.go +++ b/gen/indexes/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // indexes views // @@ -8,7 +8,7 @@ package views import ( - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // Operation is the viewed result type that is projected based on a view. @@ -26,10 +26,9 @@ type OperationView struct { } var ( - // OperationMap is a map of attribute names in result type Operation indexed by - // view name. + // OperationMap is a map indexing the attribute names of Operation by view name. OperationMap = map[string][]string{ - "default": []string{ + "default": { "status", }, } @@ -42,7 +41,7 @@ func ValidateOperation(result *Operation) (err error) { case "default", "": err = ValidateOperationView(result.Projected) default: - err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default"}) + err = goa.InvalidEnumValueError("view", result.View, []any{"default"}) } return } diff --git a/gen/tools/client.go b/gen/tools/client.go index 8c3cc70f1..71528938e 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools client // @@ -10,7 +10,7 @@ package tools import ( "context" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // Client is the "tools" service client. @@ -33,7 +33,7 @@ func NewClient(available, installed, install, remove goa.Endpoint) *Client { // Available calls the "available" endpoint of the "tools" service. func (c *Client) Available(ctx context.Context) (res ToolCollection, err error) { - var ires interface{} + var ires any ires, err = c.AvailableEndpoint(ctx, nil) if err != nil { return @@ -43,7 +43,7 @@ func (c *Client) Available(ctx context.Context) (res ToolCollection, err error) // Installed calls the "installed" endpoint of the "tools" service. func (c *Client) Installed(ctx context.Context) (res ToolCollection, err error) { - var ires interface{} + var ires any ires, err = c.InstalledEndpoint(ctx, nil) if err != nil { return @@ -53,10 +53,10 @@ func (c *Client) Installed(ctx context.Context) (res ToolCollection, err error) // Install calls the "install" endpoint of the "tools" service. // Install may return the following errors: -// - "not_found" (type *goa.ServiceError): tool not found -// - error: internal error +// - "not_found" (type *goa.ServiceError): tool not found +// - error: internal error func (c *Client) Install(ctx context.Context, p *ToolPayload) (res *Operation, err error) { - var ires interface{} + var ires any ires, err = c.InstallEndpoint(ctx, p) if err != nil { return @@ -66,7 +66,7 @@ func (c *Client) Install(ctx context.Context, p *ToolPayload) (res *Operation, e // Remove calls the "remove" endpoint of the "tools" service. func (c *Client) Remove(ctx context.Context, p *ToolPayload) (res *Operation, err error) { - var ires interface{} + var ires any ires, err = c.RemoveEndpoint(ctx, p) if err != nil { return diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index c2caa0d0a..bdc026550 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools endpoints // @@ -10,7 +10,7 @@ package tools import ( "context" - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // Endpoints wraps the "tools" service endpoints. @@ -42,7 +42,7 @@ func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) { // NewAvailableEndpoint returns an endpoint function that calls the method // "available" of service "tools". func NewAvailableEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { res, err := s.Available(ctx) if err != nil { return nil, err @@ -55,7 +55,7 @@ func NewAvailableEndpoint(s Service) goa.Endpoint { // NewInstalledEndpoint returns an endpoint function that calls the method // "installed" of service "tools". func NewInstalledEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { res, err := s.Installed(ctx) if err != nil { return nil, err @@ -68,7 +68,7 @@ func NewInstalledEndpoint(s Service) goa.Endpoint { // NewInstallEndpoint returns an endpoint function that calls the method // "install" of service "tools". func NewInstallEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { p := req.(*ToolPayload) res, err := s.Install(ctx, p) if err != nil { @@ -82,7 +82,7 @@ func NewInstallEndpoint(s Service) goa.Endpoint { // NewRemoveEndpoint returns an endpoint function that calls the method // "remove" of service "tools". func NewRemoveEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req interface{}) (interface{}, error) { + return func(ctx context.Context, req any) (any, error) { p := req.(*ToolPayload) res, err := s.Remove(ctx, p) if err != nil { diff --git a/gen/tools/service.go b/gen/tools/service.go index 12d90c902..783204c4f 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools service // @@ -11,7 +11,7 @@ import ( "context" toolsviews "github.com/arduino/arduino-create-agent/gen/tools/views" - "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // The tools service manages the available and installed tools @@ -36,6 +36,22 @@ const ServiceName = "tools" // MethodKey key. var MethodNames = [4]string{"available", "installed", "install", "remove"} +// Operation is the result type of the tools service install method. +type Operation struct { + // The status of the operation + Status string +} + +// A tool is an executable program that can upload sketches. +type Tool struct { + // The name of the tool + Name string + // The version of the tool + Version string + // The packager of the tool + Packager string +} + // ToolCollection is the result type of the tools service available method. type ToolCollection []*Tool @@ -55,75 +71,35 @@ type ToolPayload struct { Checksum *string } -// Operation is the result type of the tools service install method. -type Operation struct { - // The status of the operation - Status string -} - -// A tool is an executable program that can upload sketches. -type Tool struct { - // The name of the tool - Name string - // The version of the tool - Version string - // The packager of the tool - Packager string -} - // MakeNotFound builds a goa.ServiceError from an error. func MakeNotFound(err error) *goa.ServiceError { - return &goa.ServiceError{ - Name: "not_found", - ID: goa.NewErrorID(), - Message: err.Error(), - } + return goa.NewServiceError(err, "not_found", false, false, false) } // NewToolCollection initializes result type ToolCollection from viewed result // type ToolCollection. func NewToolCollection(vres toolsviews.ToolCollection) ToolCollection { - var res ToolCollection - switch vres.View { - case "default", "": - res = newToolCollection(vres.Projected) - } - return res + return newToolCollection(vres.Projected) } // NewViewedToolCollection initializes viewed result type ToolCollection from // result type ToolCollection using the given view. func NewViewedToolCollection(res ToolCollection, view string) toolsviews.ToolCollection { - var vres toolsviews.ToolCollection - switch view { - case "default", "": - p := newToolCollectionView(res) - vres = toolsviews.ToolCollection{p, "default"} - } - return vres + p := newToolCollectionView(res) + return toolsviews.ToolCollection{Projected: p, View: "default"} } // NewOperation initializes result type Operation from viewed result type // Operation. func NewOperation(vres *toolsviews.Operation) *Operation { - var res *Operation - switch vres.View { - case "default", "": - res = newOperation(vres.Projected) - } - return res + return newOperation(vres.Projected) } // NewViewedOperation initializes viewed result type Operation from result type // Operation using the given view. func NewViewedOperation(res *Operation, view string) *toolsviews.Operation { - var vres *toolsviews.Operation - switch view { - case "default", "": - p := newOperationView(res) - vres = &toolsviews.Operation{p, "default"} - } - return vres + p := newOperationView(res) + return &toolsviews.Operation{Projected: p, View: "default"} } // newToolCollection converts projected type ToolCollection to service type @@ -136,8 +112,8 @@ func newToolCollection(vres toolsviews.ToolCollectionView) ToolCollection { return res } -// newToolCollectionView projects result type ToolCollection into projected -// type ToolCollectionView using the "default" view. +// newToolCollectionView projects result type ToolCollection to projected type +// ToolCollectionView using the "default" view. func newToolCollectionView(res ToolCollection) toolsviews.ToolCollectionView { vres := make(toolsviews.ToolCollectionView, len(res)) for i, n := range res { @@ -161,7 +137,7 @@ func newTool(vres *toolsviews.ToolView) *Tool { return res } -// newToolView projects result type Tool into projected type ToolView using the +// newToolView projects result type Tool to projected type ToolView using the // "default" view. func newToolView(res *Tool) *toolsviews.ToolView { vres := &toolsviews.ToolView{ @@ -181,7 +157,7 @@ func newOperation(vres *toolsviews.OperationView) *Operation { return res } -// newOperationView projects result type Operation into projected type +// newOperationView projects result type Operation to projected type // OperationView using the "default" view. func newOperationView(res *Operation) *toolsviews.OperationView { vres := &toolsviews.OperationView{ diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go index 38df0ae7b..4f6fe933d 100644 --- a/gen/tools/views/view.go +++ b/gen/tools/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v2.0.0-wip, DO NOT EDIT. +// Code generated by goa v3.12.4, DO NOT EDIT. // // tools views // @@ -8,7 +8,7 @@ package views import ( - goa "goa.design/goa" + goa "goa.design/goa/v3/pkg" ) // ToolCollection is the viewed result type that is projected based on a view. @@ -47,25 +47,24 @@ type OperationView struct { } var ( - // ToolCollectionMap is a map of attribute names in result type ToolCollection - // indexed by view name. + // ToolCollectionMap is a map indexing the attribute names of ToolCollection by + // view name. ToolCollectionMap = map[string][]string{ - "default": []string{ + "default": { "name", "version", "packager", }, } - // OperationMap is a map of attribute names in result type Operation indexed by - // view name. + // OperationMap is a map indexing the attribute names of Operation by view name. OperationMap = map[string][]string{ - "default": []string{ + "default": { "status", }, } - // ToolMap is a map of attribute names in result type Tool indexed by view name. + // ToolMap is a map indexing the attribute names of Tool by view name. ToolMap = map[string][]string{ - "default": []string{ + "default": { "name", "version", "packager", @@ -80,7 +79,7 @@ func ValidateToolCollection(result ToolCollection) (err error) { case "default", "": err = ValidateToolCollectionView(result.Projected) default: - err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default"}) + err = goa.InvalidEnumValueError("view", result.View, []any{"default"}) } return } @@ -92,7 +91,7 @@ func ValidateOperation(result *Operation) (err error) { case "default", "": err = ValidateOperationView(result.Projected) default: - err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default"}) + err = goa.InvalidEnumValueError("view", result.View, []any{"default"}) } return } diff --git a/go.mod b/go.mod index 49cffdf3b..5fbf2a7a2 100644 --- a/go.mod +++ b/go.mod @@ -23,20 +23,21 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.4.1 - goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 - golang.org/x/crypto v0.9.0 - golang.org/x/sys v0.8.0 + goa.design/goa/v3 v3.12.4 + golang.org/x/crypto v0.12.0 + golang.org/x/sys v0.11.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) require ( + github.com/AnatolyRugalev/goregen v0.1.0 // indirect github.com/bytedance/sonic v1.8.0 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect - github.com/dimfeld/httptreemux v5.0.1+incompatible // indirect + github.com/dimfeld/httptreemux/v5 v5.5.0 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 // indirect github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7 // indirect @@ -50,9 +51,9 @@ require ( github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.0 // indirect github.com/google/go-cmp v0.5.9 // indirect - github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect - github.com/gorilla/websocket v1.4.0 // indirect + github.com/gorilla/websocket v1.5.0 // indirect github.com/h2non/filetype v1.1.3 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect @@ -64,7 +65,6 @@ require ( github.com/leodido/go-urn v1.2.1 // indirect github.com/leonelquinteros/gotext v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect - github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/miekg/dns v1.1.35 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -73,15 +73,16 @@ require ( github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/text v0.9.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + golang.org/x/mod v0.12.0 // indirect + golang.org/x/net v0.14.0 // indirect + golang.org/x/text v0.12.0 // indirect + golang.org/x/tools v0.12.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 8a528820b..3e93edd5f 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBWpuJGYfE= +github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZKpY1VU0VTxOv+jV6NVgJEZ/hMBVs= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= @@ -23,8 +25,8 @@ github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454Wv github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= -github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4wg/adLLz5xh5CmpiCA= -github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= +github.com/dimfeld/httptreemux/v5 v5.5.0 h1:p8jkiMrCuZ0CmhwYLcbNbl7DDo21fozhKHQ2PccwOFQ= +github.com/dimfeld/httptreemux/v5 v5.5.0/go.mod h1:QeEylH57C0v3VO0tkKraVz9oD3Uu93CKPnTLbsidvSw= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 h1:6uJ+sZ/e03gkbqZ0kUG6mfKoqDb4XMAzMIwlajq19So= @@ -61,16 +63,16 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 h1:OL2d27ueTKnlQJoqLW2fc9pWYulFnJYLWzomGV7HqZo= -github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4/go.mod h1:Pw1H1OjSNHiqeuxAduB1BKYXIwFtsyrY47nEqSgEiCM= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb/go.mod h1:MBpz1MS3P4HtRcBpQU4HcjvWXZ9q+JWacMEh2/BFYbg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 h1:vKXGRzlhWE9TUVhLqAOcgQbfYvReAnsvQQIcnvWMfcg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49/go.mod h1:ftBGBMhSYToR5oV4ImIPKvAIsNaTkLC+tTvoNafqxlQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -91,7 +93,10 @@ github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= @@ -100,7 +105,6 @@ github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2s github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= -github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0ReT1eKt5QlKjwgi5AFm5mI6O1A2G4ChI0Ag= github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= @@ -127,6 +131,8 @@ github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 h1:ZMBZ2DKX1sScUSo9ZUwGI7jCMukslPNQNfZaw9vVyfY= github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485/go.mod h1:9qeq2P58+4+LyuncL3waJDG+giOfXgowfrRZZF9XdWk= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= @@ -141,6 +147,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -156,33 +163,32 @@ github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea h1:CyhwejzVGvZ3Q2PSbQ4NRRYn+ZWv5eS1vlaEusT+bAI= -github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea/go.mod h1:eNr558nEUjP8acGw8FFjTeWvSgU1stO7FAO6eknhHe4= go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= go.bug.st/serial v1.4.1 h1:AwYUNixVf90XymNeJaUkMrPp+GZQe3RMFQmpVdHIUK8= go.bug.st/serial v1.4.1/go.mod h1:z8CesKorE90Qr/oRSJiEuvzYRKol9r/anJZEb5kt304= -goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4 h1:+qjyw15FIXxmcA/QmrDrofQPLMAav6X2v+UYH/pQq8A= -goa.design/goa v1.0.1-0.20190116060309-40843d63b0e4/go.mod h1:NnzBwdNktihbNek+pPiFMQP9PPFsUt8MMPPyo9opDSo= +goa.design/goa/v3 v3.12.4 h1:g3G8yHLk+jyUDNRL2sNg+ZcoQ62zY83rpgagAQ5VmTA= +goa.design/goa/v3 v3.12.4/go.mod h1:h1vjyGQ+rqWK+VvnqN8oLcpqaHrKIyuY1Vx+jhKodpg= golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -191,29 +197,34 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= +golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/v2/http.go b/v2/http.go index a3e9c6318..efafbfd7e 100644 --- a/v2/http.go +++ b/v2/http.go @@ -20,15 +20,15 @@ import ( "net/http" "path/filepath" - docssvr "github.com/arduino/arduino-create-agent/gen/http/docs/server" indexessvr "github.com/arduino/arduino-create-agent/gen/http/indexes/server" toolssvr "github.com/arduino/arduino-create-agent/gen/http/tools/server" indexessvc "github.com/arduino/arduino-create-agent/gen/indexes" toolssvc "github.com/arduino/arduino-create-agent/gen/tools" "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/sirupsen/logrus" - goahttp "goa.design/goa/http" - "goa.design/goa/http/middleware" + goahttp "goa.design/goa/v3/http" + "goa.design/goa/v3/http/middleware" + goamiddleware "goa.design/goa/v3/middleware" ) // Server is the actual server @@ -47,7 +47,7 @@ func Server(home string) http.Handler { } indexesEndpoints := indexessvc.NewEndpoints(&indexesSvc) indexesServer := indexessvr.New(indexesEndpoints, mux, goahttp.RequestDecoder, - goahttp.ResponseEncoder, errorHandler(logger)) + goahttp.ResponseEncoder, errorHandler(logger), nil) indexessvr.Mount(mux, indexesServer) // Mount tools @@ -56,13 +56,9 @@ func Server(home string) http.Handler { Indexes: &indexesSvc, } toolsEndpoints := toolssvc.NewEndpoints(&toolsSvc) - toolsServer := toolssvr.New(toolsEndpoints, mux, goahttp.RequestDecoder, goahttp.ResponseEncoder, errorHandler(logger)) + toolsServer := toolssvr.New(toolsEndpoints, mux, goahttp.RequestDecoder, goahttp.ResponseEncoder, errorHandler(logger), nil) toolssvr.Mount(mux, toolsServer) - // Mount docs - docssvr.New(nil, mux, goahttp.RequestDecoder, goahttp.ResponseEncoder, errorHandler(logger)) - docssvr.Mount(mux) - // Mount middlewares handler := middleware.Log(logAdapter)(mux) handler = middleware.RequestID()(handler) @@ -75,7 +71,7 @@ func Server(home string) http.Handler { // to correlate. func errorHandler(logger *logrus.Logger) func(context.Context, http.ResponseWriter, error) { return func(ctx context.Context, w http.ResponseWriter, err error) { - id := ctx.Value(middleware.RequestIDKey).(string) + id := ctx.Value(goamiddleware.RequestIDKey).(string) w.Write([]byte("[" + id + "] encoding: " + err.Error())) logger.Printf("[%s] ERROR: %s", id, err.Error()) } From 6c5dfaebcbfc7355accb76f2f9bd626d7e0868f7 Mon Sep 17 00:00:00 2001 From: Tristan B Date: Mon, 28 Aug 2023 05:02:29 -0600 Subject: [PATCH 109/233] Create `LaunchAgents/` directory if it doesn't exist (MacOS) (#811) Signed-off-by: Tristan B --- config/autostart.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/config/autostart.go b/config/autostart.go index 1f8d81fec..e45333d5b 100644 --- a/config/autostart.go +++ b/config/autostart.go @@ -31,7 +31,15 @@ var launchdAgentDefinition []byte // getLaunchdAgentPath will return the path of the launchd agent default path func getLaunchdAgentPath() *paths.Path { - return GetDefaultHomeDir().Join("Library", "LaunchAgents", "ArduinoCreateAgent.plist") + homeDir := GetDefaultHomeDir() + launchAgentsPath := homeDir.Join("Library", "LaunchAgents") + agentPlistPath := launchAgentsPath.Join("ArduinoCreateAgent.plist") + + if err := os.MkdirAll(launchAgentsPath.String(), 0755); err != nil { + log.Panicf("Could not create ~/Library/LaunchAgents directory: %s", err) + } + + return agentPlistPath } // InstallPlistFile will handle the process of creating the plist file required for the autostart From cc9a238604c9db0b3e5bd92c1d0b40345d814058 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 29 Aug 2023 12:38:00 +0200 Subject: [PATCH 110/233] remove io/ioutil since is deprecated (#818) --- conn.go | 5 ++--- tools/download.go | 13 ++++++------- tools/download_test.go | 8 ++++---- tools/tools.go | 5 ++--- upload/upload.go | 3 +-- utilities/utilities.go | 3 +-- v2/pkgs/indexes.go | 5 ++--- v2/pkgs/indexes_test.go | 3 +-- v2/pkgs/tools.go | 11 +++++------ v2/pkgs/tools_test.go | 3 +-- 10 files changed, 25 insertions(+), 34 deletions(-) diff --git a/conn.go b/conn.go index eb06c8753..5fcc4727c 100644 --- a/conn.go +++ b/conn.go @@ -28,7 +28,6 @@ import ( "encoding/pem" "errors" "fmt" - "io/ioutil" "net/http" "os" "path/filepath" @@ -134,7 +133,7 @@ func uploadHandler(c *gin.Context) { var filePaths []string filePaths = append(filePaths, filePath) - tmpdir, err := ioutil.TempDir("", "extrafiles") + tmpdir, err := os.MkdirTemp("", "extrafiles") if err != nil { c.String(http.StatusBadRequest, err.Error()) return @@ -151,7 +150,7 @@ func uploadHandler(c *gin.Context) { return } - err := ioutil.WriteFile(path, extraFile.Hex, 0644) + err := os.WriteFile(path, extraFile.Hex, 0644) if err != nil { c.String(http.StatusBadRequest, err.Error()) return diff --git a/tools/download.go b/tools/download.go index 78bc7d927..3a577c1ba 100644 --- a/tools/download.go +++ b/tools/download.go @@ -27,7 +27,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net/http" "os" "os/exec" @@ -125,7 +124,7 @@ func (t *Tools) DownloadPackageIndex(indexFile, signatureFile string) error { defer resp.Body.Close() // Read the body - body, err := ioutil.ReadAll(resp.Body) + body, err := io.ReadAll(resp.Body) if err != nil { return err } @@ -138,12 +137,12 @@ func (t *Tools) DownloadPackageIndex(indexFile, signatureFile string) error { defer signature.Body.Close() // Read the body - signatureBody, err := ioutil.ReadAll(signature.Body) + signatureBody, err := io.ReadAll(signature.Body) if err != nil { return err } - ioutil.WriteFile(indexFile, body, 0644) - ioutil.WriteFile(signatureFile, signatureBody, 0644) + os.WriteFile(indexFile, body, 0644) + os.WriteFile(signatureFile, signatureBody, 0644) t.LastRefresh = time.Now() @@ -194,7 +193,7 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { return err } - body, err := ioutil.ReadFile(indexFile) + body, err := os.ReadFile(indexFile) if err != nil { return err } @@ -236,7 +235,7 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { defer resp.Body.Close() // Read the body - body, err = ioutil.ReadAll(resp.Body) + body, err = io.ReadAll(resp.Body) if err != nil { return err } diff --git a/tools/download_test.go b/tools/download_test.go index af33df6c8..a2484ab73 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -18,7 +18,7 @@ package tools import ( "encoding/json" "fmt" - "io/ioutil" + "io" "net/http" "os" "path" @@ -104,7 +104,7 @@ func TestTools_DownloadAndUnpackBehaviour(t *testing.T) { } expectedDirList := []string{"bin", "etc"} - tmpDir, err := ioutil.TempDir("", "download_test") + tmpDir, err := os.MkdirTemp("", "download_test") if err != nil { t.Fatal(err) } @@ -119,7 +119,7 @@ func TestTools_DownloadAndUnpackBehaviour(t *testing.T) { defer resp.Body.Close() // Read the body - body, err := ioutil.ReadAll(resp.Body) + body, err := io.ReadAll(resp.Body) if err != nil { t.Errorf("%v", err) } @@ -148,7 +148,7 @@ func TestTools_DownloadAndUnpackBehaviour(t *testing.T) { default: t.Errorf("no suitable type found") } - files, err := ioutil.ReadDir(location) + files, err := os.ReadDir(location) if err != nil { t.Errorf("%v", err) } diff --git a/tools/tools.go b/tools/tools.go index 7a39303d7..e2ad321c5 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -18,7 +18,6 @@ package tools import ( "encoding/json" "fmt" - "io/ioutil" "os" "os/user" "path" @@ -125,7 +124,7 @@ func (t *Tools) writeMap() error { return err } filePath := path.Join(dir(), "installed.json") - return ioutil.WriteFile(filePath, b, 0644) + return os.WriteFile(filePath, b, 0644) } // readMap() reads the installed map from json file "installed.json" @@ -133,7 +132,7 @@ func (t *Tools) readMap() error { t.mutex.Lock() defer t.mutex.Unlock() filePath := path.Join(dir(), "installed.json") - b, err := ioutil.ReadFile(filePath) + b, err := os.ReadFile(filePath) if err != nil { return err } diff --git a/upload/upload.go b/upload/upload.go index ba06c4a82..44d138aa3 100644 --- a/upload/upload.go +++ b/upload/upload.go @@ -20,7 +20,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "log" "mime/multipart" "net/http" @@ -301,7 +300,7 @@ func form(port, board, file string, auth Auth, l Logger) error { // Check the response if res.StatusCode != http.StatusOK { - body, _ := ioutil.ReadAll(res.Body) + body, _ := io.ReadAll(res.Body) return errors.New("Request error:" + string(body)) } return nil diff --git a/utilities/utilities.go b/utilities/utilities.go index e690e5e75..075310b03 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -20,7 +20,6 @@ import ( "bytes" "errors" "io" - "io/ioutil" "os" "os/exec" "path" @@ -35,7 +34,7 @@ import ( // Note that path could be defined and still there could be an error. func SaveFileonTempDir(filename string, data io.Reader) (path string, err error) { // Create Temp Directory - tmpdir, err := ioutil.TempDir("", "arduino-create-agent") + tmpdir, err := os.MkdirTemp("", "arduino-create-agent") if err != nil { return "", errors.New("Could not create temp directory to store downloaded file. Do you have permissions?") } diff --git a/v2/pkgs/indexes.go b/v2/pkgs/indexes.go index 2b83239ca..ceb5eb65b 100644 --- a/v2/pkgs/indexes.go +++ b/v2/pkgs/indexes.go @@ -19,7 +19,6 @@ import ( "context" b64 "encoding/base64" "encoding/json" - "io/ioutil" "net/url" "os" "path/filepath" @@ -71,7 +70,7 @@ func (c *Indexes) Add(ctx context.Context, payload *indexes.IndexPayload) (*inde func (c *Indexes) Get(ctx context.Context, uri string) (index Index, err error) { filename := b64.StdEncoding.EncodeToString([]byte(url.PathEscape(uri))) path := filepath.Join(c.Folder, filename) - data, err := ioutil.ReadFile(path) + data, err := os.ReadFile(path) if err != nil { return index, err } @@ -89,7 +88,7 @@ func (c *Indexes) List(context.Context) ([]string, error) { // Create folder if it doesn't exist _ = os.MkdirAll(c.Folder, 0755) // Read files - files, err := ioutil.ReadDir(c.Folder) + files, err := os.ReadDir(c.Folder) if err != nil { return nil, err diff --git a/v2/pkgs/indexes_test.go b/v2/pkgs/indexes_test.go index d75571994..796a18a5a 100644 --- a/v2/pkgs/indexes_test.go +++ b/v2/pkgs/indexes_test.go @@ -17,7 +17,6 @@ package pkgs_test import ( "context" - "io/ioutil" "net/http" "net/http/httptest" "os" @@ -38,7 +37,7 @@ func TestIndexes(t *testing.T) { defer ts.Close() // Initialize indexes with a temp folder - tmp, err := ioutil.TempDir("", "") + tmp, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index a320b82be..226895d34 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -24,7 +24,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net/http" "os" "path/filepath" @@ -89,7 +88,7 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { res := tools.ToolCollection{} // Find packagers - packagers, err := ioutil.ReadDir(c.Folder) + packagers, err := os.ReadDir(c.Folder) if err != nil { if !strings.Contains(err.Error(), "no such file") { return nil, err @@ -106,7 +105,7 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { } // Find tools - toolss, err := ioutil.ReadDir(filepath.Join(c.Folder, packager.Name())) + toolss, err := os.ReadDir(filepath.Join(c.Folder, packager.Name())) if err != nil { return nil, err } @@ -114,7 +113,7 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { for _, tool := range toolss { // Find versions path := filepath.Join(c.Folder, packager.Name(), tool.Name()) - versions, err := ioutil.ReadDir(path) + versions, err := os.ReadDir(path) if err != nil { continue // we ignore errors because the folders could be dirty } @@ -264,7 +263,7 @@ func writeInstalled(folder, path string) error { // read installed.json installed := map[string]string{} - data, err := ioutil.ReadFile(filepath.Join(folder, "installed.json")) + data, err := os.ReadFile(filepath.Join(folder, "installed.json")) if err == nil { err = json.Unmarshal(data, &installed) if err != nil { @@ -283,5 +282,5 @@ func writeInstalled(folder, path string) error { return err } - return ioutil.WriteFile(filepath.Join(folder, "installed.json"), data, 0644) + return os.WriteFile(filepath.Join(folder, "installed.json"), data, 0644) } diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index 81eab181a..581b30b1f 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -17,7 +17,6 @@ package pkgs_test import ( "context" - "io/ioutil" "net/http" "net/http/httptest" "os" @@ -40,7 +39,7 @@ func TestTools(t *testing.T) { defer ts.Close() // Initialize indexes with a temp folder - tmp, err := ioutil.TempDir("", "") + tmp, err := os.MkdirTemp("", "") if err != nil { t.Fatal(err) } From 75698ba464c2298fd81c11d88c5a5531e6f700b9 Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Wed, 30 Aug 2023 12:49:21 +0200 Subject: [PATCH 111/233] Download the correct tools for Windows 64-bit (#813) * Download the correct tools for Windows 64-bit * Change the OS/Arch matching criteria to find the correct fallback tool * Add TestDownloadFallbackPlatform to unit tests * Use public types defined in `v2/pkgs` package and move their methods there * Use imported `v2/pkgs` function to find the correct system --- tools/download.go | 51 +----- tools/download_test.go | 37 ++++- tools/testdata/test_tool_index.json | 246 +++++++++++++++------------- v2/pkgs/pkgs.go | 111 ++++++++++++- v2/pkgs/tools.go | 29 +--- 5 files changed, 280 insertions(+), 194 deletions(-) diff --git a/tools/download.go b/tools/download.go index 3a577c1ba..939e7a304 100644 --- a/tools/download.go +++ b/tools/download.go @@ -39,40 +39,10 @@ import ( "golang.org/x/crypto/openpgp" "github.com/arduino/arduino-create-agent/utilities" + "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/blang/semver" - "github.com/xrash/smetrics" ) -type system struct { - Host string `json:"host"` - URL string `json:"url"` - Name string `json:"archiveFileName"` - CheckSum string `json:"checksum"` -} - -type tool struct { - Name string `json:"name"` - Version string `json:"version"` - Systems []system `json:"systems"` -} - -type index struct { - Packages []struct { - Name string `json:"name"` - Tools []tool `json:"tools"` - } `json:"packages"` -} - -var systems = map[string]string{ - "linuxamd64": "x86_64-linux-gnu", - "linux386": "i686-linux-gnu", - "darwinamd64": "i686-apple-darwin", - "darwinarm64": "arm64-apple-darwin", - "windows386": "i686-mingw32", - "windowsamd64": "i686-mingw32", - "linuxarm": "arm-linux-gnueabihf", -} - // public vars to allow override in the tests var ( OS = runtime.GOOS @@ -198,7 +168,7 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { return err } - var data index + var data pkgs.Index json.Unmarshal(body, &data) // Find the tool by name @@ -244,7 +214,7 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { checksum := sha256.Sum256(body) checkSumString := "SHA-256:" + hex.EncodeToString(checksum[:sha256.Size]) - if checkSumString != correctSystem.CheckSum { + if checkSumString != correctSystem.Checksum { return errors.New("checksum doesn't match") } @@ -298,8 +268,8 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { return t.writeMap() } -func findTool(pack, name, version string, data index) (tool, system) { - var correctTool tool +func findTool(pack, name, version string, data pkgs.Index) (pkgs.Tool, pkgs.System) { + var correctTool pkgs.Tool correctTool.Version = "0.0" for _, p := range data.Packages { @@ -323,16 +293,7 @@ func findTool(pack, name, version string, data index) (tool, system) { } // Find the url based on system - var correctSystem system - maxSimilarity := 0.7 - - for _, s := range correctTool.Systems { - similarity := smetrics.Jaro(s.Host, systems[OS+Arch]) - if similarity > maxSimilarity { - correctSystem = s - maxSimilarity = similarity - } - } + correctSystem := correctTool.GetFlavourCompatibleWith(OS, Arch) return correctTool, correctSystem } diff --git a/tools/download_test.go b/tools/download_test.go index a2484ab73..0617cf306 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -24,6 +24,7 @@ import ( "path" "testing" + "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -40,14 +41,14 @@ func TestDownloadCorrectPlatform(t *testing.T) { {"darwin", "amd64", "x86_64-apple-darwin"}, {"darwin", "arm64", "arm64-apple-darwin"}, {"windows", "386", "i686-mingw32"}, - {"windows", "amd64", "i686-mingw32"}, + {"windows", "amd64", "x86_64-mingw32"}, {"linux", "arm", "arm-linux-gnueabihf"}, } testIndex := paths.New("testdata", "test_tool_index.json") buf, err := testIndex.ReadFile() require.NoError(t, err) - var data index + var data pkgs.Index err = json.Unmarshal(buf, &data) require.NoError(t, err) for _, tc := range testCases { @@ -65,6 +66,38 @@ func TestDownloadCorrectPlatform(t *testing.T) { } } +func TestDownloadFallbackPlatform(t *testing.T) { + testCases := []struct { + hostOS string + hostArch string + correctOSArch string + }{ + {"darwin", "amd64", "i386-apple-darwin11"}, + {"darwin", "arm64", "i386-apple-darwin11"}, + {"windows", "amd64", "i686-mingw32"}, + } + testIndex := paths.New("testdata", "test_tool_index.json") + buf, err := testIndex.ReadFile() + require.NoError(t, err) + + var data pkgs.Index + err = json.Unmarshal(buf, &data) + require.NoError(t, err) + for _, tc := range testCases { + t.Run(tc.hostOS+tc.hostArch, func(t *testing.T) { + OS = tc.hostOS // override `runtime.OS` for testing purposes + Arch = tc.hostArch // override `runtime.ARCH` for testing purposes + // Find the tool by name + correctTool, correctSystem := findTool("arduino-test", "arduino-fwuploader", "2.2.0", data) + require.NotNil(t, correctTool) + require.NotNil(t, correctSystem) + require.Equal(t, correctTool.Name, "arduino-fwuploader") + require.Equal(t, correctTool.Version, "2.2.0") + require.Equal(t, correctSystem.Host, tc.correctOSArch) + }) + } +} + func Test_findBaseDir(t *testing.T) { cases := []struct { dirList []string diff --git a/tools/testdata/test_tool_index.json b/tools/testdata/test_tool_index.json index 9b4e315fa..8d5dbc652 100644 --- a/tools/testdata/test_tool_index.json +++ b/tools/testdata/test_tool_index.json @@ -1,117 +1,137 @@ { - "packages": [ + "packages": [ + { + "name": "arduino-test", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ { - "name": "arduino-test", - "maintainer": "Arduino", - "websiteURL": "http://www.arduino.cc/", - "email": "packages@arduino.cc", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" + "name": "Arduino megaAVR Boards - Pre-release", + "architecture": "megaavr", + "version": "1.8.102", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/staging/core-megaavr-1.8.102.tar.bz2", + "archiveFileName": "core-megaavr-1.8.102.tar.bz2", + "checksum": "SHA-256:ad5e60b828678d9ccff957032524a4c4d68b218737e7df24b905769a04dc2a6a", + "size": "858620", + "help": { + "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" + }, + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" }, - "platforms": [ - { - "name": "Arduino megaAVR Boards - Pre-release", - "architecture": "megaavr", - "version": "1.8.102", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/staging/core-megaavr-1.8.102.tar.bz2", - "archiveFileName": "core-megaavr-1.8.102.tar.bz2", - "checksum": "SHA-256:ad5e60b828678d9ccff957032524a4c4d68b218737e7df24b905769a04dc2a6a", - "size": "858620", - "help": { - "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" - }, - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - }, - { - "name": "Arduino Nano Every" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "7.3.0-atmel3.6.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "7.0-arduino.3" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.3.0" - } - ] - } - ], - "tools": [ - { - "name": "arduino-fwuploader", - "version": "2.2.2", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", - "archiveFileName": "arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", - "checksum": "SHA-256:503b9f8b24c6e396d09eb64f0e1f625c6f9aa5a90b01a50d7dec6477f4a866f0", - "size": "7262873" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", - "archiveFileName": "arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", - "checksum": "SHA-256:8d77d0b33c8b0787fe3b80191709b69d638ef2a447d9853536cda35bfafd274b", - "size": "7306763" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_32bit.zip", - "archiveFileName": "arduino-fwuploader_2.2.2_Windows_32bit.zip", - "checksum": "SHA-256:74ad9a5d369204b51be288c98d74f949ceb7a0c227ee64eb65ae179ec884c84c", - "size": "7450717" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_64bit.zip", - "archiveFileName": "arduino-fwuploader_2.2.2_Windows_64bit.zip", - "checksum": "SHA-256:b25ac549cb0645166613c96cf899aebc541e482fe196aada6408bd7cff2c7d02", - "size": "7390999" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", - "archiveFileName": "arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", - "checksum": "SHA-256:2cd6168ff470457b5124ba0faf118f315be2d1b9fb4fef43eb74370cd83620a2", - "size": "7306576" - }, - { - "host": "arm64-apple-darwin", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", - "archiveFileName": "arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", - "checksum": "SHA-256:10ae5614af4d82096b6ba0e1e07aab667fa140d2bf1d5e3407dd8ad4c6748195", - "size": "6878214" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", - "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", - "checksum": "SHA-256:5aadf6e50ffe620635faf941fdf82c0765c8cba4830951bb53267ad125fc5af8", - "size": "6940393" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", - "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", - "checksum": "SHA-256:6d11a4f4aa5a81de865f3d18ca395a2780fdbb1e1597a2b11b2b5329e09f30fd", - "size": "6829396" - } - ] - } - ] + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "7.0-arduino.3" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + } + ], + "tools": [ + { + "name": "arduino-fwuploader", + "version": "2.2.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Windows_32bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.0_Windows_32bit.zip", + "checksum": "SHA-256:c0ff772702460fb5cbd8593f8ce731145d21fbf550342da556e45ef946c7d2f5", + "size": "7442444" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_macOS_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.0_macOS_64bit.tar.gz", + "checksum": "SHA-256:ce4444e92ba88c6b24736adb4b0b2b6c4241e4fb916945acbc7de6391d5bfe8c", + "size": "7301372" + } + ] + }, + { + "name": "arduino-fwuploader", + "version": "2.2.2", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", + "checksum": "SHA-256:503b9f8b24c6e396d09eb64f0e1f625c6f9aa5a90b01a50d7dec6477f4a866f0", + "size": "7262873" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", + "checksum": "SHA-256:8d77d0b33c8b0787fe3b80191709b69d638ef2a447d9853536cda35bfafd274b", + "size": "7306763" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_32bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.2_Windows_32bit.zip", + "checksum": "SHA-256:74ad9a5d369204b51be288c98d74f949ceb7a0c227ee64eb65ae179ec884c84c", + "size": "7450717" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_64bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.2_Windows_64bit.zip", + "checksum": "SHA-256:b25ac549cb0645166613c96cf899aebc541e482fe196aada6408bd7cff2c7d02", + "size": "7390999" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", + "checksum": "SHA-256:2cd6168ff470457b5124ba0faf118f315be2d1b9fb4fef43eb74370cd83620a2", + "size": "7306576" + }, + { + "host": "arm64-apple-darwin", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", + "checksum": "SHA-256:10ae5614af4d82096b6ba0e1e07aab667fa140d2bf1d5e3407dd8ad4c6748195", + "size": "6878214" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", + "checksum": "SHA-256:5aadf6e50ffe620635faf941fdf82c0765c8cba4830951bb53267ad125fc5af8", + "size": "6940393" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", + "checksum": "SHA-256:6d11a4f4aa5a81de865f3d18ca395a2780fdbb1e1597a2b11b2b5329e09f30fd", + "size": "6829396" + } + ] } - ] -} \ No newline at end of file + ] + } + ] +} diff --git a/v2/pkgs/pkgs.go b/v2/pkgs/pkgs.go index 9896fdd77..f4965117c 100644 --- a/v2/pkgs/pkgs.go +++ b/v2/pkgs/pkgs.go @@ -21,6 +21,8 @@ // cores, and to download tools used for upload. package pkgs +import "regexp" + // Index is the go representation of a typical // package-index file, stripped from every non-used field. type Index struct { @@ -34,11 +36,106 @@ type Index struct { // tool contained in a package-index file, stripped from // every non-used field. type Tool struct { - Name string `json:"name"` - Version string `json:"version"` - Systems []struct { - Host string `json:"host"` - URL string `json:"url"` - Checksum string `json:"checksum"` - } `json:"systems"` + Name string `json:"name"` + Version string `json:"version"` + Systems []System `json:"systems"` +} + +// System is the go representation of the info needed to +// download a tool for a specific OS/Arch +type System struct { + Host string `json:"host"` + URL string `json:"url"` + Name string `json:"archiveFileName"` + Checksum string `json:"checksum"` +} + +// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L129-L142 +var ( + regexpLinuxArm = regexp.MustCompile("arm.*-linux-gnueabihf") + regexpLinuxArm64 = regexp.MustCompile("(aarch64|arm64)-linux-gnu") + regexpLinux64 = regexp.MustCompile("x86_64-.*linux-gnu") + regexpLinux32 = regexp.MustCompile("i[3456]86-.*linux-gnu") + regexpWindows32 = regexp.MustCompile("i[3456]86-.*(mingw32|cygwin)") + regexpWindows64 = regexp.MustCompile("(amd64|x86_64)-.*(mingw32|cygwin)") + regexpMac64 = regexp.MustCompile("x86_64-apple-darwin.*") + regexpMac32 = regexp.MustCompile("i[3456]86-apple-darwin.*") + regexpMacArm64 = regexp.MustCompile("arm64-apple-darwin.*") + regexpFreeBSDArm = regexp.MustCompile("arm.*-freebsd[0-9]*") + regexpFreeBSD32 = regexp.MustCompile("i?[3456]86-freebsd[0-9]*") + regexpFreeBSD64 = regexp.MustCompile("amd64-freebsd[0-9]*") +) + +// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L144-L176 +func (s *System) isExactMatchWith(osName, osArch string) bool { + if s.Host == "all" { + return true + } + + switch osName + "," + osArch { + case "linux,arm", "linux,armbe": + return regexpLinuxArm.MatchString(s.Host) + case "linux,arm64": + return regexpLinuxArm64.MatchString(s.Host) + case "linux,amd64": + return regexpLinux64.MatchString(s.Host) + case "linux,386": + return regexpLinux32.MatchString(s.Host) + case "windows,386": + return regexpWindows32.MatchString(s.Host) + case "windows,amd64": + return regexpWindows64.MatchString(s.Host) + case "darwin,arm64": + return regexpMacArm64.MatchString(s.Host) + case "darwin,amd64": + return regexpMac64.MatchString(s.Host) + case "darwin,386": + return regexpMac32.MatchString(s.Host) + case "freebsd,arm": + return regexpFreeBSDArm.MatchString(s.Host) + case "freebsd,386": + return regexpFreeBSD32.MatchString(s.Host) + case "freebsd,amd64": + return regexpFreeBSD64.MatchString(s.Host) + } + return false +} + +// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L178-L198 +func (s *System) isCompatibleWith(osName, osArch string) (bool, int) { + if s.isExactMatchWith(osName, osArch) { + return true, 1000 + } + + switch osName + "," + osArch { + case "windows,amd64": + return regexpWindows32.MatchString(s.Host), 10 + case "darwin,amd64": + return regexpMac32.MatchString(s.Host), 10 + case "darwin,arm64": + // Compatibility guaranteed through Rosetta emulation + if regexpMac64.MatchString(s.Host) { + // Prefer amd64 version if available + return true, 20 + } + return regexpMac32.MatchString(s.Host), 10 + } + + return false, 0 +} + +// GetFlavourCompatibleWith returns the downloadable resource (System) compatible with the specified OS/Arch +// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L206-L216 +func (t *Tool) GetFlavourCompatibleWith(osName, osArch string) System { + var correctSystem System + maxSimilarity := -1 + + for _, s := range t.Systems { + if comp, similarity := s.isCompatibleWith(osName, osArch); comp && similarity > maxSimilarity { + correctSystem = s + maxSimilarity = similarity + } + } + + return correctSystem } diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index 226895d34..13189c9e4 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -32,7 +32,6 @@ import ( "github.com/arduino/arduino-create-agent/gen/tools" "github.com/codeclysm/extract/v3" - "github.com/xrash/smetrics" ) // Tools is a client that implements github.com/arduino/arduino-create-agent/gen/tools.Service interface. @@ -160,9 +159,9 @@ func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools if tool.Name == payload.Name && tool.Version == payload.Version { - i := findSystem(tool) + sys := tool.GetFlavourCompatibleWith(runtime.GOOS, runtime.GOARCH) - return c.install(ctx, path, tool.Systems[i].URL, tool.Systems[i].Checksum) + return c.install(ctx, path, sys.URL, sys.Checksum) } } } @@ -235,30 +234,6 @@ func rename(base string) extract.Renamer { } } -func findSystem(tool Tool) int { - var systems = map[string]string{ - "linuxamd64": "x86_64-linux-gnu", - "linux386": "i686-linux-gnu", - "darwinamd64": "apple-darwin", - "windows386": "i686-mingw32", - "windowsamd64": "i686-mingw32", - "linuxarm": "arm-linux-gnueabihf", - } - - var correctSystem int - maxSimilarity := 0.7 - - for i, system := range tool.Systems { - similarity := smetrics.Jaro(system.Host, systems[runtime.GOOS+runtime.GOARCH]) - if similarity > maxSimilarity { - correctSystem = i - maxSimilarity = similarity - } - } - - return correctSystem -} - func writeInstalled(folder, path string) error { // read installed.json installed := map[string]string{} From 4a93b5501b33cc2041bbc795963475e286ddc6bb Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Mon, 4 Sep 2023 17:37:52 +0200 Subject: [PATCH 112/233] Bump actions/checkout to v4 (#822) --- .../workflows/check-go-dependencies-task.yml | 4 +- .github/workflows/check-go-task.yml | 10 ++-- .github/workflows/check-license.yml | 2 +- .github/workflows/publish-go-tester-task.yml | 11 ++--- .github/workflows/release.yml | 48 +++++++++---------- .github/workflows/sync-labels.yml | 4 +- .../workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 8 files changed, 41 insertions(+), 42 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index ed31f06b5..d07fae92b 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -68,7 +68,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive @@ -118,7 +118,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 5d6796017..4bb6869ca 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -68,7 +68,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 @@ -105,7 +105,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 @@ -142,7 +142,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 @@ -179,7 +179,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 @@ -216,7 +216,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 diff --git a/.github/workflows/check-license.yml b/.github/workflows/check-license.yml index ee9362b77..5a7ce5daf 100644 --- a/.github/workflows/check-license.yml +++ b/.github/workflows/check-license.yml @@ -63,7 +63,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Ruby uses: ruby/setup-ruby@v1 diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 14b7df441..0d2c78ff1 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -60,15 +60,15 @@ jobs: build: needs: run-determination if: needs.run-determination.outputs.result == 'true' - + #use the strategy instead because we still use the native build strategy: matrix: os: [ubuntu-20.04, windows-2019, macos-12] arch: [-amd64] include: - - os: windows-2019 - arch: -386 + - os: windows-2019 + arch: -386 defaults: run: @@ -77,7 +77,6 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Set env vars run: | echo $(go env GOPATH)/bin >> $GITHUB_PATH @@ -86,7 +85,7 @@ jobs: run: git config --global core.autocrlf false - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 @@ -122,7 +121,7 @@ jobs: # building the agent for win requires a different task because of an extra flag - name: Build the Agent for win32 env: - GOARCH: 386 # 32bit architecture (for support) + GOARCH: 386 # 32bit architecture (for support) run: task go:build-win if: runner.os == 'Windows' && matrix.arch == '-386' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 51041c4eb..61bff2ee3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,11 +33,11 @@ jobs: os: [ubuntu-20.04, windows-2019, macos-12] arch: [amd64] include: - - os: windows-2019 - arch: 386 - ext: ".exe" - - os: windows-2019 - ext: ".exe" + - os: windows-2019 + arch: 386 + ext: ".exe" + - os: windows-2019 + ext: ".exe" defaults: run: @@ -55,7 +55,7 @@ jobs: # This is a workaround while waiting for create-release action to implement auto pre-release based on tag id: prerelease run: | - curl -L -s https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip -o /tmp/3.1.0.zip + curl -L -s https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip -o /tmp/3.1.0.zip unzip -p /tmp/3.1.0.zip semver-tool-3.1.0/src/semver >/tmp/semver && chmod +x /tmp/semver if [[ $(/tmp/semver get prerel ${GITHUB_REF/refs\/tags\//}) ]]; then echo "IS_PRE=true" >> $GITHUB_OUTPUT; fi @@ -63,7 +63,7 @@ jobs: run: git config --global core.autocrlf false - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 @@ -81,7 +81,7 @@ jobs: - name: Install Taskfile uses: arduino/setup-task@v1 with: - version: '3.x' + version: "3.x" repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build the Agent for linux @@ -102,7 +102,7 @@ jobs: # building the agent for win requires a different task because of an extra flag - name: Build the Agent for win32 env: - GOARCH: 386 # 32bit architecture (for support) + GOARCH: 386 # 32bit architecture (for support) run: task go:build-win if: matrix.os == 'windows-2019' && matrix.arch == '386' @@ -138,7 +138,7 @@ jobs: - name: Upload autoupdate files to Arduino downloads servers run: | aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }} - aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.OLD_TARGET }} + aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.OLD_TARGET }} if: steps.prerelease.outputs.IS_PRE != 'true' - name: Upload artifacts @@ -163,9 +163,9 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: - repository: 'bcmi-labs/arduino-create-agent-installer' # the repo which contains the bundle structure and icons + repository: "bcmi-labs/arduino-create-agent-installer" # the repo which contains the bundle structure and icons token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} - name: Download artifact @@ -218,7 +218,7 @@ jobs: if-no-files-found: error name: ArduinoCreateAgent.app_${{ matrix.arch }} path: ArduinoCreateAgent.app_${{ matrix.arch }}.tar - + # The notarize-macos job will download the macos bundle from the previous job, sign, notarize and re-upload it, uploading it also on s3 download servers for the autoupdate. notarize-macos: name: Notarize bundle @@ -262,7 +262,7 @@ jobs: "${{ env.KEYCHAIN }}" - name: Install gon for code signing and app notarization - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: darkvertex/gon #this fork has support for --deep notarization path: ${{ env.GON_PATH }} @@ -297,7 +297,7 @@ jobs: - name: Sign and notarize binary run: gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}" - + - name: Upload autoupdate bundle to Arduino downloads servers run: aws s3 cp ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}${GITHUB_REF/refs\/tags\//}/ # the version should be created in th the build job if: ${{ needs.build.outputs.prerelease != 'true' }} @@ -338,8 +338,8 @@ jobs: INSTALLER_CERT_WINDOWS_PFX: "/tmp/ArduinoCerts2020.pfx" strategy: - fail-fast: false # if one os is failing continue nonetheless - matrix: # used to generate installers for different OS and not for runs-on + fail-fast: false # if one os is failing continue nonetheless + matrix: # used to generate installers for different OS and not for runs-on os: [ubuntu-20.04, windows-2019] arch: [amd64] include: @@ -361,16 +361,16 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: - repository: 'bcmi-labs/arduino-create-agent-installer' # the repo which contains install.xml + repository: "bcmi-labs/arduino-create-agent-installer" # the repo which contains install.xml token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} - name: Download artifact uses: actions/download-artifact@v3 with: name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}-${{ matrix.arch }} - path: artifacts/${{ matrix.platform-name }}/ # path expected by installbuilder + path: artifacts/${{ matrix.platform-name }}/ # path expected by installbuilder # zip artifacts do not mantain executable permission - name: Make executable @@ -417,9 +417,9 @@ jobs: runs-on: macos-12 steps: - name: Checkout repo with icons/background - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: - repository: 'bcmi-labs/arduino-create-agent-installer' # the repo which contains the icons/background + repository: "bcmi-labs/arduino-create-agent-installer" # the repo which contains the icons/background token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }} - name: Download artifact @@ -515,7 +515,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 # fetch all history for the create changelog step to work properly @@ -579,7 +579,7 @@ jobs: with: repo_token: ${{ secrets.GITHUB_TOKEN }} tag: ${{ github.ref }} - file_glob: true # If set to true, the file argument can be a glob pattern + file_glob: true # If set to true, the file argument can be a glob pattern file: release/* - name: Upload release files on Arduino downloads servers diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 6f9c91a91..9ecf638e8 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download JSON schema for labels configuration file id: download-schema @@ -106,7 +106,7 @@ jobs: echo "flag=--dry-run" >> $GITHUB_OUTPUT - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download configuration files artifact uses: actions/download-artifact@v3 diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 7bc9d38e0..6de9f37e8 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -72,7 +72,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 492511218..3bda6dd65 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -78,7 +78,7 @@ jobs: run: git config --global core.autocrlf false - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Go uses: actions/setup-go@v4 From b1ece849e53afc92e317418e120d2d1595051705 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 4 Sep 2023 17:49:03 +0200 Subject: [PATCH 113/233] add token (#823) --- .github/workflows/test-go-task.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 3bda6dd65..79712584a 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -105,6 +105,7 @@ jobs: if: runner.os == 'Linux' uses: codecov/codecov-action@v3 with: - file: ${{ matrix.module.path }}coverage_unit.txt + token: ${{ secrets.CODECOV_TOKEN }} + files: ${{ matrix.module.path }}coverage_unit.txt flags: ${{ matrix.module.codecov-flags }} fail_ci_if_error: ${{ github.repository == 'arduino/arduino-create-agent' }} From 08422e60b3c607ea82d4a48506fc6e414f6cb726 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 5 Sep 2023 15:16:47 +0200 Subject: [PATCH 114/233] Fix text plain decoding (#824) * test if the request with "text/plain" content type is parsed correctly * add information on what Content-Type has to be used this is only a cosmetic change * use a CustomRequestDecoder to handle properly the misbehaving requests of the Web Editor The requests sent uses `text/plain` Content-Type when they should be using `application/json` This commit restores the old behavior, using always a json Decoder --- design/design.go | 2 ++ gen/http/openapi.json | 2 +- gen/http/openapi.yaml | 3 +-- main_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ v2/http.go | 14 +++++++++++++- 5 files changed, 58 insertions(+), 4 deletions(-) diff --git a/design/design.go b/design/design.go index 7fb32d206..b690a40e4 100644 --- a/design/design.go +++ b/design/design.go @@ -24,5 +24,7 @@ var _ = API("arduino-create-agent", func() { such as detecting which boards are connected and upload sketches on them.`) HTTP(func() { Path("/v2") + Consumes("application/json") + Consumes("plain/text") }) }) diff --git a/gen/http/openapi.json b/gen/http/openapi.json index a315391ad..e6a796113 100644 --- a/gen/http/openapi.json +++ b/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Repudiandae dignissimos consectetur eos molestiae culpa soluta."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesListInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesAddInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesRemoveInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesListInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Totam cum inventore exercitationem in."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Totam vero ipsum corporis nihil voluptatem id."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Modi dolorem reprehenderit perspiciatis illo aspernatur.","name":"avrdude","packager":"arduino","url":"Officia optio inventore atque in voluptatibus qui.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Et qui id et cumque illo."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Officia maiores reiciendis est nemo."}},"example":{"checksum":"Corporis eum et numquam sapiente.","url":"Est voluptatem eos reprehenderit quo sint quod."}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Repudiandae dignissimos consectetur eos molestiae culpa soluta."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesListInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesAddInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesRemoveInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesListInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Totam cum inventore exercitationem in."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Totam vero ipsum corporis nihil voluptatem id."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Modi dolorem reprehenderit perspiciatis illo aspernatur.","name":"avrdude","packager":"arduino","url":"Officia optio inventore atque in voluptatibus qui.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Et qui id et cumque illo."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Officia maiores reiciendis est nemo."}},"example":{"checksum":"Corporis eum et numquam sapiente.","url":"Est voluptatem eos reprehenderit quo sint quod."}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}} \ No newline at end of file diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml index 30aaaa8d7..4079b44c9 100644 --- a/gen/http/openapi.yaml +++ b/gen/http/openapi.yaml @@ -7,8 +7,7 @@ host: localhost:80 basePath: /v2 consumes: - application/json - - application/xml - - application/gob + - plain/text produces: - application/json - application/xml diff --git a/main_test.go b/main_test.go index 0f84ff42a..238ae2a2d 100644 --- a/main_test.go +++ b/main_test.go @@ -16,11 +16,20 @@ package main import ( + "bytes" "crypto/x509" + "encoding/json" "encoding/pem" + "io" + "net/http" + "net/http/httptest" "path/filepath" "testing" + "github.com/arduino/arduino-create-agent/config" + "github.com/arduino/arduino-create-agent/gen/tools" + v2 "github.com/arduino/arduino-create-agent/v2" + "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" ) @@ -38,3 +47,35 @@ func TestValidSignatureKey(t *testing.T) { require.NoError(t, err) require.NotNil(t, key) } + +func TestInstallToolDifferentContentType(t *testing.T) { + r := gin.New() + goa := v2.Server(config.GetDataDir().String()) + r.Any("/v2/*path", gin.WrapH(goa)) + ts := httptest.NewServer(r) + + URL := "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz" + Checksum := "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100" + request := tools.ToolPayload{ + Name: "bossac", + Version: "1.7.0-arduino3", + Packager: "arduino", + URL: &URL, + Checksum: &Checksum, + } + + payload, err := json.Marshal(request) + require.NoError(t, err) + + // for some reason the fronted sends requests with "text/plain" content type. + // Even if the request body contains a json object. + // With this test we verify is parsed correctly. + for _, encoding := range []string{"encoding/json", "text/plain"} { + resp, err := http.Post(ts.URL+"/v2/pkgs/tools/installed", encoding, bytes.NewBuffer(payload)) + require.NoError(t, err) + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + require.Contains(t, string(body), "ok") + require.Equal(t, http.StatusOK, resp.StatusCode) + } +} diff --git a/v2/http.go b/v2/http.go index efafbfd7e..3e9c00965 100644 --- a/v2/http.go +++ b/v2/http.go @@ -17,6 +17,7 @@ package v2 import ( "context" + "encoding/json" "net/http" "path/filepath" @@ -56,7 +57,7 @@ func Server(home string) http.Handler { Indexes: &indexesSvc, } toolsEndpoints := toolssvc.NewEndpoints(&toolsSvc) - toolsServer := toolssvr.New(toolsEndpoints, mux, goahttp.RequestDecoder, goahttp.ResponseEncoder, errorHandler(logger), nil) + toolsServer := toolssvr.New(toolsEndpoints, mux, CustomRequestDecoder, goahttp.ResponseEncoder, errorHandler(logger), nil) toolssvr.Mount(mux, toolsServer) // Mount middlewares @@ -76,3 +77,14 @@ func errorHandler(logger *logrus.Logger) func(context.Context, http.ResponseWrit logger.Printf("[%s] ERROR: %s", id, err.Error()) } } + +// CustomRequestDecoder overrides the RequestDecoder provided by goahttp package +// It returns always a json.NewDecoder for legacy reasons: +// The web editor sends always request to the agent setting "Content-Type: text/plain" +// even when it should set "Content-Type: application/json". This breaks the parsing with: +// "can't decode text/plain to *server.InstallRequestBody" error message. +// This was working before the bump to goa v3 only because a "text/plain" decoder was not implemented +// and it was fallbacking to the json decoder. (https://github.com/goadesign/goa/pull/2310) +func CustomRequestDecoder(r *http.Request) goahttp.Decoder { + return json.NewDecoder(r.Body) +} From 0ef43783e688b4c834e68a64e3dbf72c19e608c3 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 8 Sep 2023 19:56:20 +0200 Subject: [PATCH 115/233] Bump Installbuilder to 23.7.0 (#827) --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61bff2ee3..b96a6b26e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -331,7 +331,7 @@ jobs: env: # vars used by installbuilder - INSTALLBUILDER_PATH: "/opt/installbuilder-22.10.0/bin/builder" + INSTALLBUILDER_PATH: "/opt/installbuilder-23.7.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" # installbuilder will read this vars automatically (defined in installer.xml): INSTALLER_CERT_WINDOWS_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} @@ -357,7 +357,7 @@ jobs: installer-extension: .exe container: - image: floydpink/ubuntu-install-builder:22.10.0 + image: floydpink/ubuntu-install-builder:23.7.0 steps: - name: Checkout From b2bceb658fcdcf9dd89745da61751737375c0e4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 10:30:50 +0200 Subject: [PATCH 116/233] Bump crazy-max/ghaction-virustotal from 3 to 4 (#828) Bumps [crazy-max/ghaction-virustotal](https://github.com/crazy-max/ghaction-virustotal) from 3 to 4. - [Release notes](https://github.com/crazy-max/ghaction-virustotal/releases) - [Commits](https://github.com/crazy-max/ghaction-virustotal/compare/v3...v4) --- updated-dependencies: - dependency-name: crazy-max/ghaction-virustotal dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b96a6b26e..fdbff9eda 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -534,7 +534,7 @@ jobs: - name: VirusTotal Scan id: virustotal_step - uses: crazy-max/ghaction-virustotal@v3 + uses: crazy-max/ghaction-virustotal@v4 with: vt_api_key: ${{ secrets.VIRUSTOTAL_API_KEY }} update_release_body: false # `true` won't work because trigger type is not release From 716e7aaf0b3a3c04d349c2bf06ef8287419b20fd Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Thu, 14 Sep 2023 17:33:41 +0200 Subject: [PATCH 117/233] bugfix: serial enumerator failures in some rare circumstances (#830) * Use io.Discard instead of custom nullWriter * Renamed and slightly refactored port enumerators * Useless code beautify * Updated go.bug.st/serial lib to 1.6.0 * Empty port list if the enumerator fails * Synchronize multiple serial-port update request * Upgraded go-serial to 1.6.1 * Update serial.go Co-authored-by: Umberto Baldi <34278123+umbynos@users.noreply.github.com> --------- Co-authored-by: Umberto Baldi <34278123+umbynos@users.noreply.github.com> --- .../go/go.bug.st/serial.dep.yml | 4 +- .../go/go.bug.st/serial/enumerator.dep.yml | 8 +- .../go/go.bug.st/serial/unixutils.dep.yml | 8 +- discovery.go | 4 +- go.mod | 2 +- go.sum | 4 +- main.go | 9 +- serial.go | 135 ++++++++---------- seriallist.go | 10 +- serialport.go | 16 ++- 10 files changed, 89 insertions(+), 111 deletions(-) diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml index a3ba42c32..c55d351d0 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml @@ -1,6 +1,6 @@ --- name: go.bug.st/serial -version: v1.4.1 +version: v1.6.1 type: go summary: Package serial is a cross-platform serial library for the go language. homepage: https://pkg.go.dev/go.bug.st/serial @@ -9,7 +9,7 @@ licenses: - sources: LICENSE text: |2+ - Copyright (c) 2014-2021, Cristian Maglie. + Copyright (c) 2014-2023, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml index 0078a4a60..7743f09d9 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml @@ -1,16 +1,16 @@ --- name: go.bug.st/serial/enumerator -version: v1.4.1 +version: v1.6.1 type: go summary: Package enumerator is a golang cross-platform library for USB serial port discovery. homepage: https://pkg.go.dev/go.bug.st/serial/enumerator license: bsd-3-clause licenses: -- sources: serial@v1.4.1/LICENSE +- sources: serial@v1.6.1/LICENSE text: |2+ - Copyright (c) 2014-2021, Cristian Maglie. + Copyright (c) 2014-2023, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -42,7 +42,7 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.4.1/README.md +- sources: serial@v1.6.1/README.md text: |- The software is release under a [BSD 3-clause license] diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml index ad23c8bc3..b744d2524 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml @@ -1,15 +1,15 @@ --- name: go.bug.st/serial/unixutils -version: v1.4.1 +version: v1.6.1 type: go summary: homepage: https://pkg.go.dev/go.bug.st/serial/unixutils license: bsd-3-clause licenses: -- sources: serial@v1.4.1/LICENSE +- sources: serial@v1.6.1/LICENSE text: |2+ - Copyright (c) 2014-2021, Cristian Maglie. + Copyright (c) 2014-2023, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,7 +41,7 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.4.1/README.md +- sources: serial@v1.6.1/README.md text: |- The software is release under a [BSD 3-clause license] diff --git a/discovery.go b/discovery.go index 48d9ed83f..1856ea9b5 100644 --- a/discovery.go +++ b/discovery.go @@ -42,10 +42,10 @@ const timeoutConst = 2 // SavedNetworkPorts contains the ports which we know are already connected var SavedNetworkPorts []OsSerialPort -// GetNetworkList returns a list of Network Ports +// enumerateNetworkPorts returns a list of Network Ports // The research of network ports is articulated in two phases. First we add new ports coming from // the bonjour module, then we prune the boards who don't respond to a ping -func GetNetworkList() ([]OsSerialPort, error) { +func enumerateNetworkPorts() ([]OsSerialPort, error) { newPorts, err := getPorts() if err != nil { return nil, err diff --git a/go.mod b/go.mod index 5fbf2a7a2..a60f5bb12 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 - go.bug.st/serial v1.4.1 + go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.12.4 golang.org/x/crypto v0.12.0 golang.org/x/sys v0.11.0 diff --git a/go.sum b/go.sum index 3e93edd5f..fa2f7ee27 100644 --- a/go.sum +++ b/go.sum @@ -165,8 +165,8 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6Gj github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= -go.bug.st/serial v1.4.1 h1:AwYUNixVf90XymNeJaUkMrPp+GZQe3RMFQmpVdHIUK8= -go.bug.st/serial v1.4.1/go.mod h1:z8CesKorE90Qr/oRSJiEuvzYRKol9r/anJZEb5kt304= +go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= +go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.12.4 h1:g3G8yHLk+jyUDNRL2sNg+ZcoQ62zY83rpgagAQ5VmTA= goa.design/goa/v3 v3.12.4/go.mod h1:h1vjyGQ+rqWK+VvnqN8oLcpqaHrKIyuY1Vx+jhKodpg= golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= diff --git a/main.go b/main.go index 9f021af27..0d564d920 100755 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ import ( _ "embed" "encoding/json" "flag" + "io" "os" "os/exec" "runtime" @@ -99,10 +100,6 @@ var ( Systray systray.Systray ) -type nullWriter int - -func (nullWriter) Write([]byte) (int, error) { return 0, nil } - type logWriter struct{} func (u *logWriter) Write(p []byte) (n int, err error) { @@ -310,7 +307,7 @@ func loop() { } // list serial ports - portList, _ := GetList(false) + portList, _ := enumerateSerialPorts() log.Println("Your serial ports:") if len(portList) == 0 { log.Println("\tThere are no serial ports to list.") @@ -322,7 +319,7 @@ func loop() { if !*verbose { log.Println("You can enter verbose mode to see all logging by starting with the -v command line switch.") - log.SetOutput(new(nullWriter)) //route all logging to nullwriter + log.SetOutput(io.Discard) } // save crashreport to file diff --git a/serial.go b/serial.go index 77c9c69f6..e1270c7c6 100755 --- a/serial.go +++ b/serial.go @@ -71,11 +71,11 @@ type SpPortItem struct { ProductID string } -// SerialPorts contains the ports attached to the machine -var SerialPorts SpPortList +// serialPorts contains the ports attached to the machine +var serialPorts SpPortList -// NetworkPorts contains the ports on the network -var NetworkPorts SpPortList +// networkPorts contains the ports on the network +var networkPorts SpPortList var sh = serialhub{ //write: make(chan *serport, chan []byte), @@ -130,13 +130,13 @@ func spList(network bool) { var ls []byte var err error if network { - NetworkPorts.Mu.Lock() - ls, err = json.MarshalIndent(&NetworkPorts, "", "\t") - NetworkPorts.Mu.Unlock() + networkPorts.Mu.Lock() + ls, err = json.MarshalIndent(&networkPorts, "", "\t") + networkPorts.Mu.Unlock() } else { - SerialPorts.Mu.Lock() - ls, err = json.MarshalIndent(&SerialPorts, "", "\t") - SerialPorts.Mu.Unlock() + serialPorts.Mu.Lock() + ls, err = json.MarshalIndent(&serialPorts, "", "\t") + serialPorts.Mu.Unlock() } if err != nil { //log.Println(err) @@ -149,81 +149,73 @@ func spList(network bool) { // discoverLoop periodically update the list of ports found func discoverLoop() { - SerialPorts.Mu.Lock() - SerialPorts.Network = false - SerialPorts.Ports = make([]SpPortItem, 0) - SerialPorts.Mu.Unlock() - NetworkPorts.Mu.Lock() - NetworkPorts.Network = true - NetworkPorts.Ports = make([]SpPortItem, 0) - NetworkPorts.Mu.Unlock() + serialPorts.Mu.Lock() + serialPorts.Network = false + serialPorts.Ports = make([]SpPortItem, 0) + serialPorts.Mu.Unlock() + networkPorts.Mu.Lock() + networkPorts.Network = true + networkPorts.Ports = make([]SpPortItem, 0) + networkPorts.Mu.Unlock() go func() { for { if !upload.Busy { - spListDual(false) + updateSerialPortList() } time.Sleep(2 * time.Second) } }() go func() { for { - spListDual(true) + updateNetworkPortList() time.Sleep(2 * time.Second) } }() } -func spListDual(network bool) { +var serialEnumeratorLock sync.Mutex - // call our os specific implementation of getting the serial list - list, err := GetList(network) +func updateSerialPortList() { + if !serialEnumeratorLock.TryLock() { + return + } + defer serialEnumeratorLock.Unlock() + ports, err := enumerateSerialPorts() + if err != nil { + // TODO: report error? - //log.Println(list) - //log.Println(err) + // Empty port list if they can not be detected + ports = []OsSerialPort{} + } + list := spListDual(ports) + serialPorts.Mu.Lock() + serialPorts.Ports = list + serialPorts.Mu.Unlock() +} +func updateNetworkPortList() { + ports, err := enumerateNetworkPorts() if err != nil { - // avoid reporting dummy data if an error occurred - return - } + // TODO: report error? - // do a quick loop to see if any of our open ports - // did not end up in the list port list. this can - // happen on windows in a fallback scenario where an - // open port can't be identified because it is locked, - // so just solve that by manually inserting - // if network { - // for port := range sh.ports { - - // isFound := false - // for _, item := range list { - // if strings.ToLower(port.portConf.Name) == strings.ToLower(item.Name) { - // isFound = true - // } - // } - - // if !isFound { - // // artificially push to front of port list - // log.Println(fmt.Sprintf("Did not find an open port in the serial port list. We are going to artificially push it onto the list. port:%v", port.portConf.Name)) - // var ossp OsSerialPort - // ossp.Name = port.portConf.Name - // ossp.FriendlyName = port.portConf.Name - // list = append([]OsSerialPort{ossp}, list...) - // } - // } - // } + // Empty port list if they can not be detected + ports = []OsSerialPort{} + } + list := spListDual(ports) + networkPorts.Mu.Lock() + networkPorts.Ports = list + networkPorts.Mu.Unlock() +} +func spListDual(list []OsSerialPort) []SpPortItem { // we have a full clean list of ports now. iterate thru them // to append the open/close state, baud rates, etc to make // a super clean nice list to send back to browser - n := len(list) - spl := make([]SpPortItem, n) - - ctr := 0 + spl := []SpPortItem{} for _, item := range list { - - spl[ctr] = SpPortItem{ + port := SpPortItem{ Name: item.Name, SerialNumber: item.ISerial, DeviceClass: item.DeviceClass, @@ -238,26 +230,15 @@ func spListDual(network bool) { } // figure out if port is open - myport, isFound := findPortByName(item.Name) - - if isFound { - // we found our port - spl[ctr].IsOpen = true - spl[ctr].Baud = myport.portConf.Baud - spl[ctr].BufferAlgorithm = myport.BufferType + if myport, isFound := findPortByName(item.Name); isFound { + // and update data with the open port parameters + port.IsOpen = true + port.Baud = myport.portConf.Baud + port.BufferAlgorithm = myport.BufferType } - ctr++ - } - - if network { - NetworkPorts.Mu.Lock() - NetworkPorts.Ports = spl - NetworkPorts.Mu.Unlock() - } else { - SerialPorts.Mu.Lock() - SerialPorts.Ports = spl - SerialPorts.Mu.Unlock() + spl = append(spl, port) } + return spl } func spErr(err string) { diff --git a/seriallist.go b/seriallist.go index d24c5554b..8e86ec08f 100755 --- a/seriallist.go +++ b/seriallist.go @@ -38,14 +38,8 @@ type OsSerialPort struct { NetworkPort bool } -// GetList will return the OS serial port -func GetList(network bool) ([]OsSerialPort, error) { - - if network { - netportList, err := GetNetworkList() - return netportList, err - } - +// enumerateSerialPorts will return the OS serial port +func enumerateSerialPorts() ([]OsSerialPort, error) { // will timeout in 2 seconds arrPorts := []OsSerialPort{} ports, err := enumerator.GetDetailedPortsList() diff --git a/serialport.go b/serialport.go index b965782b8..41e2c1819 100755 --- a/serialport.go +++ b/serialport.go @@ -232,7 +232,7 @@ func (p *serport) writerNoBuf() { log.Println(msgstr) h.broadcastSys <- []byte(msgstr) p.portIo.Close() - spListDual(false) + updateSerialPortList() spList(false) } @@ -300,7 +300,13 @@ func spHandlerOpen(portname string, baud int, buftype string) { log.Print("Opened port successfully") //p := &serport{send: make(chan []byte, 256), portConf: conf, portIo: sp} // we can go up to 256,000 lines of gcode in the buffer - p := &serport{sendBuffered: make(chan string, 256000), sendNoBuf: make(chan []byte), sendRaw: make(chan string), portConf: conf, portIo: sp, BufferType: buftype} + p := &serport{ + sendBuffered: make(chan string, 256000), + sendNoBuf: make(chan []byte), + sendRaw: make(chan string), + portConf: conf, + portIo: sp, + BufferType: buftype} var bw Bufferflow @@ -321,7 +327,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { sh.register <- p defer func() { sh.unregister <- p }() - spListDual(false) + updateSerialPortList() spList(false) // this is internally buffered thread to not send to serial port if blocked @@ -333,7 +339,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { p.reader(buftype) - spListDual(false) + updateSerialPortList() spList(false) } @@ -346,6 +352,6 @@ func spHandlerClose(p *serport) { func spCloseReal(p *serport) { p.bufferwatcher.Close() p.portIo.Close() - spListDual(false) + updateSerialPortList() spList(false) } From e740ad943a3d7cefbec727fa1bfa17b1e1e85512 Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Mon, 18 Sep 2023 10:56:49 +0200 Subject: [PATCH 118/233] Use SafeJoin in the uploadHandler (#821) --- conn.go | 8 +++++-- main_test.go | 37 ++++++++++++++++++++++++++++ utilities/utilities.go | 27 ++++++++++++++++++--- utilities/utilities_test.go | 48 +++++++++++++++++++++++++++++++++++++ v2/pkgs/tools.go | 7 +++++- v2/pkgs/tools_test.go | 28 ++++++++++++++++++++++ 6 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 utilities/utilities_test.go diff --git a/conn.go b/conn.go index 5fcc4727c..19f7a400d 100644 --- a/conn.go +++ b/conn.go @@ -140,7 +140,11 @@ func uploadHandler(c *gin.Context) { } for _, extraFile := range data.ExtraFiles { - path := filepath.Join(tmpdir, extraFile.Filename) + path, err := utilities.SafeJoin(tmpdir, extraFile.Filename) + if err != nil { + c.String(http.StatusBadRequest, err.Error()) + return + } filePaths = append(filePaths, path) log.Printf("Saving %s on %s", extraFile.Filename, path) @@ -150,7 +154,7 @@ func uploadHandler(c *gin.Context) { return } - err := os.WriteFile(path, extraFile.Hex, 0644) + err = os.WriteFile(path, extraFile.Hex, 0644) if err != nil { c.String(http.StatusBadRequest, err.Error()) return diff --git a/main_test.go b/main_test.go index 238ae2a2d..79ea87a19 100644 --- a/main_test.go +++ b/main_test.go @@ -28,6 +28,7 @@ import ( "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/upload" v2 "github.com/arduino/arduino-create-agent/v2" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" @@ -48,6 +49,42 @@ func TestValidSignatureKey(t *testing.T) { require.NotNil(t, key) } +func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { + r := gin.New() + r.POST("/", uploadHandler) + ts := httptest.NewServer(r) + + uploadEvilFileName := Upload{ + Port: "/dev/ttyACM0", + Board: "arduino:avr:uno", + Extra: upload.Extra{Network: true}, + Hex: []byte("test"), + Filename: "../evil.txt", + ExtraFiles: []additionalFile{{Hex: []byte("test"), Filename: "../evil.txt"}}, + } + uploadEvilExtraFile := Upload{ + Port: "/dev/ttyACM0", + Board: "arduino:avr:uno", + Extra: upload.Extra{Network: true}, + Hex: []byte("test"), + Filename: "file.txt", + ExtraFiles: []additionalFile{{Hex: []byte("test"), Filename: "../evil.txt"}}, + } + + for _, request := range []Upload{uploadEvilFileName, uploadEvilExtraFile} { + payload, err := json.Marshal(request) + require.NoError(t, err) + + resp, err := http.Post(ts.URL, "encoding/json", bytes.NewBuffer(payload)) + require.NoError(t, err) + require.Equal(t, http.StatusBadRequest, resp.StatusCode) + + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + require.Contains(t, string(body), "unsafe path join") + } +} + func TestInstallToolDifferentContentType(t *testing.T) { r := gin.New() goa := v2.Server(config.GetDataDir().String()) diff --git a/utilities/utilities.go b/utilities/utilities.go index 075310b03..fc4686e9d 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -19,11 +19,13 @@ import ( "archive/zip" "bytes" "errors" + "fmt" "io" "os" "os/exec" "path" "path/filepath" + "strings" ) // SaveFileonTempDir creates a temp directory and saves the file data as the @@ -32,15 +34,21 @@ import ( // Returns an error if the filename doesn't form a valid path. // // Note that path could be defined and still there could be an error. -func SaveFileonTempDir(filename string, data io.Reader) (path string, err error) { - // Create Temp Directory +func SaveFileonTempDir(filename string, data io.Reader) (string, error) { tmpdir, err := os.MkdirTemp("", "arduino-create-agent") if err != nil { return "", errors.New("Could not create temp directory to store downloaded file. Do you have permissions?") } + return saveFileonTempDir(tmpdir, filename, data) +} +func saveFileonTempDir(tmpDir, filename string, data io.Reader) (string, error) { + path, err := SafeJoin(tmpDir, filename) + if err != nil { + return "", err + } // Determine filename - filename, err = filepath.Abs(tmpdir + "/" + filename) + filename, err = filepath.Abs(path) if err != nil { return "", err } @@ -141,3 +149,16 @@ func Unzip(zippath string, destination string) (err error) { } return } + +// SafeJoin performs a filepath.Join of 'parent' and 'subdir' but returns an error +// if the resulting path points outside of 'parent'. +func SafeJoin(parent, subdir string) (string, error) { + res := filepath.Join(parent, subdir) + if !strings.HasSuffix(parent, string(os.PathSeparator)) { + parent += string(os.PathSeparator) + } + if !strings.HasPrefix(res, parent) { + return res, fmt.Errorf("unsafe path join: '%s' with '%s'", parent, subdir) + } + return res, nil +} diff --git a/utilities/utilities_test.go b/utilities/utilities_test.go new file mode 100644 index 000000000..6511a1719 --- /dev/null +++ b/utilities/utilities_test.go @@ -0,0 +1,48 @@ +package utilities + +import ( + "bytes" + "fmt" + "path/filepath" + "runtime" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestSaveFileonTemp(t *testing.T) { + filename := "file" + tmpDir := t.TempDir() + + path, err := saveFileonTempDir(tmpDir, filename, bytes.NewBufferString("TEST")) + require.NoError(t, err) + require.Equal(t, filepath.Join(tmpDir, filename), path) +} + +func TestSaveFileonTempDirWithEvilName(t *testing.T) { + evilFileNames := []string{ + "/", + "..", + "../", + "../evil.txt", + "../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + "some/path/../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + "/../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + "/some/path/../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + } + if runtime.GOOS == "windows" { + evilFileNames = []string{ + "..\\", + "..\\evil.txt", + "..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + "some\\path\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + "\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + "\\some\\path\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + } + } + for _, evilFileName := range evilFileNames { + _, err := saveFileonTempDir(t.TempDir(), evilFileName, bytes.NewBufferString("TEST")) + require.Error(t, err, fmt.Sprintf("with filename: '%s'", evilFileName)) + require.ErrorContains(t, err, "unsafe path join") + } +} diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index 13189c9e4..975fde233 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -31,6 +31,7 @@ import ( "strings" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/utilities" "github.com/codeclysm/extract/v3" ) @@ -216,8 +217,12 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools // Remove deletes the tool folder from Tools Folder func (c *Tools) Remove(ctx context.Context, payload *tools.ToolPayload) (*tools.Operation, error) { path := filepath.Join(payload.Packager, payload.Name, payload.Version) + pathToRemove, err := utilities.SafeJoin(c.Folder, path) + if err != nil { + return nil, err + } - err := os.RemoveAll(filepath.Join(c.Folder, path)) + err = os.RemoveAll(pathToRemove) if err != nil { return nil, err } diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index 581b30b1f..70236cff3 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -27,6 +27,7 @@ import ( "github.com/arduino/arduino-create-agent/gen/indexes" "github.com/arduino/arduino-create-agent/gen/tools" "github.com/arduino/arduino-create-agent/v2/pkgs" + "github.com/stretchr/testify/require" ) // TestTools performs a series of operations about tools, ensuring it behaves as expected. @@ -150,6 +151,33 @@ func TestTools(t *testing.T) { if len(installed) != 1 { t.Fatalf("expected %d == %d (%s)", len(installed), 1, "len(installed)") } + + t.Run("payload containing evil names", func(t *testing.T) { + evilFileNames := []string{ + "/", + "..", + "../", + "../evil.txt", + "../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + "some/path/../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + } + if runtime.GOOS == "windows" { + evilFileNames = []string{ + "..\\", + "..\\evil.txt", + "..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + "some\\path\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + } + } + for _, evilFileName := range evilFileNames { + // Here we could inject malicious name also in the Packager and Version field. + // Since the path is made by joining all of these 3 fields, we're using only the Name, + // as it won't change the result and let us keep the test small and readable. + _, err := service.Remove(ctx, &tools.ToolPayload{Name: evilFileName}) + require.Error(t, err, evilFileName) + require.ErrorContains(t, err, "unsafe path join") + } + }) } func strpoint(s string) *string { From 33080c3d06f93c464435fd739b990f343a08df05 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 26 Sep 2023 09:05:58 +0200 Subject: [PATCH 119/233] Add signature verification to V2 tool install endpoint (#826) * modify examples * add signature * goa gen github.com/arduino/arduino-create-agent/design * make signatureKey global * move `verifyCommandLine` to utilities package * implement signature verification in case of tool install with URL The endpoint affected is `/v2/pkgs/tools/installed`. If the signature is invalid the endpoint returns 500 with "rsa verification error" If the signature is not present we try to install the tool using "name, version, packager" arguments * use subtests and add test cases --- conn.go | 26 +---- design/pkgs.go | 17 ++- gen/http/cli/arduino_create_agent/cli.go | 16 +-- gen/http/openapi.json | 2 +- gen/http/openapi.yaml | 84 +++++++++------ gen/http/openapi3.json | 2 +- gen/http/openapi3.yaml | 128 +++++++++++++---------- gen/http/tools/client/cli.go | 20 ++-- gen/http/tools/client/types.go | 22 ++-- gen/http/tools/server/types.go | 22 ++-- gen/tools/service.go | 3 + globals/globals.go | 22 ++++ main.go | 3 +- main_test.go | 71 +++++++++---- utilities/utilities.go | 27 +++++ v2/pkgs/tools.go | 8 +- 16 files changed, 304 insertions(+), 169 deletions(-) create mode 100644 globals/globals.go diff --git a/conn.go b/conn.go index 19f7a400d..532a4b348 100644 --- a/conn.go +++ b/conn.go @@ -19,14 +19,7 @@ package main import ( "bytes" - "crypto" - "crypto/rsa" - "crypto/sha256" - "crypto/x509" - "encoding/hex" "encoding/json" - "encoding/pem" - "errors" "fmt" "net/http" "os" @@ -114,7 +107,7 @@ func uploadHandler(c *gin.Context) { return } - err := verifyCommandLine(data.Commandline, data.Signature) + err := utilities.VerifyInput(data.Commandline, data.Signature) if err != nil { c.String(http.StatusBadRequest, "signature is invalid") @@ -219,23 +212,6 @@ func send(args map[string]string) { h.broadcastSys <- mapB } -func verifyCommandLine(input string, signature string) error { - sign, _ := hex.DecodeString(signature) - block, _ := pem.Decode([]byte(*signatureKey)) - if block == nil { - return errors.New("invalid key") - } - key, err := x509.ParsePKIXPublicKey(block.Bytes) - if err != nil { - return err - } - rsaKey := key.(*rsa.PublicKey) - h := sha256.New() - h.Write([]byte(input)) - d := h.Sum(nil) - return rsa.VerifyPKCS1v15(rsaKey, crypto.SHA256, d, sign) -} - func wsHandler() *WsServer { server, err := socketio.NewServer(nil) if err != nil { diff --git a/design/pkgs.go b/design/pkgs.go index f47ca0fe0..300bc9058 100644 --- a/design/pkgs.go +++ b/design/pkgs.go @@ -110,20 +110,29 @@ var ToolPayload = Type("arduino.tool", func() { TypeName("ToolPayload") Attribute("name", String, "The name of the tool", func() { - Example("avrdude") + Example("bossac") }) Attribute("version", String, "The version of the tool", func() { - Example("6.3.0-arduino9") + Example("1.7.0-arduino3") }) Attribute("packager", String, "The packager of the tool", func() { Example("arduino") }) Attribute("url", String, `The url where the package can be found. Optional. - If present checksum must also be present.`) + If present checksum must also be present.`, func() { + Example("http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz") + }) Attribute("checksum", String, `A checksum of the archive. Mandatory when url is present. - This ensures that the package is downloaded correcly.`) + This ensures that the package is downloaded correcly.`, func() { + Example("SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100") + }) + + Attribute("signature", String, `The signature used to sign the url. Mandatory when url is present. + This ensure the security of the file downloaded`, func() { + Example("382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0") + }) Required("name", "version", "packager") }) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index 75ec883ef..d2153965b 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -297,11 +297,12 @@ Install implements install. Example: %[1]s tools install --body '{ - "checksum": "Beatae dolor adipisci nulla et quam voluptas.", - "name": "avrdude", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "name": "bossac", "packager": "arduino", - "url": "Deserunt voluptatem impedit iusto libero.", - "version": "6.3.0-arduino9" + "signature": "382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + "version": "1.7.0-arduino3" }' `, os.Args[0]) } @@ -317,8 +318,9 @@ Remove implements remove. Example: %[1]s tools remove --body '{ - "checksum": "Ipsa minima quia.", - "url": "Expedita rem ipsum quasi harum nostrum." - }' --packager "arduino" --name "avrdude" --version "6.3.0-arduino9" + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "signature": "382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz" + }' --packager "arduino" --name "bossac" --version "1.7.0-arduino3" `, os.Args[0]) } diff --git a/gen/http/openapi.json b/gen/http/openapi.json index e6a796113..093633ef5 100644 --- a/gen/http/openapi.json +++ b/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Repudiandae dignissimos consectetur eos molestiae culpa soluta."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesListInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesAddInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesRemoveInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesListInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Totam cum inventore exercitationem in."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Totam vero ipsum corporis nihil voluptatem id."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Modi dolorem reprehenderit perspiciatis illo aspernatur.","name":"avrdude","packager":"arduino","url":"Officia optio inventore atque in voluptatibus qui.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Et qui id et cumque illo."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Officia maiores reiciendis est nemo."}},"example":{"checksum":"Corporis eum et numquam sapiente.","url":"Est voluptatem eos reprehenderit quo sint quod."}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Pariatur laudantium inventore qui."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesListInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesAddInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesRemoveInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesListInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml index 4079b44c9..fd351cf28 100644 --- a/gen/http/openapi.yaml +++ b/gen/http/openapi.yaml @@ -26,7 +26,7 @@ paths: type: array items: type: string - example: Repudiandae dignissimos consectetur eos molestiae culpa soluta. + example: Pariatur laudantium inventore qui. "400": description: Bad Request response. schema: @@ -193,14 +193,14 @@ definitions: timeout: type: boolean description: Is the error a timeout? - example: false + example: true description: url invalid (default view) example: fault: false id: 123abc message: parameter 'p' must be an integer name: bad_request - temporary: false + temporary: true timeout: false required: - name @@ -241,7 +241,7 @@ definitions: fault: type: boolean description: Is the error a server-side fault? - example: true + example: false id: type: string description: ID is a unique identifier for this particular occurrence of the problem. @@ -261,14 +261,14 @@ definitions: timeout: type: boolean description: Is the error a timeout? - example: false + example: true description: url invalid (default view) example: - fault: true + fault: false id: 123abc message: parameter 'p' must be an integer name: bad_request - temporary: true + temporary: false timeout: true required: - name @@ -284,7 +284,7 @@ definitions: fault: type: boolean description: Is the error a server-side fault? - example: false + example: true id: type: string description: ID is a unique identifier for this particular occurrence of the problem. @@ -300,19 +300,19 @@ definitions: temporary: type: boolean description: Is the error temporary? - example: true + example: false timeout: type: boolean description: Is the error a timeout? - example: true + example: false description: url invalid (default view) example: - fault: false + fault: true id: 123abc message: parameter 'p' must be an integer name: bad_request temporary: true - timeout: false + timeout: true required: - name - id @@ -352,7 +352,7 @@ definitions: name: type: string description: The name of the tool - example: avrdude + example: bossac packager: type: string description: The packager of the tool @@ -360,12 +360,12 @@ definitions: version: type: string description: The version of the tool - example: 6.3.0-arduino9 + example: 1.7.0-arduino3 description: A tool is an executable program that can upload sketches. (default view) example: - name: avrdude + name: bossac packager: arduino - version: 6.3.0-arduino9 + version: 1.7.0-arduino3 required: - name - version @@ -377,29 +377,36 @@ definitions: checksum: type: string description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." - example: Totam cum inventore exercitationem in. + example: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 name: type: string description: The name of the tool - example: avrdude + example: bossac packager: type: string description: The packager of the tool example: arduino + signature: + type: string + description: |- + The signature used to sign the url. Mandatory when url is present. + This ensure the security of the file downloaded + example: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 url: type: string description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." - example: Totam vero ipsum corporis nihil voluptatem id. + example: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz version: type: string description: The version of the tool - example: 6.3.0-arduino9 + example: 1.7.0-arduino3 example: - checksum: Modi dolorem reprehenderit perspiciatis illo aspernatur. - name: avrdude + checksum: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + name: bossac packager: arduino - url: Officia optio inventore atque in voluptatibus qui. - version: 6.3.0-arduino9 + signature: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 + url: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz + version: 1.7.0-arduino3 required: - name - version @@ -424,14 +431,21 @@ definitions: checksum: type: string description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." - example: Et qui id et cumque illo. + example: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + signature: + type: string + description: |- + The signature used to sign the url. Mandatory when url is present. + This ensure the security of the file downloaded + example: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 url: type: string description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." - example: Officia maiores reiciendis est nemo. + example: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz example: - checksum: Corporis eum et numquam sapiente. - url: Est voluptatem eos reprehenderit quo sint quod. + checksum: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + signature: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 + url: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz ToolsRemoveResponseBody: title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' type: object @@ -452,9 +466,15 @@ definitions: $ref: '#/definitions/ToolResponse' description: AvailableResponseBody is the result type for an array of ToolResponse (default view) example: - - name: avrdude + - name: bossac + packager: arduino + version: 1.7.0-arduino3 + - name: bossac + packager: arduino + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 + version: 1.7.0-arduino3 diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json index 200367bbf..fb26d68bf 100644 --- a/gen/http/openapi3.json +++ b/gen/http/openapi3.json @@ -1 +1 @@ -{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Eveniet iure nihil optio qui."},"example":["Et perferendis eveniet voluptas.","Ut aut illum eaque dolor magni.","Amet illo veritatis laudantium optio."]},"example":["Illo enim vero qui rerum ut inventore.","Dolorem nihil autem minima alias."]}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"Beatae dolor adipisci nulla et quam voluptas.","name":"avrdude","packager":"arduino","url":"Deserunt voluptatem impedit iusto libero.","version":"6.3.0-arduino9"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"avrdude"},"example":"avrdude"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"},"example":"6.3.0-arduino9"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"Ipsa minima quia.","url":"Expedita rem ipsum quasi harum nostrum."}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"AddRequestBody":{"type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Sint odio sed consequatur numquam."},"name":{"type":"string","description":"The name of the tool","example":"avrdude"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Et quo doloremque sapiente atque."},"version":{"type":"string","description":"The version of the tool","example":"6.3.0-arduino9"}},"example":{"checksum":"Mollitia commodi sunt.","name":"avrdude","packager":"arduino","url":"Quae reprehenderit provident provident debitis illo.","version":"6.3.0-arduino9"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"Ea culpa."},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"Odit officiis illo qui quia provident illo."}},"example":{"checksum":"Rerum eum esse corporis ex.","url":"Molestiae dolor quaerat enim."}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"},{"name":"avrdude","packager":"arduino","version":"6.3.0-arduino9"}]}}},"tags":[{"name":"indexes","description":"The indexes service manages the package_index files"},{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file +{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Rerum et soluta laudantium."},"example":["Et deserunt.","Impedit iusto libero explicabo.","Dolor adipisci nulla.","Quam voluptas voluptates expedita rem ipsum."]},"example":["Dignissimos consectetur eos molestiae culpa soluta deserunt.","Nobis sint dolorem unde.","Quia doloremque.","Atque iusto tempore sit quod dolor repellat."]}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"AddRequestBody":{"type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"indexes","description":"The indexes service manages the package_index files"},{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml index 84ccfb1a9..8608590fe 100644 --- a/gen/http/openapi3.yaml +++ b/gen/http/openapi3.yaml @@ -22,14 +22,17 @@ paths: type: array items: type: string - example: Eveniet iure nihil optio qui. + example: Rerum et soluta laudantium. example: - - Et perferendis eveniet voluptas. - - Ut aut illum eaque dolor magni. - - Amet illo veritatis laudantium optio. + - Et deserunt. + - Impedit iusto libero explicabo. + - Dolor adipisci nulla. + - Quam voluptas voluptates expedita rem ipsum. example: - - Illo enim vero qui rerum ut inventore. - - Dolorem nihil autem minima alias. + - Dignissimos consectetur eos molestiae culpa soluta deserunt. + - Nobis sint dolorem unde. + - Quia doloremque. + - Atque iusto tempore sit quod dolor repellat. "400": description: 'invalid_url: url invalid' content: @@ -108,15 +111,15 @@ paths: schema: $ref: '#/components/schemas/ToolCollection' example: - - name: avrdude + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 + version: 1.7.0-arduino3 /v2/pkgs/tools/installed: get: tags: @@ -131,15 +134,15 @@ paths: schema: $ref: '#/components/schemas/ToolCollection' example: - - name: avrdude + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 + version: 1.7.0-arduino3 post: tags: - tools @@ -152,11 +155,12 @@ paths: schema: $ref: '#/components/schemas/InstallRequestBody' example: - checksum: Beatae dolor adipisci nulla et quam voluptas. - name: avrdude + checksum: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + name: bossac packager: arduino - url: Deserunt voluptatem impedit iusto libero. - version: 6.3.0-arduino9 + signature: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 + url: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz + version: 1.7.0-arduino3 responses: "200": description: OK response. @@ -189,8 +193,8 @@ paths: schema: type: string description: The name of the tool - example: avrdude - example: avrdude + example: bossac + example: bossac - name: version in: path description: The version of the tool @@ -198,8 +202,8 @@ paths: schema: type: string description: The version of the tool - example: 6.3.0-arduino9 - example: 6.3.0-arduino9 + example: 1.7.0-arduino3 + example: 1.7.0-arduino3 requestBody: required: true content: @@ -207,8 +211,9 @@ paths: schema: $ref: '#/components/schemas/RemoveRequestBody' example: - checksum: Ipsa minima quia. - url: Expedita rem ipsum quasi harum nostrum. + checksum: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + signature: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 + url: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz responses: "200": description: OK response. @@ -237,7 +242,7 @@ components: name: type: string description: The name of the tool - example: avrdude + example: bossac packager: type: string description: The packager of the tool @@ -245,12 +250,12 @@ components: version: type: string description: The version of the tool - example: 6.3.0-arduino9 + example: 1.7.0-arduino3 description: A tool is an executable program that can upload sketches. example: - name: avrdude + name: bossac packager: arduino - version: 6.3.0-arduino9 + version: 1.7.0-arduino3 required: - name - version @@ -277,7 +282,7 @@ components: temporary: type: boolean description: Is the error temporary? - example: false + example: true timeout: type: boolean description: Is the error a timeout? @@ -288,8 +293,8 @@ components: id: 123abc message: parameter 'p' must be an integer name: bad_request - temporary: false - timeout: true + temporary: true + timeout: false required: - name - id @@ -303,29 +308,36 @@ components: checksum: type: string description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." - example: Sint odio sed consequatur numquam. + example: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 name: type: string description: The name of the tool - example: avrdude + example: bossac packager: type: string description: The packager of the tool example: arduino + signature: + type: string + description: |- + The signature used to sign the url. Mandatory when url is present. + This ensure the security of the file downloaded + example: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 url: type: string description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." - example: Et quo doloremque sapiente atque. + example: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz version: type: string description: The version of the tool - example: 6.3.0-arduino9 + example: 1.7.0-arduino3 example: - checksum: Mollitia commodi sunt. - name: avrdude + checksum: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + name: bossac packager: arduino - url: Quae reprehenderit provident provident debitis illo. - version: 6.3.0-arduino9 + signature: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 + url: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz + version: 1.7.0-arduino3 required: - name - version @@ -347,31 +359,35 @@ components: checksum: type: string description: "A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly." - example: Ea culpa. + example: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + signature: + type: string + description: |- + The signature used to sign the url. Mandatory when url is present. + This ensure the security of the file downloaded + example: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 url: type: string description: "The url where the package can be found. Optional. \n\tIf present checksum must also be present." - example: Odit officiis illo qui quia provident illo. + example: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz example: - checksum: Rerum eum esse corporis ex. - url: Molestiae dolor quaerat enim. + checksum: SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100 + signature: 382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0 + url: http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz ToolCollection: type: array items: $ref: '#/components/schemas/ArduinoTool' example: - - name: avrdude - packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 - - name: avrdude + version: 1.7.0-arduino3 + - name: bossac packager: arduino - version: 6.3.0-arduino9 + version: 1.7.0-arduino3 tags: - name: indexes description: The indexes service manages the package_index files diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index c6b125ff9..cfeb0b9fa 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -22,15 +22,16 @@ func BuildInstallPayload(toolsInstallBody string) (*tools.ToolPayload, error) { { err = json.Unmarshal([]byte(toolsInstallBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"checksum\": \"Beatae dolor adipisci nulla et quam voluptas.\",\n \"name\": \"avrdude\",\n \"packager\": \"arduino\",\n \"url\": \"Deserunt voluptatem impedit iusto libero.\",\n \"version\": \"6.3.0-arduino9\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"checksum\": \"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100\",\n \"name\": \"bossac\",\n \"packager\": \"arduino\",\n \"signature\": \"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0\",\n \"url\": \"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz\",\n \"version\": \"1.7.0-arduino3\"\n }'") } } v := &tools.ToolPayload{ - Name: body.Name, - Version: body.Version, - Packager: body.Packager, - URL: body.URL, - Checksum: body.Checksum, + Name: body.Name, + Version: body.Version, + Packager: body.Packager, + URL: body.URL, + Checksum: body.Checksum, + Signature: body.Signature, } return v, nil @@ -44,7 +45,7 @@ func BuildRemovePayload(toolsRemoveBody string, toolsRemovePackager string, tool { err = json.Unmarshal([]byte(toolsRemoveBody), &body) if err != nil { - return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"checksum\": \"Ipsa minima quia.\",\n \"url\": \"Expedita rem ipsum quasi harum nostrum.\"\n }'") + return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"checksum\": \"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100\",\n \"signature\": \"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0\",\n \"url\": \"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz\"\n }'") } } var packager string @@ -60,8 +61,9 @@ func BuildRemovePayload(toolsRemoveBody string, toolsRemovePackager string, tool version = toolsRemoveVersion } v := &tools.ToolPayload{ - URL: body.URL, - Checksum: body.Checksum, + URL: body.URL, + Checksum: body.Checksum, + Signature: body.Signature, } v.Packager = packager v.Name = name diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index 0b2a81488..77a8dc8a2 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -28,6 +28,9 @@ type InstallRequestBody struct { // A checksum of the archive. Mandatory when url is present. // This ensures that the package is downloaded correcly. Checksum *string `form:"checksum,omitempty" json:"checksum,omitempty" xml:"checksum,omitempty"` + // The signature used to sign the url. Mandatory when url is present. + // This ensure the security of the file downloaded + Signature *string `form:"signature,omitempty" json:"signature,omitempty" xml:"signature,omitempty"` } // RemoveRequestBody is the type of the "tools" service "remove" endpoint HTTP @@ -39,6 +42,9 @@ type RemoveRequestBody struct { // A checksum of the archive. Mandatory when url is present. // This ensures that the package is downloaded correcly. Checksum *string `form:"checksum,omitempty" json:"checksum,omitempty" xml:"checksum,omitempty"` + // The signature used to sign the url. Mandatory when url is present. + // This ensure the security of the file downloaded + Signature *string `form:"signature,omitempty" json:"signature,omitempty" xml:"signature,omitempty"` } // AvailableResponseBody is the type of the "tools" service "available" @@ -77,11 +83,12 @@ type ToolResponse struct { // "install" endpoint of the "tools" service. func NewInstallRequestBody(p *tools.ToolPayload) *InstallRequestBody { body := &InstallRequestBody{ - Name: p.Name, - Version: p.Version, - Packager: p.Packager, - URL: p.URL, - Checksum: p.Checksum, + Name: p.Name, + Version: p.Version, + Packager: p.Packager, + URL: p.URL, + Checksum: p.Checksum, + Signature: p.Signature, } return body } @@ -90,8 +97,9 @@ func NewInstallRequestBody(p *tools.ToolPayload) *InstallRequestBody { // "remove" endpoint of the "tools" service. func NewRemoveRequestBody(p *tools.ToolPayload) *RemoveRequestBody { body := &RemoveRequestBody{ - URL: p.URL, - Checksum: p.Checksum, + URL: p.URL, + Checksum: p.Checksum, + Signature: p.Signature, } return body } diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index 6aaeb823f..d9b05d7a4 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -28,6 +28,9 @@ type InstallRequestBody struct { // A checksum of the archive. Mandatory when url is present. // This ensures that the package is downloaded correcly. Checksum *string `form:"checksum,omitempty" json:"checksum,omitempty" xml:"checksum,omitempty"` + // The signature used to sign the url. Mandatory when url is present. + // This ensure the security of the file downloaded + Signature *string `form:"signature,omitempty" json:"signature,omitempty" xml:"signature,omitempty"` } // RemoveRequestBody is the type of the "tools" service "remove" endpoint HTTP @@ -39,6 +42,9 @@ type RemoveRequestBody struct { // A checksum of the archive. Mandatory when url is present. // This ensures that the package is downloaded correcly. Checksum *string `form:"checksum,omitempty" json:"checksum,omitempty" xml:"checksum,omitempty"` + // The signature used to sign the url. Mandatory when url is present. + // This ensure the security of the file downloaded + Signature *string `form:"signature,omitempty" json:"signature,omitempty" xml:"signature,omitempty"` } // ToolResponseCollection is the type of the "tools" service "available" @@ -100,11 +106,12 @@ func NewRemoveResponseBody(res *toolsviews.OperationView) *RemoveResponseBody { // NewInstallToolPayload builds a tools service install endpoint payload. func NewInstallToolPayload(body *InstallRequestBody) *tools.ToolPayload { v := &tools.ToolPayload{ - Name: *body.Name, - Version: *body.Version, - Packager: *body.Packager, - URL: body.URL, - Checksum: body.Checksum, + Name: *body.Name, + Version: *body.Version, + Packager: *body.Packager, + URL: body.URL, + Checksum: body.Checksum, + Signature: body.Signature, } return v @@ -113,8 +120,9 @@ func NewInstallToolPayload(body *InstallRequestBody) *tools.ToolPayload { // NewRemoveToolPayload builds a tools service remove endpoint payload. func NewRemoveToolPayload(body *RemoveRequestBody, packager string, name string, version string) *tools.ToolPayload { v := &tools.ToolPayload{ - URL: body.URL, - Checksum: body.Checksum, + URL: body.URL, + Checksum: body.Checksum, + Signature: body.Signature, } v.Packager = packager v.Name = name diff --git a/gen/tools/service.go b/gen/tools/service.go index 783204c4f..63510ecc0 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -69,6 +69,9 @@ type ToolPayload struct { // A checksum of the archive. Mandatory when url is present. // This ensures that the package is downloaded correcly. Checksum *string + // The signature used to sign the url. Mandatory when url is present. + // This ensure the security of the file downloaded + Signature *string } // MakeNotFound builds a goa.ServiceError from an error. diff --git a/globals/globals.go b/globals/globals.go new file mode 100644 index 000000000..d7cb09a17 --- /dev/null +++ b/globals/globals.go @@ -0,0 +1,22 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package globals + +// DefaultIndexURL is the default index url +var ( + // SignatureKey is the public key used to verify commands and url sent by the builder + SignatureKey = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF\nIE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1\nZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1\npFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z\nCeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn\n2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9\ntwIDAQAB\n-----END PUBLIC KEY-----" +) diff --git a/main.go b/main.go index 0d564d920..2d115f61a 100755 --- a/main.go +++ b/main.go @@ -35,6 +35,7 @@ import ( cors "github.com/andela/gin-cors" cert "github.com/arduino/arduino-create-agent/certificates" "github.com/arduino/arduino-create-agent/config" + "github.com/arduino/arduino-create-agent/globals" "github.com/arduino/arduino-create-agent/systray" "github.com/arduino/arduino-create-agent/tools" "github.com/arduino/arduino-create-agent/updater" @@ -79,7 +80,7 @@ var ( logDump = iniConf.String("log", "off", "off = (default)") origins = iniConf.String("origins", "", "Allowed origin list for CORS") regExpFilter = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") - signatureKey = iniConf.String("signatureKey", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF\nIE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1\nZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1\npFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z\nCeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn\n2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9\ntwIDAQAB\n-----END PUBLIC KEY-----", "Pem-encoded public key to verify signed commandlines") + signatureKey = iniConf.String("signatureKey", globals.SignatureKey, "Pem-encoded public key to verify signed commandlines") updateURL = iniConf.String("updateUrl", "", "") verbose = iniConf.Bool("v", true, "show debug logging") crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") diff --git a/main_test.go b/main_test.go index 79ea87a19..591cba1d7 100644 --- a/main_test.go +++ b/main_test.go @@ -20,6 +20,7 @@ import ( "crypto/x509" "encoding/json" "encoding/pem" + "fmt" "io" "net/http" "net/http/httptest" @@ -85,34 +86,68 @@ func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { } } -func TestInstallToolDifferentContentType(t *testing.T) { +func TestInstallToolV2(t *testing.T) { r := gin.New() goa := v2.Server(config.GetDataDir().String()) r.Any("/v2/*path", gin.WrapH(goa)) ts := httptest.NewServer(r) - URL := "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz" - Checksum := "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100" - request := tools.ToolPayload{ + type test struct { + request tools.ToolPayload + responseCode int + responseBody string + } + + BossacURL := "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz" + BossacChecksum := "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100" + BossacSignature := "382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0" + bossacInstallURLOK := tools.ToolPayload{ + Name: "bossac", + Version: "1.7.0-arduino3", + Packager: "arduino", + URL: &BossacURL, + Checksum: &BossacChecksum, + Signature: &BossacSignature, + } + + WrongSignature := "wr0ngs1gn4tur3" + bossacInstallWrongSig := tools.ToolPayload{ + Name: "bossac", + Version: "1.7.0-arduino3", + Packager: "arduino", + URL: &BossacURL, + Checksum: &BossacChecksum, + Signature: &WrongSignature, + } + + bossacInstallNoURL := tools.ToolPayload{ Name: "bossac", Version: "1.7.0-arduino3", Packager: "arduino", - URL: &URL, - Checksum: &Checksum, } - payload, err := json.Marshal(request) - require.NoError(t, err) + tests := []test{ + {bossacInstallURLOK, http.StatusOK, "ok"}, + {bossacInstallWrongSig, http.StatusInternalServerError, "verification error"}, + {bossacInstallNoURL, http.StatusBadRequest, "tool not found"}, //because the index is not added + } - // for some reason the fronted sends requests with "text/plain" content type. - // Even if the request body contains a json object. - // With this test we verify is parsed correctly. - for _, encoding := range []string{"encoding/json", "text/plain"} { - resp, err := http.Post(ts.URL+"/v2/pkgs/tools/installed", encoding, bytes.NewBuffer(payload)) - require.NoError(t, err) - body, err := io.ReadAll(resp.Body) - require.NoError(t, err) - require.Contains(t, string(body), "ok") - require.Equal(t, http.StatusOK, resp.StatusCode) + for _, test := range tests { + t.Run(fmt.Sprintf("Installing %s", test.request.Name), func(t *testing.T) { + payload, err := json.Marshal(test.request) + require.NoError(t, err) + + // for some reason the fronted sends requests with "text/plain" content type. + // Even if the request body contains a json object. + // With this test we verify is parsed correctly. + for _, encoding := range []string{"encoding/json", "text/plain"} { + resp, err := http.Post(ts.URL+"/v2/pkgs/tools/installed", encoding, bytes.NewBuffer(payload)) + require.NoError(t, err) + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + require.Contains(t, string(body), test.responseBody) + require.Equal(t, test.responseCode, resp.StatusCode) + } + }) } } diff --git a/utilities/utilities.go b/utilities/utilities.go index fc4686e9d..7372ab380 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -18,6 +18,12 @@ package utilities import ( "archive/zip" "bytes" + "crypto" + "crypto/rsa" + "crypto/sha256" + "crypto/x509" + "encoding/hex" + "encoding/pem" "errors" "fmt" "io" @@ -26,6 +32,8 @@ import ( "path" "path/filepath" "strings" + + "github.com/arduino/arduino-create-agent/globals" ) // SaveFileonTempDir creates a temp directory and saves the file data as the @@ -162,3 +170,22 @@ func SafeJoin(parent, subdir string) (string, error) { } return res, nil } + +// VerifyInput will verify an input against a signature +// A valid signature is indicated by returning a nil error. +func VerifyInput(input string, signature string) error { + sign, _ := hex.DecodeString(signature) + block, _ := pem.Decode([]byte(globals.SignatureKey)) + if block == nil { + return errors.New("invalid key") + } + key, err := x509.ParsePKIXPublicKey(block.Bytes) + if err != nil { + return err + } + rsaKey := key.(*rsa.PublicKey) + h := sha256.New() + h.Write([]byte(input)) + d := h.Sum(nil) + return rsa.VerifyPKCS1v15(rsaKey, crypto.SHA256, d, sign) +} diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index 975fde233..c153884cb 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -136,10 +136,16 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools.Operation, error) { path := filepath.Join(payload.Packager, payload.Name, payload.Version) - if payload.URL != nil { + //if URL is defined and is signed we verify the signature and override the name, payload, version parameters + if payload.URL != nil && payload.Signature != nil && payload.Checksum != nil { + err := utilities.VerifyInput(*payload.URL, *payload.Signature) + if err != nil { + return nil, err + } return c.install(ctx, path, *payload.URL, *payload.Checksum) } + // otherwise we install from the loaded indexes list, err := c.Indexes.List(ctx) if err != nil { return nil, err From 07b3fae8d40c12e5c722ce0cb4dd4a50b3e5b77f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 12:30:30 +0200 Subject: [PATCH 120/233] Bump github.com/gin-gonic/gin from 1.9.0 to 1.9.1 (#796) * Bump github.com/gin-gonic/gin from 1.9.0 to 1.9.1 Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.9.0 to 1.9.1. - [Release notes](https://github.com/gin-gonic/gin/releases) - [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md) - [Commits](https://github.com/gin-gonic/gin/compare/v1.9.0...v1.9.1) --- updated-dependencies: - dependency-name: github.com/gin-gonic/gin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .licensed.yml | 2 + .../gabriel-vasile/mimetype.dep.yml | 33 ++++++++++ .../mimetype/internal/charset.dep.yml | 32 ++++++++++ .../mimetype/internal/json.dep.yml | 32 ++++++++++ .../mimetype/internal/magic.dep.yml | 32 ++++++++++ .../go/github.com/gin-gonic/gin.dep.yml | 2 +- .../github.com/gin-gonic/gin/binding.dep.yml | 4 +- .../gin-gonic/gin/internal/bytesconv.dep.yml | 4 +- .../gin-gonic/gin/internal/json.dep.yml | 4 +- .../github.com/gin-gonic/gin/render.dep.yml | 4 +- .../go-playground/validator/v10.dep.yml | 2 +- .../go/github.com/leodido/go-urn.dep.yml | 4 +- .../go/github.com/mattn/go-isatty.dep.yml | 2 +- .../github.com/pelletier/go-toml/v2.dep.yml | 2 +- .../go-toml/v2/internal/characters.dep.yml | 6 +- .../go-toml/v2/internal/danger.dep.yml | 6 +- .../go-toml/v2/internal/tracker.dep.yml | 6 +- .../pelletier/go-toml/v2/unstable.dep.yml | 6 +- .../go/golang.org/x/net/html.dep.yml | 62 ++++++++++++++++++ .../go/golang.org/x/net/html/atom.dep.yml | 64 +++++++++++++++++++ go.mod | 19 +++--- go.sum | 47 ++++++++------ 22 files changed, 319 insertions(+), 56 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml diff --git a/.licensed.yml b/.licensed.yml index c772413d0..0342e5d49 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -7,6 +7,8 @@ apps: reviewed: go: + - golang.org/x/net/html + - golang.org/x/net/html/atom - golang.org/x/crypto/curve25519 # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies/AGPL-3.0/.licensed.yml diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml new file mode 100644 index 000000000..12fdb4635 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml @@ -0,0 +1,33 @@ +--- +name: github.com/gabriel-vasile/mimetype +version: v1.4.2 +type: go +summary: Package mimetype uses magic number signatures to detect the MIME type of + a file. +homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype +license: mit +licenses: +- sources: LICENSE + text: | + MIT License + + Copyright (c) 2018-2020 Gabriel Vasile + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml new file mode 100644 index 000000000..038243c66 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gabriel-vasile/mimetype/internal/charset +version: v1.4.2 +type: go +summary: +homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype/internal/charset +license: mit +licenses: +- sources: mimetype@v1.4.2/LICENSE + text: | + MIT License + + Copyright (c) 2018-2020 Gabriel Vasile + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml new file mode 100644 index 000000000..8e1a017c0 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gabriel-vasile/mimetype/internal/json +version: v1.4.2 +type: go +summary: Package json provides a JSON value parser state machine. +homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype/internal/json +license: mit +licenses: +- sources: mimetype@v1.4.2/LICENSE + text: | + MIT License + + Copyright (c) 2018-2020 Gabriel Vasile + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml new file mode 100644 index 000000000..9664f18a9 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/gabriel-vasile/mimetype/internal/magic +version: v1.4.2 +type: go +summary: Package magic holds the matching functions used to find MIME types. +homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype/internal/magic +license: mit +licenses: +- sources: mimetype@v1.4.2/LICENSE + text: | + MIT License + + Copyright (c) 2018-2020 Gabriel Vasile + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml index c3ac83973..00b9d694f 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gin-gonic/gin -version: v1.9.0 +version: v1.9.1 type: go summary: Package gin implements a HTTP web framework called gin. homepage: https://pkg.go.dev/github.com/gin-gonic/gin diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml index db9f528ad..00c113b44 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/binding -version: v1.9.0 +version: v1.9.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding license: mit licenses: -- sources: gin@v1.9.0/LICENSE +- sources: gin@v1.9.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml index b536ac426..351014520 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/bytesconv -version: v1.9.0 +version: v1.9.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv license: mit licenses: -- sources: gin@v1.9.0/LICENSE +- sources: gin@v1.9.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml index fb6d2566e..22d75578c 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/internal/json -version: v1.9.0 +version: v1.9.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json license: mit licenses: -- sources: gin@v1.9.0/LICENSE +- sources: gin@v1.9.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml index 33ddc3e50..3ad37b2e2 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gin-gonic/gin/render -version: v1.9.0 +version: v1.9.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render license: mit licenses: -- sources: gin@v1.9.0/LICENSE +- sources: gin@v1.9.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml index 2b8f82c5f..36f540f89 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/validator/v10 -version: v10.11.2 +version: v10.14.0 type: go summary: Package validator implements value validations for structs and individual fields based on tags. diff --git a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml index e9d2b9800..356e48500 100644 --- a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml @@ -1,8 +1,8 @@ --- name: github.com/leodido/go-urn -version: v1.2.1 +version: v1.2.4 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/leodido/go-urn license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml index 6d4bc325a..b815d0847 100644 --- a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/mattn/go-isatty -version: v0.0.17 +version: v0.0.19 type: go summary: Package isatty implements interface to isatty homepage: https://pkg.go.dev/github.com/mattn/go-isatty diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml index b6441574b..43a41d7a6 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/pelletier/go-toml/v2 -version: v2.0.6 +version: v2.0.8 type: go summary: Package toml is a library to read and write TOML documents. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2 diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml index c2f15cc95..427db915d 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/characters -version: v2.0.6 +version: v2.0.8 type: go summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters license: mit licenses: -- sources: v2@v2.0.6/LICENSE +- sources: v2@v2.0.8/LICENSE text: | The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.6/README.md +- sources: v2@v2.0.8/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml index 7d970106f..6a6cb1ac6 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/danger -version: v2.0.6 +version: v2.0.8 type: go summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger license: mit licenses: -- sources: v2@v2.0.6/LICENSE +- sources: v2@v2.0.8/LICENSE text: | The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.6/README.md +- sources: v2@v2.0.8/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml index 5995535fd..fbf14e62b 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/tracker -version: v2.0.6 +version: v2.0.8 type: go summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker license: mit licenses: -- sources: v2@v2.0.6/LICENSE +- sources: v2@v2.0.8/LICENSE text: | The MIT License (MIT) @@ -29,6 +29,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.6/README.md +- sources: v2@v2.0.8/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml index 1c947842a..78cda2a34 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/pelletier/go-toml/v2/unstable -version: v2.0.6 +version: v2.0.8 type: go summary: Package unstable provides APIs that do not meet the backward compatibility guarantees yet. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable license: mit licenses: -- sources: v2@v2.0.6/LICENSE +- sources: v2@v2.0.8/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.6/README.md +- sources: v2@v2.0.8/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml new file mode 100644 index 000000000..6db9bfff4 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/net/html +version: v0.14.0 +type: go +summary: Package html implements an HTML5-compliant tokenizer and parser. +homepage: https://pkg.go.dev/golang.org/x/net/html +license: other +licenses: +- sources: net@v0.14.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.14.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml new file mode 100644 index 000000000..32c776249 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml @@ -0,0 +1,64 @@ +--- +name: golang.org/x/net/html/atom +version: v0.14.0 +type: go +summary: 'Package atom provides integer codes (also known as atoms) for a fixed set + of frequently occurring HTML strings: tag names and attribute keys such as "p" and + "id".' +homepage: https://pkg.go.dev/golang.org/x/net/html/atom +license: other +licenses: +- sources: net@v0.14.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.14.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/go.mod b/go.mod index a60f5bb12..eb39ebc8b 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 github.com/getlantern/systray v1.1.0 - github.com/gin-gonic/gin v1.9.0 + github.com/gin-gonic/gin v1.9.1 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 github.com/mattn/go-shellwords v1.0.12 @@ -31,13 +31,14 @@ require ( require ( github.com/AnatolyRugalev/goregen v0.1.0 // indirect - github.com/bytedance/sonic v1.8.0 // indirect + github.com/bytedance/sonic v1.9.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/dimfeld/httptreemux/v5 v5.5.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 // indirect github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7 // indirect @@ -47,9 +48,9 @@ require ( github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.11.2 // indirect + github.com/go-playground/validator/v10 v10.14.0 // indirect github.com/go-stack/stack v1.8.0 // indirect - github.com/goccy/go-json v0.10.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/uuid v1.3.0 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect @@ -59,18 +60,18 @@ require ( github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.15.13 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/kr/binarydist v0.1.0 // indirect github.com/kr/fs v0.1.0 // indirect - github.com/leodido/go-urn v1.2.1 // indirect + github.com/leodido/go-urn v1.2.4 // indirect github.com/leonelquinteros/gotext v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/miekg/dns v1.1.35 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect - github.com/pelletier/go-toml/v2 v2.0.6 // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect @@ -78,7 +79,7 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect + golang.org/x/arch v0.3.0 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.14.0 // indirect golang.org/x/text v0.12.0 // indirect diff --git a/go.sum b/go.sum index fa2f7ee27..9d9ce7be0 100644 --- a/go.sum +++ b/go.sum @@ -9,8 +9,8 @@ github.com/arduino/go-paths-helper v1.9.1/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4 github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= -github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= @@ -27,6 +27,8 @@ github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZs github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/dimfeld/httptreemux/v5 v5.5.0 h1:p8jkiMrCuZ0CmhwYLcbNbl7DDo21fozhKHQ2PccwOFQ= github.com/dimfeld/httptreemux/v5 v5.5.0/go.mod h1:QeEylH57C0v3VO0tkKraVz9oD3Uu93CKPnTLbsidvSw= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 h1:6uJ+sZ/e03gkbqZ0kUG6mfKoqDb4XMAzMIwlajq19So= @@ -43,8 +45,8 @@ github.com/getlantern/systray v1.1.0 h1:U0wCEqseLi2ok1fE6b88gJklzriavPJixZysZPkZ github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1yWbVabNgpCM= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= -github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= @@ -52,12 +54,12 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= -github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= -github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= @@ -87,26 +89,26 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uia github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/leonelquinteros/gotext v1.4.0 h1:2NHPCto5IoMXbrT0bldPrxj0qM5asOCwtb1aUQZ1tys= github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2spuF/i/Qlsvz1Us= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs= @@ -118,19 +120,19 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 h1:d291KOLbN1GthTPA1fLKyWdclX3k1ZP+CzYtun+a5Es= github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= -github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= -github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.4 h1:Lb0RYJCmgUcBgZosfoi9Y9sbl6+LJgOIgk/2Y4YjMFg= github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 h1:ZMBZ2DKX1sScUSo9ZUwGI7jCMukslPNQNfZaw9vVyfY= @@ -148,11 +150,12 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= @@ -169,8 +172,9 @@ go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.12.4 h1:g3G8yHLk+jyUDNRL2sNg+ZcoQ62zY83rpgagAQ5VmTA= goa.design/goa/v3 v3.12.4/go.mod h1:h1vjyGQ+rqWK+VvnqN8oLcpqaHrKIyuY1Vx+jhKodpg= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= @@ -195,8 +199,9 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -217,7 +222,7 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= From 659746d74ce810abe92108d3d1b25beb0504d5e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 18:53:03 +0200 Subject: [PATCH 121/233] Bump golang.org/x/sys from 0.11.0 to 0.12.0 (#819) * Bump golang.org/x/sys from 0.11.0 to 0.12.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.11.0 to 0.12.0. - [Commits](https://github.com/golang/sys/compare/v0.11.0...v0.12.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index c762d63dc..30e043d47 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.11.0 +version: v0.12.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.11.0/LICENSE +- sources: sys@v0.12.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.11.0/PATENTS +- sources: sys@v0.12.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index eb39ebc8b..1788eb0e1 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.12.4 golang.org/x/crypto v0.12.0 - golang.org/x/sys v0.11.0 + golang.org/x/sys v0.12.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 9d9ce7be0..7296318ac 100644 --- a/go.sum +++ b/go.sum @@ -202,8 +202,8 @@ golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 160c12316ba69490fa284efb3b980dc594ca05cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 18:59:54 +0200 Subject: [PATCH 122/233] Bump github.com/arduino/go-paths-helper from 1.9.1 to 1.9.2 (#834) * Bump github.com/arduino/go-paths-helper from 1.9.1 to 1.9.2 Bumps [github.com/arduino/go-paths-helper](https://github.com/arduino/go-paths-helper) from 1.9.1 to 1.9.2. - [Release notes](https://github.com/arduino/go-paths-helper/releases) - [Commits](https://github.com/arduino/go-paths-helper/compare/v1.9.1...v1.9.2) --- updated-dependencies: - dependency-name: github.com/arduino/go-paths-helper dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/arduino/go-paths-helper.dep.yml | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml index 8d14608ef..3688480ca 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/go-paths-helper -version: v1.9.1 +version: v1.9.2 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper diff --git a/go.mod b/go.mod index 1788eb0e1..e41a65506 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e - github.com/arduino/go-paths-helper v1.9.1 + github.com/arduino/go-paths-helper v1.9.2 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 github.com/getlantern/systray v1.1.0 diff --git a/go.sum b/go.sum index 7296318ac..c5fead77b 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZ github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= -github.com/arduino/go-paths-helper v1.9.1 h1:qpK+zMMjsklSBQa09/P5FZ/uf3LyjVmJK3DLeyiGjCc= -github.com/arduino/go-paths-helper v1.9.1/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.9.2 h1:omR8DPTL4nbUCWfGey5D+e3WvWfA2zEgoM6ZBRNt7ls= +github.com/arduino/go-paths-helper v1.9.2/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= From 2fa1046b0a796cd074ed92fa0dd7700565487b02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 19:04:32 +0200 Subject: [PATCH 123/233] Bump golang.org/x/crypto from 0.12.0 to 0.13.0 (#825) * Bump golang.org/x/crypto from 0.12.0 to 0.13.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.12.0 to 0.13.0. - [Commits](https://github.com/golang/crypto/compare/v0.12.0...v0.13.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: Umberto Baldi --- .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/curve25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/armor.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/elgamal.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/errors.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/packet.dep.yml | 6 +++--- .../go/golang.org/x/crypto/openpgp/s2k.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/language.dep.yml | 6 +++--- .../x/text/internal/language/compact.dep.yml | 6 +++--- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +++--- .../go/golang.org/x/text/language.dep.yml | 6 +++--- go.mod | 4 ++-- go.sum | 10 +++++----- 20 files changed, 61 insertions(+), 61 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index 2b03d90da..ce055338f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.12.0 +version: v0.13.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index e6eb77a48..e093a0c85 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.12.0 +version: v0.13.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml index 49745efc0..09e0223bf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/curve25519 -version: v0.12.0 +version: v0.13.0 type: go summary: Package curve25519 provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519. homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519 license: other licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index 8f9003434..bbdbb22e0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.12.0 +version: v0.13.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml index 1f042d482..f45d4db62 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp -version: v0.12.0 +version: v0.13.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml index 0d86c7467..58a3bee8c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/armor -version: v0.12.0 +version: v0.13.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml index 939bed409..9ffbd7c1e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/crypto/openpgp/elgamal -version: v0.12.0 +version: v0.13.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml index e8835b050..4f7f6c549 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/openpgp/errors -version: v0.12.0 +version: v0.13.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml index 0affbd8cd..720495ff8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/packet -version: v0.12.0 +version: v0.13.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml index 2bd72897a..ae4a2eb3b 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/openpgp/s2k -version: v0.12.0 +version: v0.13.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1. homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 390a4a942..bb010c523 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.12.0 +version: v0.13.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index d21b73b20..38e6660ea 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.12.0 +version: v0.13.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index 6972aa661..acd412865 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.12.0 +version: v0.13.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index a139cbc4c..9c866600e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.12.0 +version: v0.13.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.12.0/LICENSE +- sources: crypto@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.12.0/PATENTS +- sources: crypto@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index 85143d519..9e7545d81 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.12.0 +version: v0.13.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.12.0/LICENSE +- sources: text@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.12.0/PATENTS +- sources: text@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index bdff88a8a..8118d81b9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.12.0 +version: v0.13.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.12.0/LICENSE +- sources: text@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.12.0/PATENTS +- sources: text@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index aca4fbcca..f27cc7932 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.12.0 +version: v0.13.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.12.0/LICENSE +- sources: text@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.12.0/PATENTS +- sources: text@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index 266a8d28e..f0831ea98 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.12.0 +version: v0.13.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.12.0/LICENSE +- sources: text@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.12.0/PATENTS +- sources: text@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index e41a65506..841bb6dee 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.12.4 - golang.org/x/crypto v0.12.0 + golang.org/x/crypto v0.13.0 golang.org/x/sys v0.12.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -82,7 +82,7 @@ require ( golang.org/x/arch v0.3.0 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.14.0 // indirect - golang.org/x/text v0.12.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.12.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index c5fead77b..ee638cc34 100644 --- a/go.sum +++ b/go.sum @@ -179,8 +179,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= @@ -205,11 +205,11 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= +golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= From 4e5e36ee6ad309c727cde13b6cc27b0cfaa471b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Sep 2023 19:15:14 +0200 Subject: [PATCH 124/233] Bump goa.design/goa/v3 from 3.12.4 to 3.13.1 (#836) * Bump goa.design/goa/v3 from 3.12.4 to 3.13.1 Bumps goa.design/goa/v3 from 3.12.4 to 3.13.1. --- updated-dependencies: - dependency-name: goa.design/goa/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses * goa gen github.com/arduino/arduino-create-agent/design --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../github.com/dimfeld/httptreemux/v5.dep.yml | 33 --------------- .../go/github.com/go-chi/chi/v5.dep.yml | 42 +++++++++++++++++++ .../go/github.com/google/uuid.dep.yml | 2 +- .../go/goa.design/goa/v3/http.dep.yml | 4 +- .../goa.design/goa/v3/http/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/pkg.dep.yml | 4 +- .../go/golang.org/x/net/bpf.dep.yml | 6 +-- .../go/golang.org/x/net/html.dep.yml | 6 +-- .../go/golang.org/x/net/html/atom.dep.yml | 6 +-- .../go/golang.org/x/net/http2.dep.yml | 6 +-- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +-- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +-- .../golang.org/x/net/internal/socket.dep.yml | 6 +-- .../go/golang.org/x/net/ipv4.dep.yml | 6 +-- .../go/golang.org/x/net/ipv6.dep.yml | 6 +-- gen/http/cli/arduino_create_agent/cli.go | 2 +- gen/http/indexes/client/cli.go | 2 +- gen/http/indexes/client/client.go | 2 +- gen/http/indexes/client/encode_decode.go | 2 +- gen/http/indexes/client/paths.go | 2 +- gen/http/indexes/client/types.go | 2 +- gen/http/indexes/server/encode_decode.go | 2 +- gen/http/indexes/server/paths.go | 2 +- gen/http/indexes/server/server.go | 2 +- gen/http/indexes/server/types.go | 2 +- gen/http/tools/client/cli.go | 2 +- gen/http/tools/client/client.go | 2 +- gen/http/tools/client/encode_decode.go | 2 +- gen/http/tools/client/paths.go | 2 +- gen/http/tools/client/types.go | 2 +- gen/http/tools/server/encode_decode.go | 2 +- gen/http/tools/server/paths.go | 2 +- gen/http/tools/server/server.go | 2 +- gen/http/tools/server/types.go | 2 +- gen/indexes/client.go | 2 +- gen/indexes/endpoints.go | 2 +- gen/indexes/service.go | 2 +- gen/indexes/views/view.go | 2 +- gen/tools/client.go | 2 +- gen/tools/endpoints.go | 2 +- gen/tools/service.go | 2 +- gen/tools/views/view.go | 2 +- go.mod | 10 ++--- go.sum | 20 ++++----- 45 files changed, 120 insertions(+), 111 deletions(-) delete mode 100644 .licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml b/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml deleted file mode 100644 index 768570786..000000000 --- a/.licenses/arduino-create-agent/go/github.com/dimfeld/httptreemux/v5.dep.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: github.com/dimfeld/httptreemux/v5 -version: v5.5.0 -type: go -summary: This is inspired by Julien Schmidt's httprouter, in that it uses a patricia - tree, but the implementation is rather different. -homepage: https://pkg.go.dev/github.com/dimfeld/httptreemux/v5 -license: mit -licenses: -- sources: LICENSE - text: | - The MIT License (MIT) - - Copyright (c) 2014,2015 Daniel Imfeld - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml new file mode 100644 index 000000000..1a7eefb08 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml @@ -0,0 +1,42 @@ +--- +name: github.com/go-chi/chi/v5 +version: v5.0.10 +type: go +summary: Package chi is a small, idiomatic and composable router for building HTTP + services. +homepage: https://pkg.go.dev/github.com/go-chi/chi/v5 +license: mit +licenses: +- sources: LICENSE + text: | + Copyright (c) 2015-present Peter Kieltyka (https://github.com/pkieltyka), Google Inc. + + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: README.md + text: |- + Copyright (c) 2015-present [Peter Kieltyka](https://github.com/pkieltyka) + + Licensed under [MIT License](./LICENSE) + + [GoDoc]: https://pkg.go.dev/github.com/go-chi/chi?tab=versions + [GoDoc Widget]: https://godoc.org/github.com/go-chi/chi?status.svg + [Travis]: https://travis-ci.org/go-chi/chi + [Travis Widget]: https://travis-ci.org/go-chi/chi.svg?branch=master +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml index 7f334eb6e..96682ad24 100644 --- a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/google/uuid -version: v1.3.0 +version: v1.3.1 type: go summary: Package uuid generates and inspects UUIDs. homepage: https://pkg.go.dev/github.com/google/uuid diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml index 2f5b72763..5dd83c5ca 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http -version: v3.12.4 +version: v3.13.1 type: go summary: Package http contains HTTP specific constructs that complement the code generated by Goa. homepage: https://pkg.go.dev/goa.design/goa/v3/http license: mit licenses: -- sources: v3@v3.12.4/LICENSE +- sources: v3@v3.13.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml index bd9bbbf48..e8dd07bf5 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http/middleware -version: v3.12.4 +version: v3.13.1 type: go summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to provide additional functionality. homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware license: mit licenses: -- sources: v3@v3.12.4/LICENSE +- sources: v3@v3.13.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml index 07fd2adbd..cbc5528b0 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml @@ -1,12 +1,12 @@ --- name: goa.design/goa/v3/middleware -version: v3.12.4 +version: v3.13.1 type: go summary: Package middleware contains transport independent middlewares. homepage: https://pkg.go.dev/goa.design/goa/v3/middleware license: mit licenses: -- sources: v3@v3.12.4/LICENSE +- sources: v3@v3.13.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml index 73b6cd954..6963ec987 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml @@ -1,6 +1,6 @@ --- name: goa.design/goa/v3/pkg -version: v3.12.4 +version: v3.13.1 type: go summary: Package goa implements a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client @@ -8,7 +8,7 @@ summary: Package goa implements a Go framework for writing microservices that pr homepage: https://pkg.go.dev/goa.design/goa/v3/pkg license: mit licenses: -- sources: v3@v3.12.4/LICENSE +- sources: v3@v3.13.1/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 9e307f7c1..1e7e08ce7 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.14.0 +version: v0.15.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml index 6db9bfff4..8deac6801 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/html -version: v0.14.0 +version: v0.15.0 type: go summary: Package html implements an HTML5-compliant tokenizer and parser. homepage: https://pkg.go.dev/golang.org/x/net/html license: other licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml index 32c776249..552128c38 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/net/html/atom -version: v0.14.0 +version: v0.15.0 type: go summary: 'Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and @@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed homepage: https://pkg.go.dev/golang.org/x/net/html/atom license: other licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index cbf8c0acf..1e42bab41 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.14.0 +version: v0.15.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 7664817d2..598b5f93e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.14.0 +version: v0.15.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 0e2f3f5f2..87d66dd8e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.14.0 +version: v0.15.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index c6297a5d0..77e77e469 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.14.0 +version: v0.15.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index a2266173d..c74008b9d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.14.0 +version: v0.15.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index 4d272a7a7..f8607b3f1 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.14.0 +version: v0.15.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.14.0/LICENSE +- sources: net@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.14.0/PATENTS +- sources: net@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index d2153965b..e53f7fa91 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // arduino-create-agent HTTP client CLI support package // diff --git a/gen/http/indexes/client/cli.go b/gen/http/indexes/client/cli.go index 52d376d69..f1808ebed 100644 --- a/gen/http/indexes/client/cli.go +++ b/gen/http/indexes/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes HTTP client CLI support package // diff --git a/gen/http/indexes/client/client.go b/gen/http/indexes/client/client.go index d0b4ec7f1..2ed037d2c 100644 --- a/gen/http/indexes/client/client.go +++ b/gen/http/indexes/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes client HTTP transport // diff --git a/gen/http/indexes/client/encode_decode.go b/gen/http/indexes/client/encode_decode.go index be2254655..ee011f60c 100644 --- a/gen/http/indexes/client/encode_decode.go +++ b/gen/http/indexes/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes HTTP client encoders and decoders // diff --git a/gen/http/indexes/client/paths.go b/gen/http/indexes/client/paths.go index 6ae3e1516..79236a06e 100644 --- a/gen/http/indexes/client/paths.go +++ b/gen/http/indexes/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // HTTP request path constructors for the indexes service. // diff --git a/gen/http/indexes/client/types.go b/gen/http/indexes/client/types.go index cdc4677ba..6194f0430 100644 --- a/gen/http/indexes/client/types.go +++ b/gen/http/indexes/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes HTTP client types // diff --git a/gen/http/indexes/server/encode_decode.go b/gen/http/indexes/server/encode_decode.go index 884d88004..fb023036f 100644 --- a/gen/http/indexes/server/encode_decode.go +++ b/gen/http/indexes/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes HTTP server encoders and decoders // diff --git a/gen/http/indexes/server/paths.go b/gen/http/indexes/server/paths.go index 08bf1d4a4..6f4e533aa 100644 --- a/gen/http/indexes/server/paths.go +++ b/gen/http/indexes/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // HTTP request path constructors for the indexes service. // diff --git a/gen/http/indexes/server/server.go b/gen/http/indexes/server/server.go index 521fff980..a7ecebb30 100644 --- a/gen/http/indexes/server/server.go +++ b/gen/http/indexes/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes HTTP server // diff --git a/gen/http/indexes/server/types.go b/gen/http/indexes/server/types.go index b0a144716..a19a5459c 100644 --- a/gen/http/indexes/server/types.go +++ b/gen/http/indexes/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes HTTP server types // diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index cfeb0b9fa..f2407653d 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools HTTP client CLI support package // diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index 540a1c8a8..1bdd5ea00 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools client HTTP transport // diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index 81266c7dc..7a5ca911d 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools HTTP client encoders and decoders // diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index 112da41a5..a5f573c38 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index 77a8dc8a2..a3be7da8e 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools HTTP client types // diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index 5b09d8e0b..79c9ad7bf 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools HTTP server encoders and decoders // diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index 7579e9770..cefa764ee 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index af81a4fb9..eb5d6c7f2 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools HTTP server // diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index d9b05d7a4..2d864b22f 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools HTTP server types // diff --git a/gen/indexes/client.go b/gen/indexes/client.go index ca50f7ae0..382b373dc 100644 --- a/gen/indexes/client.go +++ b/gen/indexes/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes client // diff --git a/gen/indexes/endpoints.go b/gen/indexes/endpoints.go index 17b22ff34..cb08cb3c4 100644 --- a/gen/indexes/endpoints.go +++ b/gen/indexes/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes endpoints // diff --git a/gen/indexes/service.go b/gen/indexes/service.go index 784d36cb0..597c0abf2 100644 --- a/gen/indexes/service.go +++ b/gen/indexes/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes service // diff --git a/gen/indexes/views/view.go b/gen/indexes/views/view.go index a01c1a26c..4c8b42272 100644 --- a/gen/indexes/views/view.go +++ b/gen/indexes/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // indexes views // diff --git a/gen/tools/client.go b/gen/tools/client.go index 71528938e..ab163c2cf 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools client // diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index bdc026550..75bb74305 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools endpoints // diff --git a/gen/tools/service.go b/gen/tools/service.go index 63510ecc0..18c027237 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools service // diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go index 4f6fe933d..b88dce987 100644 --- a/gen/tools/views/view.go +++ b/gen/tools/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.12.4, DO NOT EDIT. +// Code generated by goa v3.13.1, DO NOT EDIT. // // tools views // diff --git a/go.mod b/go.mod index 841bb6dee..99704fd6a 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.6.1 - goa.design/goa/v3 v3.12.4 + goa.design/goa/v3 v3.13.1 golang.org/x/crypto v0.13.0 golang.org/x/sys v0.12.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa @@ -37,7 +37,6 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect - github.com/dimfeld/httptreemux/v5 v5.5.0 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 // indirect @@ -46,13 +45,14 @@ require ( github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-chi/chi/v5 v5.0.10 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.14.0 // indirect github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/google/go-cmp v0.5.9 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.3.1 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/h2non/filetype v1.1.3 // indirect @@ -81,9 +81,9 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.3.0 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.14.0 // indirect + golang.org/x/net v0.15.0 // indirect golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.12.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index ee638cc34..b070dd3f7 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,6 @@ github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454Wv github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= -github.com/dimfeld/httptreemux/v5 v5.5.0 h1:p8jkiMrCuZ0CmhwYLcbNbl7DDo21fozhKHQ2PccwOFQ= -github.com/dimfeld/httptreemux/v5 v5.5.0/go.mod h1:QeEylH57C0v3VO0tkKraVz9oD3Uu93CKPnTLbsidvSw= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= @@ -47,6 +45,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk= +github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= @@ -65,8 +65,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb/go.mod h1:MBpz1MS3P4HtRcBpQU4HcjvWXZ9q+JWacMEh2/BFYbg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 h1:vKXGRzlhWE9TUVhLqAOcgQbfYvReAnsvQQIcnvWMfcg= @@ -170,8 +170,8 @@ go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= -goa.design/goa/v3 v3.12.4 h1:g3G8yHLk+jyUDNRL2sNg+ZcoQ62zY83rpgagAQ5VmTA= -goa.design/goa/v3 v3.12.4/go.mod h1:h1vjyGQ+rqWK+VvnqN8oLcpqaHrKIyuY1Vx+jhKodpg= +goa.design/goa/v3 v3.13.1 h1:JRWJs1GSD5WWPvGq7Ru68au7BcxG+cA7fWCi/q4ONq0= +goa.design/goa/v3 v3.13.1/go.mod h1:v8tZEXhHSRXTsgtA9rK6tlVKA+7L6S0vqu8x6U9a17c= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= @@ -189,8 +189,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -213,8 +213,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= -golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= From 11acfc041783948cd77b8de339434cae77220b48 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 2 Oct 2023 14:51:18 +0200 Subject: [PATCH 125/233] Use SafeJoin in V2 Tools Install endpoint (#840) * add testcase and un-export vars * removing test: already tested (better) in `test_main.go` Without the signature field it's falling back to installing from the added index * move test to a different function and add testcase for install endpoint * use SafeJoin on tools Install handler --- main_test.go | 31 +++++++---- v2/pkgs/tools.go | 27 ++++++--- v2/pkgs/tools_test.go | 124 +++++++++++++++++++++--------------------- 3 files changed, 103 insertions(+), 79 deletions(-) diff --git a/main_test.go b/main_test.go index 591cba1d7..c2fb2489e 100644 --- a/main_test.go +++ b/main_test.go @@ -98,26 +98,36 @@ func TestInstallToolV2(t *testing.T) { responseBody string } - BossacURL := "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz" - BossacChecksum := "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100" - BossacSignature := "382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0" + bossacURL := "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz" + bossacChecksum := "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100" + bossacSignature := "382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0" bossacInstallURLOK := tools.ToolPayload{ Name: "bossac", Version: "1.7.0-arduino3", Packager: "arduino", - URL: &BossacURL, - Checksum: &BossacChecksum, - Signature: &BossacSignature, + URL: &bossacURL, + Checksum: &bossacChecksum, + Signature: &bossacSignature, } - WrongSignature := "wr0ngs1gn4tur3" + wrongSignature := "wr0ngs1gn4tur3" bossacInstallWrongSig := tools.ToolPayload{ Name: "bossac", Version: "1.7.0-arduino3", Packager: "arduino", - URL: &BossacURL, - Checksum: &BossacChecksum, - Signature: &WrongSignature, + URL: &bossacURL, + Checksum: &bossacChecksum, + Signature: &wrongSignature, + } + + wrongChecksum := "wr0ngch3cksum" + bossacInstallWrongCheck := tools.ToolPayload{ + Name: "bossac", + Version: "1.7.0-arduino3", + Packager: "arduino", + URL: &bossacURL, + Checksum: &wrongChecksum, + Signature: &bossacSignature, } bossacInstallNoURL := tools.ToolPayload{ @@ -129,6 +139,7 @@ func TestInstallToolV2(t *testing.T) { tests := []test{ {bossacInstallURLOK, http.StatusOK, "ok"}, {bossacInstallWrongSig, http.StatusInternalServerError, "verification error"}, + {bossacInstallWrongCheck, http.StatusInternalServerError, "checksum doesn't match"}, {bossacInstallNoURL, http.StatusBadRequest, "tool not found"}, //because the index is not added } diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index c153884cb..2cb92553c 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -191,15 +191,20 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools var buffer bytes.Buffer reader := io.TeeReader(res.Body, &buffer) + safePath, err := utilities.SafeJoin(c.Folder, path) + if err != nil { + return nil, err + } + // Cleanup - err = os.RemoveAll(filepath.Join(c.Folder, path)) + err = os.RemoveAll(safePath) if err != nil { return nil, err } err = extract.Archive(ctx, reader, c.Folder, rename(path)) if err != nil { - os.RemoveAll(path) + os.RemoveAll(safePath) return nil, err } @@ -207,7 +212,7 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools sumString := "SHA-256:" + hex.EncodeToString(sum[:sha256.Size]) if sumString != checksum { - os.RemoveAll(path) + os.RemoveAll(safePath) return nil, errors.New("checksum doesn't match") } @@ -249,7 +254,11 @@ func writeInstalled(folder, path string) error { // read installed.json installed := map[string]string{} - data, err := os.ReadFile(filepath.Join(folder, "installed.json")) + installedFile, err := utilities.SafeJoin(folder, "installed.json") + if err != nil { + return err + } + data, err := os.ReadFile(installedFile) if err == nil { err = json.Unmarshal(data, &installed) if err != nil { @@ -260,13 +269,17 @@ func writeInstalled(folder, path string) error { parts := strings.Split(path, string(filepath.Separator)) tool := parts[len(parts)-2] toolWithVersion := fmt.Sprint(tool, "-", parts[len(parts)-1]) - installed[tool] = filepath.Join(folder, path) - installed[toolWithVersion] = filepath.Join(folder, path) + toolFile, err := utilities.SafeJoin(folder, path) + if err != nil { + return err + } + installed[tool] = toolFile + installed[toolWithVersion] = toolFile data, err = json.Marshal(installed) if err != nil { return err } - return os.WriteFile(filepath.Join(folder, "installed.json"), data, 0644) + return os.WriteFile(installedFile, data, 0644) } diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index 70236cff3..04198cb2f 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -131,79 +131,79 @@ func TestTools(t *testing.T) { if len(installed) != 0 { t.Fatalf("expected %d == %d (%s)", len(installed), 0, "len(installed)") } +} - // Install a tool by specifying url and checksum - _, err = service.Install(ctx, &tools.ToolPayload{ - Packager: "arduino", - Name: "avrdude", - Version: "6.0.1-arduino2", - URL: strpoint(url()), - Checksum: strpoint(checksum()), - }) - if err != nil { - t.Fatal(err) +func TestEvilFilename(t *testing.T) { + + // Initialize indexes with a temp folder + tmp := t.TempDir() + + service := pkgs.Tools{ + Folder: tmp, + Indexes: &pkgs.Indexes{ + Folder: tmp, + }, } - installed, err = service.Installed(ctx) - if err != nil { - t.Fatal(err) + ctx := context.Background() + + type test struct { + fileName string + errBody string + } + + evilFileNames := []string{ + "/", + "..", + "../", + "../evil.txt", + "../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + "some/path/../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", + } + if runtime.GOOS == "windows" { + evilFileNames = []string{ + "..\\", + "..\\evil.txt", + "..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + "some\\path\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", + } } - if len(installed) != 1 { - t.Fatalf("expected %d == %d (%s)", len(installed), 1, "len(installed)") + tests := []test{} + for _, evilFileName := range evilFileNames { + tests = append(tests, test{fileName: evilFileName, + errBody: "unsafe path join"}) } - t.Run("payload containing evil names", func(t *testing.T) { - evilFileNames := []string{ - "/", - "..", - "../", - "../evil.txt", - "../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", - "some/path/../../../../../../../../../../../../../../../../../../../../tmp/evil.txt", - } - if runtime.GOOS == "windows" { - evilFileNames = []string{ - "..\\", - "..\\evil.txt", - "..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", - "some\\path\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\tmp\\evil.txt", - } - } - for _, evilFileName := range evilFileNames { + toolsTemplate := tools.ToolPayload{ + // We'll replace the name directly in the test + Checksum: strpoint("SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"), + Signature: strpoint("382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"), + URL: strpoint("http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"), + } + + for _, test := range tests { + t.Run("REMOVE payload containing evil names: "+test.fileName, func(t *testing.T) { // Here we could inject malicious name also in the Packager and Version field. // Since the path is made by joining all of these 3 fields, we're using only the Name, // as it won't change the result and let us keep the test small and readable. - _, err := service.Remove(ctx, &tools.ToolPayload{Name: evilFileName}) - require.Error(t, err, evilFileName) - require.ErrorContains(t, err, "unsafe path join") - } - }) + _, err := service.Remove(ctx, &tools.ToolPayload{Name: test.fileName}) + require.Error(t, err, test) + require.ErrorContains(t, err, test.errBody) + }) + } + for _, test := range tests { + toolsTemplate.Name = test.fileName + t.Run("INSTALL payload containing evil names: "+toolsTemplate.Name, func(t *testing.T) { + // Here we could inject malicious name also in the Packager and Version field. + // Since the path is made by joining all of these 3 fields, we're using only the Name, + // as it won't change the result and let us keep the test small and readable. + _, err := service.Install(ctx, &toolsTemplate) + require.Error(t, err, test) + require.ErrorContains(t, err, test.errBody) + }) + } } func strpoint(s string) *string { return &s } - -func url() string { - urls := map[string]string{ - "linuxamd64": "https://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "linux386": "https://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "darwinamd64": "https://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", - "windows386": "https://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip", - "windowsamd64": "https://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip", - } - - return urls[runtime.GOOS+runtime.GOARCH] -} - -func checksum() string { - checksums := map[string]string{ - "linuxamd64": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", - "linux386": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", - "darwinamd64": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", - "windows386": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", - "windowsamd64": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", - } - return checksums[runtime.GOOS+runtime.GOARCH] - -} From bf32bad81b7aa7a3a11e2e84333a35cb849b664a Mon Sep 17 00:00:00 2001 From: XXIV <13811862+thechampagne@users.noreply.github.com> Date: Wed, 4 Oct 2023 17:37:29 +0300 Subject: [PATCH 126/233] fix memory leak (#837) * fix memory leak * Update install_darwin.go * fix undefined symbol * fix undefined symbol * go fmt --- certificates/install_darwin.go | 5 ++++- systray/exec_darwin.go | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/certificates/install_darwin.go b/certificates/install_darwin.go index 765257b91..134a4bc0c 100644 --- a/certificates/install_darwin.go +++ b/certificates/install_darwin.go @@ -66,6 +66,7 @@ import "C" import ( "errors" "os/exec" + "unsafe" log "github.com/sirupsen/logrus" @@ -76,7 +77,9 @@ import ( // if something goes wrong will show a dialog with the error and return an error func InstallCertificate(cert *paths.Path) error { log.Infof("Installing certificate: %s", cert) - p := C.installCert(C.CString(cert.String())) + ccert := C.CString(cert.String()) + defer C.free(unsafe.Pointer(ccert)) + p := C.installCert(ccert) s := C.GoString(p) if len(s) != 0 { oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Error installing certificates\"") diff --git a/systray/exec_darwin.go b/systray/exec_darwin.go index ba66e0c39..912a736e3 100644 --- a/systray/exec_darwin.go +++ b/systray/exec_darwin.go @@ -48,6 +48,7 @@ import "C" import ( "os/exec" "path/filepath" + "unsafe" "github.com/sirupsen/logrus" ) @@ -67,7 +68,9 @@ func execApp(path string, args ...string) error { C.setCharArray(argv, C.int(i), C.CString(arg)) } - C.runApplication(C.CString(path), argv, argc) + cpath := C.CString(path) + defer C.free(unsafe.Pointer(cpath)) + C.runApplication(cpath, argv, argc) C.freeCharArray(argv, argc) return nil From b8c59a7f4ca9f4ca3d9e9244c1e3d4f1ef327d71 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:13:01 +0200 Subject: [PATCH 127/233] [breaking] Remove indexes v2 endpoint (#838) * remove indexes endpoint, since it's not used run `goa gen github.com/arduino/arduino-create-agent/design` * remove v2 index logic * removed useless API level code * factor out index handling of the index to a separate package the `.arduino-create` dir is now created by the `index.Init()` func * make the IndexReasource a pointer so that it can be shared * pass the shared Index structure to the goa Server * allow the tools endpoint to install and list available tools from default package_index.json only and fix/adapt tests * add test * rename to Resource * `go mod tidy` * factor out index download logic Co-authored-by: Alessio Perugini * always download the index the first time Co-authored-by: Alessio Perugini * make pkgs.Tools struct properties unexported and use "constructor" * make tools.Tools struct properties unexported and use a "constructor" * increment delay for the test startup --------- Co-authored-by: Alessio Perugini --- .../go/go.bug.st/downloader/v2.dep.yml | 44 --- design/pkgs.go | 44 --- gen/http/cli/arduino_create_agent/cli.go | 101 +------ gen/http/indexes/client/cli.go | 51 ---- gen/http/indexes/client/client.go | 125 -------- gen/http/indexes/client/encode_decode.go | 267 ------------------ gen/http/indexes/client/paths.go | 23 -- gen/http/indexes/client/types.go | 249 ---------------- gen/http/indexes/server/encode_decode.go | 192 ------------- gen/http/indexes/server/paths.go | 23 -- gen/http/indexes/server/server.go | 233 --------------- gen/http/indexes/server/types.go | 190 ------------- gen/http/openapi.json | 2 +- gen/http/openapi.yaml | 249 ---------------- gen/http/openapi3.json | 2 +- gen/http/openapi3.yaml | 148 +--------- gen/indexes/client.go | 69 ----- gen/indexes/endpoints.go | 73 ----- gen/indexes/service.go | 83 ------ gen/indexes/views/view.go | 56 ---- go.mod | 1 - go.sum | 2 - .../hidefile_default.go | 20 +- index/hidefile_windows.go | 33 +++ index/index.go | 146 ++++++++++ index/index_test.go | 25 ++ main.go | 33 +-- main_test.go | 10 +- tests/conftest.py | 2 +- tools/download.go | 127 ++------- tools/{hidefile_linux.go => shell_default.go} | 6 +- .../{hidefile_windows.go => shell_windows.go} | 7 - tools/tools.go | 148 +++++----- v2/http.go | 23 +- v2/pkgs/indexes.go | 123 -------- v2/pkgs/indexes_test.go | 102 ------- v2/pkgs/tools.go | 100 +++---- v2/pkgs/tools_test.go | 43 +-- 38 files changed, 393 insertions(+), 2782 deletions(-) delete mode 100644 .licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml delete mode 100644 gen/http/indexes/client/cli.go delete mode 100644 gen/http/indexes/client/client.go delete mode 100644 gen/http/indexes/client/encode_decode.go delete mode 100644 gen/http/indexes/client/paths.go delete mode 100644 gen/http/indexes/client/types.go delete mode 100644 gen/http/indexes/server/encode_decode.go delete mode 100644 gen/http/indexes/server/paths.go delete mode 100644 gen/http/indexes/server/server.go delete mode 100644 gen/http/indexes/server/types.go delete mode 100644 gen/indexes/client.go delete mode 100644 gen/indexes/endpoints.go delete mode 100644 gen/indexes/service.go delete mode 100644 gen/indexes/views/view.go rename tools/hidefile_darwin.go => index/hidefile_default.go (73%) create mode 100644 index/hidefile_windows.go create mode 100644 index/index.go create mode 100644 index/index_test.go rename tools/{hidefile_linux.go => shell_default.go} (96%) rename tools/{hidefile_windows.go => shell_windows.go} (88%) delete mode 100644 v2/pkgs/indexes.go delete mode 100644 v2/pkgs/indexes_test.go diff --git a/.licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml deleted file mode 100644 index e255579fe..000000000 --- a/.licenses/arduino-create-agent/go/go.bug.st/downloader/v2.dep.yml +++ /dev/null @@ -1,44 +0,0 @@ ---- -name: go.bug.st/downloader/v2 -version: v2.1.1 -type: go -summary: -homepage: https://pkg.go.dev/go.bug.st/downloader/v2 -license: bsd-3-clause -licenses: -- sources: LICENSE - text: |2+ - - Copyright (c) 2018, Cristian Maglie. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - 3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -notices: [] diff --git a/design/pkgs.go b/design/pkgs.go index 300bc9058..b059e0ddf 100644 --- a/design/pkgs.go +++ b/design/pkgs.go @@ -17,41 +17,6 @@ package design import . "goa.design/goa/v3/dsl" -var _ = Service("indexes", func() { - Description("The indexes service manages the package_index files") - - Error("invalid_url", ErrorResult, "url invalid") - HTTP(func() { - Response("invalid_url", StatusBadRequest) - }) - - Method("list", func() { - Result(ArrayOf(String)) - HTTP(func() { - GET("/pkgs/indexes") - Response(StatusOK) - }) - }) - - Method("add", func() { - Payload(IndexPayload) - Result(Operation) - HTTP(func() { - POST("/pkgs/indexes/add") - Response(StatusOK) - }) - }) - - Method("remove", func() { - Payload(IndexPayload) - Result(Operation) - HTTP(func() { - POST("/pkgs/indexes/delete") - Response(StatusOK) - }) - }) -}) - var _ = Service("tools", func() { Description("The tools service manages the available and installed tools") @@ -95,15 +60,6 @@ var _ = Service("tools", func() { }) }) -var IndexPayload = Type("arduino.index", func() { - TypeName("IndexPayload") - - Attribute("url", String, "The url of the index file", func() { - Example("https://downloads.arduino.cc/packages/package_index.json") - }) - Required("url") -}) - var ToolPayload = Type("arduino.tool", func() { Description(`A tool is an executable program that can upload sketches. If url is absent the tool will be searched among the package index installed`) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index e53f7fa91..50b7a8eb0 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -13,7 +13,6 @@ import ( "net/http" "os" - indexesc "github.com/arduino/arduino-create-agent/gen/http/indexes/client" toolsc "github.com/arduino/arduino-create-agent/gen/http/tools/client" goahttp "goa.design/goa/v3/http" goa "goa.design/goa/v3/pkg" @@ -23,15 +22,13 @@ import ( // // command (subcommand1|subcommand2|...) func UsageCommands() string { - return `indexes (list|add|remove) -tools (available|installed|install|remove) + return `tools (available|installed|install|remove) ` } // UsageExamples produces an example of a valid invocation of the CLI tool. func UsageExamples() string { - return os.Args[0] + ` indexes list` + "\n" + - os.Args[0] + ` tools available` + "\n" + + return os.Args[0] + ` tools available` + "\n" + "" } @@ -45,16 +42,6 @@ func ParseEndpoint( restore bool, ) (goa.Endpoint, any, error) { var ( - indexesFlags = flag.NewFlagSet("indexes", flag.ContinueOnError) - - indexesListFlags = flag.NewFlagSet("list", flag.ExitOnError) - - indexesAddFlags = flag.NewFlagSet("add", flag.ExitOnError) - indexesAddBodyFlag = indexesAddFlags.String("body", "REQUIRED", "") - - indexesRemoveFlags = flag.NewFlagSet("remove", flag.ExitOnError) - indexesRemoveBodyFlag = indexesRemoveFlags.String("body", "REQUIRED", "") - toolsFlags = flag.NewFlagSet("tools", flag.ContinueOnError) toolsAvailableFlags = flag.NewFlagSet("available", flag.ExitOnError) @@ -70,11 +57,6 @@ func ParseEndpoint( toolsRemoveNameFlag = toolsRemoveFlags.String("name", "REQUIRED", "The name of the tool") toolsRemoveVersionFlag = toolsRemoveFlags.String("version", "REQUIRED", "The version of the tool") ) - indexesFlags.Usage = indexesUsage - indexesListFlags.Usage = indexesListUsage - indexesAddFlags.Usage = indexesAddUsage - indexesRemoveFlags.Usage = indexesRemoveUsage - toolsFlags.Usage = toolsUsage toolsAvailableFlags.Usage = toolsAvailableUsage toolsInstalledFlags.Usage = toolsInstalledUsage @@ -96,8 +78,6 @@ func ParseEndpoint( { svcn = flag.Arg(0) switch svcn { - case "indexes": - svcf = indexesFlags case "tools": svcf = toolsFlags default: @@ -115,19 +95,6 @@ func ParseEndpoint( { epn = svcf.Arg(0) switch svcn { - case "indexes": - switch epn { - case "list": - epf = indexesListFlags - - case "add": - epf = indexesAddFlags - - case "remove": - epf = indexesRemoveFlags - - } - case "tools": switch epn { case "available": @@ -164,19 +131,6 @@ func ParseEndpoint( ) { switch svcn { - case "indexes": - c := indexesc.NewClient(scheme, host, doer, enc, dec, restore) - switch epn { - case "list": - endpoint = c.List() - data = nil - case "add": - endpoint = c.Add() - data, err = indexesc.BuildAddPayload(*indexesAddBodyFlag) - case "remove": - endpoint = c.Remove() - data, err = indexesc.BuildRemovePayload(*indexesRemoveBodyFlag) - } case "tools": c := toolsc.NewClient(scheme, host, doer, enc, dec, restore) switch epn { @@ -202,57 +156,6 @@ func ParseEndpoint( return endpoint, data, nil } -// indexesUsage displays the usage of the indexes command and its subcommands. -func indexesUsage() { - fmt.Fprintf(os.Stderr, `The indexes service manages the package_index files -Usage: - %[1]s [globalflags] indexes COMMAND [flags] - -COMMAND: - list: List implements list. - add: Add implements add. - remove: Remove implements remove. - -Additional help: - %[1]s indexes COMMAND --help -`, os.Args[0]) -} -func indexesListUsage() { - fmt.Fprintf(os.Stderr, `%[1]s [flags] indexes list - -List implements list. - -Example: - %[1]s indexes list -`, os.Args[0]) -} - -func indexesAddUsage() { - fmt.Fprintf(os.Stderr, `%[1]s [flags] indexes add -body JSON - -Add implements add. - -body JSON: - -Example: - %[1]s indexes add --body '{ - "url": "https://downloads.arduino.cc/packages/package_index.json" - }' -`, os.Args[0]) -} - -func indexesRemoveUsage() { - fmt.Fprintf(os.Stderr, `%[1]s [flags] indexes remove -body JSON - -Remove implements remove. - -body JSON: - -Example: - %[1]s indexes remove --body '{ - "url": "https://downloads.arduino.cc/packages/package_index.json" - }' -`, os.Args[0]) -} - // toolsUsage displays the usage of the tools command and its subcommands. func toolsUsage() { fmt.Fprintf(os.Stderr, `The tools service manages the available and installed tools diff --git a/gen/http/indexes/client/cli.go b/gen/http/indexes/client/cli.go deleted file mode 100644 index f1808ebed..000000000 --- a/gen/http/indexes/client/cli.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes HTTP client CLI support package -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client - -import ( - "encoding/json" - "fmt" - - indexes "github.com/arduino/arduino-create-agent/gen/indexes" -) - -// BuildAddPayload builds the payload for the indexes add endpoint from CLI -// flags. -func BuildAddPayload(indexesAddBody string) (*indexes.IndexPayload, error) { - var err error - var body AddRequestBody - { - err = json.Unmarshal([]byte(indexesAddBody), &body) - if err != nil { - return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"url\": \"https://downloads.arduino.cc/packages/package_index.json\"\n }'") - } - } - v := &indexes.IndexPayload{ - URL: body.URL, - } - - return v, nil -} - -// BuildRemovePayload builds the payload for the indexes remove endpoint from -// CLI flags. -func BuildRemovePayload(indexesRemoveBody string) (*indexes.IndexPayload, error) { - var err error - var body RemoveRequestBody - { - err = json.Unmarshal([]byte(indexesRemoveBody), &body) - if err != nil { - return nil, fmt.Errorf("invalid JSON for body, \nerror: %s, \nexample of valid JSON:\n%s", err, "'{\n \"url\": \"https://downloads.arduino.cc/packages/package_index.json\"\n }'") - } - } - v := &indexes.IndexPayload{ - URL: body.URL, - } - - return v, nil -} diff --git a/gen/http/indexes/client/client.go b/gen/http/indexes/client/client.go deleted file mode 100644 index 2ed037d2c..000000000 --- a/gen/http/indexes/client/client.go +++ /dev/null @@ -1,125 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes client HTTP transport -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client - -import ( - "context" - "net/http" - - goahttp "goa.design/goa/v3/http" - goa "goa.design/goa/v3/pkg" -) - -// Client lists the indexes service endpoint HTTP clients. -type Client struct { - // List Doer is the HTTP client used to make requests to the list endpoint. - ListDoer goahttp.Doer - - // Add Doer is the HTTP client used to make requests to the add endpoint. - AddDoer goahttp.Doer - - // Remove Doer is the HTTP client used to make requests to the remove endpoint. - RemoveDoer goahttp.Doer - - // RestoreResponseBody controls whether the response bodies are reset after - // decoding so they can be read again. - RestoreResponseBody bool - - scheme string - host string - encoder func(*http.Request) goahttp.Encoder - decoder func(*http.Response) goahttp.Decoder -} - -// NewClient instantiates HTTP clients for all the indexes service servers. -func NewClient( - scheme string, - host string, - doer goahttp.Doer, - enc func(*http.Request) goahttp.Encoder, - dec func(*http.Response) goahttp.Decoder, - restoreBody bool, -) *Client { - return &Client{ - ListDoer: doer, - AddDoer: doer, - RemoveDoer: doer, - RestoreResponseBody: restoreBody, - scheme: scheme, - host: host, - decoder: dec, - encoder: enc, - } -} - -// List returns an endpoint that makes HTTP requests to the indexes service -// list server. -func (c *Client) List() goa.Endpoint { - var ( - decodeResponse = DecodeListResponse(c.decoder, c.RestoreResponseBody) - ) - return func(ctx context.Context, v any) (any, error) { - req, err := c.BuildListRequest(ctx, v) - if err != nil { - return nil, err - } - resp, err := c.ListDoer.Do(req) - if err != nil { - return nil, goahttp.ErrRequestError("indexes", "list", err) - } - return decodeResponse(resp) - } -} - -// Add returns an endpoint that makes HTTP requests to the indexes service add -// server. -func (c *Client) Add() goa.Endpoint { - var ( - encodeRequest = EncodeAddRequest(c.encoder) - decodeResponse = DecodeAddResponse(c.decoder, c.RestoreResponseBody) - ) - return func(ctx context.Context, v any) (any, error) { - req, err := c.BuildAddRequest(ctx, v) - if err != nil { - return nil, err - } - err = encodeRequest(req, v) - if err != nil { - return nil, err - } - resp, err := c.AddDoer.Do(req) - if err != nil { - return nil, goahttp.ErrRequestError("indexes", "add", err) - } - return decodeResponse(resp) - } -} - -// Remove returns an endpoint that makes HTTP requests to the indexes service -// remove server. -func (c *Client) Remove() goa.Endpoint { - var ( - encodeRequest = EncodeRemoveRequest(c.encoder) - decodeResponse = DecodeRemoveResponse(c.decoder, c.RestoreResponseBody) - ) - return func(ctx context.Context, v any) (any, error) { - req, err := c.BuildRemoveRequest(ctx, v) - if err != nil { - return nil, err - } - err = encodeRequest(req, v) - if err != nil { - return nil, err - } - resp, err := c.RemoveDoer.Do(req) - if err != nil { - return nil, goahttp.ErrRequestError("indexes", "remove", err) - } - return decodeResponse(resp) - } -} diff --git a/gen/http/indexes/client/encode_decode.go b/gen/http/indexes/client/encode_decode.go deleted file mode 100644 index ee011f60c..000000000 --- a/gen/http/indexes/client/encode_decode.go +++ /dev/null @@ -1,267 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes HTTP client encoders and decoders -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client - -import ( - "bytes" - "context" - "io" - "net/http" - "net/url" - - indexes "github.com/arduino/arduino-create-agent/gen/indexes" - indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goahttp "goa.design/goa/v3/http" -) - -// BuildListRequest instantiates a HTTP request object with method and path set -// to call the "indexes" service "list" endpoint -func (c *Client) BuildListRequest(ctx context.Context, v any) (*http.Request, error) { - u := &url.URL{Scheme: c.scheme, Host: c.host, Path: ListIndexesPath()} - req, err := http.NewRequest("GET", u.String(), nil) - if err != nil { - return nil, goahttp.ErrInvalidURL("indexes", "list", u.String(), err) - } - if ctx != nil { - req = req.WithContext(ctx) - } - - return req, nil -} - -// DecodeListResponse returns a decoder for responses returned by the indexes -// list endpoint. restoreBody controls whether the response body should be -// restored after having been read. -// DecodeListResponse may return the following errors: -// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest -// - error: internal error -func DecodeListResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { - return func(resp *http.Response) (any, error) { - if restoreBody { - b, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - resp.Body = io.NopCloser(bytes.NewBuffer(b)) - defer func() { - resp.Body = io.NopCloser(bytes.NewBuffer(b)) - }() - } else { - defer resp.Body.Close() - } - switch resp.StatusCode { - case http.StatusOK: - var ( - body []string - err error - ) - err = decoder(resp).Decode(&body) - if err != nil { - return nil, goahttp.ErrDecodingError("indexes", "list", err) - } - return body, nil - case http.StatusBadRequest: - var ( - body ListInvalidURLResponseBody - err error - ) - err = decoder(resp).Decode(&body) - if err != nil { - return nil, goahttp.ErrDecodingError("indexes", "list", err) - } - err = ValidateListInvalidURLResponseBody(&body) - if err != nil { - return nil, goahttp.ErrValidationError("indexes", "list", err) - } - return nil, NewListInvalidURL(&body) - default: - body, _ := io.ReadAll(resp.Body) - return nil, goahttp.ErrInvalidResponse("indexes", "list", resp.StatusCode, string(body)) - } - } -} - -// BuildAddRequest instantiates a HTTP request object with method and path set -// to call the "indexes" service "add" endpoint -func (c *Client) BuildAddRequest(ctx context.Context, v any) (*http.Request, error) { - u := &url.URL{Scheme: c.scheme, Host: c.host, Path: AddIndexesPath()} - req, err := http.NewRequest("POST", u.String(), nil) - if err != nil { - return nil, goahttp.ErrInvalidURL("indexes", "add", u.String(), err) - } - if ctx != nil { - req = req.WithContext(ctx) - } - - return req, nil -} - -// EncodeAddRequest returns an encoder for requests sent to the indexes add -// server. -func EncodeAddRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error { - return func(req *http.Request, v any) error { - p, ok := v.(*indexes.IndexPayload) - if !ok { - return goahttp.ErrInvalidType("indexes", "add", "*indexes.IndexPayload", v) - } - body := NewAddRequestBody(p) - if err := encoder(req).Encode(&body); err != nil { - return goahttp.ErrEncodingError("indexes", "add", err) - } - return nil - } -} - -// DecodeAddResponse returns a decoder for responses returned by the indexes -// add endpoint. restoreBody controls whether the response body should be -// restored after having been read. -// DecodeAddResponse may return the following errors: -// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest -// - error: internal error -func DecodeAddResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { - return func(resp *http.Response) (any, error) { - if restoreBody { - b, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - resp.Body = io.NopCloser(bytes.NewBuffer(b)) - defer func() { - resp.Body = io.NopCloser(bytes.NewBuffer(b)) - }() - } else { - defer resp.Body.Close() - } - switch resp.StatusCode { - case http.StatusOK: - var ( - body AddResponseBody - err error - ) - err = decoder(resp).Decode(&body) - if err != nil { - return nil, goahttp.ErrDecodingError("indexes", "add", err) - } - p := NewAddOperationOK(&body) - view := "default" - vres := &indexesviews.Operation{Projected: p, View: view} - if err = indexesviews.ValidateOperation(vres); err != nil { - return nil, goahttp.ErrValidationError("indexes", "add", err) - } - res := indexes.NewOperation(vres) - return res, nil - case http.StatusBadRequest: - var ( - body AddInvalidURLResponseBody - err error - ) - err = decoder(resp).Decode(&body) - if err != nil { - return nil, goahttp.ErrDecodingError("indexes", "add", err) - } - err = ValidateAddInvalidURLResponseBody(&body) - if err != nil { - return nil, goahttp.ErrValidationError("indexes", "add", err) - } - return nil, NewAddInvalidURL(&body) - default: - body, _ := io.ReadAll(resp.Body) - return nil, goahttp.ErrInvalidResponse("indexes", "add", resp.StatusCode, string(body)) - } - } -} - -// BuildRemoveRequest instantiates a HTTP request object with method and path -// set to call the "indexes" service "remove" endpoint -func (c *Client) BuildRemoveRequest(ctx context.Context, v any) (*http.Request, error) { - u := &url.URL{Scheme: c.scheme, Host: c.host, Path: RemoveIndexesPath()} - req, err := http.NewRequest("POST", u.String(), nil) - if err != nil { - return nil, goahttp.ErrInvalidURL("indexes", "remove", u.String(), err) - } - if ctx != nil { - req = req.WithContext(ctx) - } - - return req, nil -} - -// EncodeRemoveRequest returns an encoder for requests sent to the indexes -// remove server. -func EncodeRemoveRequest(encoder func(*http.Request) goahttp.Encoder) func(*http.Request, any) error { - return func(req *http.Request, v any) error { - p, ok := v.(*indexes.IndexPayload) - if !ok { - return goahttp.ErrInvalidType("indexes", "remove", "*indexes.IndexPayload", v) - } - body := NewRemoveRequestBody(p) - if err := encoder(req).Encode(&body); err != nil { - return goahttp.ErrEncodingError("indexes", "remove", err) - } - return nil - } -} - -// DecodeRemoveResponse returns a decoder for responses returned by the indexes -// remove endpoint. restoreBody controls whether the response body should be -// restored after having been read. -// DecodeRemoveResponse may return the following errors: -// - "invalid_url" (type *goa.ServiceError): http.StatusBadRequest -// - error: internal error -func DecodeRemoveResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { - return func(resp *http.Response) (any, error) { - if restoreBody { - b, err := io.ReadAll(resp.Body) - if err != nil { - return nil, err - } - resp.Body = io.NopCloser(bytes.NewBuffer(b)) - defer func() { - resp.Body = io.NopCloser(bytes.NewBuffer(b)) - }() - } else { - defer resp.Body.Close() - } - switch resp.StatusCode { - case http.StatusOK: - var ( - body RemoveResponseBody - err error - ) - err = decoder(resp).Decode(&body) - if err != nil { - return nil, goahttp.ErrDecodingError("indexes", "remove", err) - } - p := NewRemoveOperationOK(&body) - view := "default" - vres := &indexesviews.Operation{Projected: p, View: view} - if err = indexesviews.ValidateOperation(vres); err != nil { - return nil, goahttp.ErrValidationError("indexes", "remove", err) - } - res := indexes.NewOperation(vres) - return res, nil - case http.StatusBadRequest: - var ( - body RemoveInvalidURLResponseBody - err error - ) - err = decoder(resp).Decode(&body) - if err != nil { - return nil, goahttp.ErrDecodingError("indexes", "remove", err) - } - err = ValidateRemoveInvalidURLResponseBody(&body) - if err != nil { - return nil, goahttp.ErrValidationError("indexes", "remove", err) - } - return nil, NewRemoveInvalidURL(&body) - default: - body, _ := io.ReadAll(resp.Body) - return nil, goahttp.ErrInvalidResponse("indexes", "remove", resp.StatusCode, string(body)) - } - } -} diff --git a/gen/http/indexes/client/paths.go b/gen/http/indexes/client/paths.go deleted file mode 100644 index 79236a06e..000000000 --- a/gen/http/indexes/client/paths.go +++ /dev/null @@ -1,23 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// HTTP request path constructors for the indexes service. -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client - -// ListIndexesPath returns the URL path to the indexes service list HTTP endpoint. -func ListIndexesPath() string { - return "/v2/pkgs/indexes" -} - -// AddIndexesPath returns the URL path to the indexes service add HTTP endpoint. -func AddIndexesPath() string { - return "/v2/pkgs/indexes/add" -} - -// RemoveIndexesPath returns the URL path to the indexes service remove HTTP endpoint. -func RemoveIndexesPath() string { - return "/v2/pkgs/indexes/delete" -} diff --git a/gen/http/indexes/client/types.go b/gen/http/indexes/client/types.go deleted file mode 100644 index 6194f0430..000000000 --- a/gen/http/indexes/client/types.go +++ /dev/null @@ -1,249 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes HTTP client types -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package client - -import ( - indexes "github.com/arduino/arduino-create-agent/gen/indexes" - indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goa "goa.design/goa/v3/pkg" -) - -// AddRequestBody is the type of the "indexes" service "add" endpoint HTTP -// request body. -type AddRequestBody struct { - // The url of the index file - URL string `form:"url" json:"url" xml:"url"` -} - -// RemoveRequestBody is the type of the "indexes" service "remove" endpoint -// HTTP request body. -type RemoveRequestBody struct { - // The url of the index file - URL string `form:"url" json:"url" xml:"url"` -} - -// AddResponseBody is the type of the "indexes" service "add" endpoint HTTP -// response body. -type AddResponseBody struct { - // The status of the operation - Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"` -} - -// RemoveResponseBody is the type of the "indexes" service "remove" endpoint -// HTTP response body. -type RemoveResponseBody struct { - // The status of the operation - Status *string `form:"status,omitempty" json:"status,omitempty" xml:"status,omitempty"` -} - -// ListInvalidURLResponseBody is the type of the "indexes" service "list" -// endpoint HTTP response body for the "invalid_url" error. -type ListInvalidURLResponseBody struct { - // Name is the name of this class of errors. - Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"` - // ID is a unique identifier for this particular occurrence of the problem. - ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"` - // Message is a human-readable explanation specific to this occurrence of the - // problem. - Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"` - // Is the error temporary? - Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"` - // Is the error a timeout? - Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"` - // Is the error a server-side fault? - Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"` -} - -// AddInvalidURLResponseBody is the type of the "indexes" service "add" -// endpoint HTTP response body for the "invalid_url" error. -type AddInvalidURLResponseBody struct { - // Name is the name of this class of errors. - Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"` - // ID is a unique identifier for this particular occurrence of the problem. - ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"` - // Message is a human-readable explanation specific to this occurrence of the - // problem. - Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"` - // Is the error temporary? - Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"` - // Is the error a timeout? - Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"` - // Is the error a server-side fault? - Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"` -} - -// RemoveInvalidURLResponseBody is the type of the "indexes" service "remove" -// endpoint HTTP response body for the "invalid_url" error. -type RemoveInvalidURLResponseBody struct { - // Name is the name of this class of errors. - Name *string `form:"name,omitempty" json:"name,omitempty" xml:"name,omitempty"` - // ID is a unique identifier for this particular occurrence of the problem. - ID *string `form:"id,omitempty" json:"id,omitempty" xml:"id,omitempty"` - // Message is a human-readable explanation specific to this occurrence of the - // problem. - Message *string `form:"message,omitempty" json:"message,omitempty" xml:"message,omitempty"` - // Is the error temporary? - Temporary *bool `form:"temporary,omitempty" json:"temporary,omitempty" xml:"temporary,omitempty"` - // Is the error a timeout? - Timeout *bool `form:"timeout,omitempty" json:"timeout,omitempty" xml:"timeout,omitempty"` - // Is the error a server-side fault? - Fault *bool `form:"fault,omitempty" json:"fault,omitempty" xml:"fault,omitempty"` -} - -// NewAddRequestBody builds the HTTP request body from the payload of the "add" -// endpoint of the "indexes" service. -func NewAddRequestBody(p *indexes.IndexPayload) *AddRequestBody { - body := &AddRequestBody{ - URL: p.URL, - } - return body -} - -// NewRemoveRequestBody builds the HTTP request body from the payload of the -// "remove" endpoint of the "indexes" service. -func NewRemoveRequestBody(p *indexes.IndexPayload) *RemoveRequestBody { - body := &RemoveRequestBody{ - URL: p.URL, - } - return body -} - -// NewListInvalidURL builds a indexes service list endpoint invalid_url error. -func NewListInvalidURL(body *ListInvalidURLResponseBody) *goa.ServiceError { - v := &goa.ServiceError{ - Name: *body.Name, - ID: *body.ID, - Message: *body.Message, - Temporary: *body.Temporary, - Timeout: *body.Timeout, - Fault: *body.Fault, - } - - return v -} - -// NewAddOperationOK builds a "indexes" service "add" endpoint result from a -// HTTP "OK" response. -func NewAddOperationOK(body *AddResponseBody) *indexesviews.OperationView { - v := &indexesviews.OperationView{ - Status: body.Status, - } - - return v -} - -// NewAddInvalidURL builds a indexes service add endpoint invalid_url error. -func NewAddInvalidURL(body *AddInvalidURLResponseBody) *goa.ServiceError { - v := &goa.ServiceError{ - Name: *body.Name, - ID: *body.ID, - Message: *body.Message, - Temporary: *body.Temporary, - Timeout: *body.Timeout, - Fault: *body.Fault, - } - - return v -} - -// NewRemoveOperationOK builds a "indexes" service "remove" endpoint result -// from a HTTP "OK" response. -func NewRemoveOperationOK(body *RemoveResponseBody) *indexesviews.OperationView { - v := &indexesviews.OperationView{ - Status: body.Status, - } - - return v -} - -// NewRemoveInvalidURL builds a indexes service remove endpoint invalid_url -// error. -func NewRemoveInvalidURL(body *RemoveInvalidURLResponseBody) *goa.ServiceError { - v := &goa.ServiceError{ - Name: *body.Name, - ID: *body.ID, - Message: *body.Message, - Temporary: *body.Temporary, - Timeout: *body.Timeout, - Fault: *body.Fault, - } - - return v -} - -// ValidateListInvalidURLResponseBody runs the validations defined on -// list_invalid_url_response_body -func ValidateListInvalidURLResponseBody(body *ListInvalidURLResponseBody) (err error) { - if body.Name == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("name", "body")) - } - if body.ID == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("id", "body")) - } - if body.Message == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("message", "body")) - } - if body.Temporary == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body")) - } - if body.Timeout == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body")) - } - if body.Fault == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body")) - } - return -} - -// ValidateAddInvalidURLResponseBody runs the validations defined on -// add_invalid_url_response_body -func ValidateAddInvalidURLResponseBody(body *AddInvalidURLResponseBody) (err error) { - if body.Name == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("name", "body")) - } - if body.ID == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("id", "body")) - } - if body.Message == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("message", "body")) - } - if body.Temporary == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body")) - } - if body.Timeout == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body")) - } - if body.Fault == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body")) - } - return -} - -// ValidateRemoveInvalidURLResponseBody runs the validations defined on -// remove_invalid_url_response_body -func ValidateRemoveInvalidURLResponseBody(body *RemoveInvalidURLResponseBody) (err error) { - if body.Name == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("name", "body")) - } - if body.ID == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("id", "body")) - } - if body.Message == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("message", "body")) - } - if body.Temporary == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("temporary", "body")) - } - if body.Timeout == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("timeout", "body")) - } - if body.Fault == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("fault", "body")) - } - return -} diff --git a/gen/http/indexes/server/encode_decode.go b/gen/http/indexes/server/encode_decode.go deleted file mode 100644 index fb023036f..000000000 --- a/gen/http/indexes/server/encode_decode.go +++ /dev/null @@ -1,192 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes HTTP server encoders and decoders -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server - -import ( - "context" - "errors" - "io" - "net/http" - - indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goahttp "goa.design/goa/v3/http" - goa "goa.design/goa/v3/pkg" -) - -// EncodeListResponse returns an encoder for responses returned by the indexes -// list endpoint. -func EncodeListResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { - return func(ctx context.Context, w http.ResponseWriter, v any) error { - res, _ := v.([]string) - enc := encoder(ctx, w) - body := res - w.WriteHeader(http.StatusOK) - return enc.Encode(body) - } -} - -// EncodeListError returns an encoder for errors returned by the list indexes -// endpoint. -func EncodeListError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error { - encodeError := goahttp.ErrorEncoder(encoder, formatter) - return func(ctx context.Context, w http.ResponseWriter, v error) error { - var en goa.GoaErrorNamer - if !errors.As(v, &en) { - return encodeError(ctx, w, v) - } - switch en.GoaErrorName() { - case "invalid_url": - var res *goa.ServiceError - errors.As(v, &res) - enc := encoder(ctx, w) - var body any - if formatter != nil { - body = formatter(ctx, res) - } else { - body = NewListInvalidURLResponseBody(res) - } - w.Header().Set("goa-error", res.GoaErrorName()) - w.WriteHeader(http.StatusBadRequest) - return enc.Encode(body) - default: - return encodeError(ctx, w, v) - } - } -} - -// EncodeAddResponse returns an encoder for responses returned by the indexes -// add endpoint. -func EncodeAddResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { - return func(ctx context.Context, w http.ResponseWriter, v any) error { - res := v.(*indexesviews.Operation) - enc := encoder(ctx, w) - body := NewAddResponseBody(res.Projected) - w.WriteHeader(http.StatusOK) - return enc.Encode(body) - } -} - -// DecodeAddRequest returns a decoder for requests sent to the indexes add -// endpoint. -func DecodeAddRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) { - return func(r *http.Request) (any, error) { - var ( - body AddRequestBody - err error - ) - err = decoder(r).Decode(&body) - if err != nil { - if err == io.EOF { - return nil, goa.MissingPayloadError() - } - return nil, goa.DecodePayloadError(err.Error()) - } - err = ValidateAddRequestBody(&body) - if err != nil { - return nil, err - } - payload := NewAddIndexPayload(&body) - - return payload, nil - } -} - -// EncodeAddError returns an encoder for errors returned by the add indexes -// endpoint. -func EncodeAddError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error { - encodeError := goahttp.ErrorEncoder(encoder, formatter) - return func(ctx context.Context, w http.ResponseWriter, v error) error { - var en goa.GoaErrorNamer - if !errors.As(v, &en) { - return encodeError(ctx, w, v) - } - switch en.GoaErrorName() { - case "invalid_url": - var res *goa.ServiceError - errors.As(v, &res) - enc := encoder(ctx, w) - var body any - if formatter != nil { - body = formatter(ctx, res) - } else { - body = NewAddInvalidURLResponseBody(res) - } - w.Header().Set("goa-error", res.GoaErrorName()) - w.WriteHeader(http.StatusBadRequest) - return enc.Encode(body) - default: - return encodeError(ctx, w, v) - } - } -} - -// EncodeRemoveResponse returns an encoder for responses returned by the -// indexes remove endpoint. -func EncodeRemoveResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { - return func(ctx context.Context, w http.ResponseWriter, v any) error { - res := v.(*indexesviews.Operation) - enc := encoder(ctx, w) - body := NewRemoveResponseBody(res.Projected) - w.WriteHeader(http.StatusOK) - return enc.Encode(body) - } -} - -// DecodeRemoveRequest returns a decoder for requests sent to the indexes -// remove endpoint. -func DecodeRemoveRequest(mux goahttp.Muxer, decoder func(*http.Request) goahttp.Decoder) func(*http.Request) (any, error) { - return func(r *http.Request) (any, error) { - var ( - body RemoveRequestBody - err error - ) - err = decoder(r).Decode(&body) - if err != nil { - if err == io.EOF { - return nil, goa.MissingPayloadError() - } - return nil, goa.DecodePayloadError(err.Error()) - } - err = ValidateRemoveRequestBody(&body) - if err != nil { - return nil, err - } - payload := NewRemoveIndexPayload(&body) - - return payload, nil - } -} - -// EncodeRemoveError returns an encoder for errors returned by the remove -// indexes endpoint. -func EncodeRemoveError(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, formatter func(ctx context.Context, err error) goahttp.Statuser) func(context.Context, http.ResponseWriter, error) error { - encodeError := goahttp.ErrorEncoder(encoder, formatter) - return func(ctx context.Context, w http.ResponseWriter, v error) error { - var en goa.GoaErrorNamer - if !errors.As(v, &en) { - return encodeError(ctx, w, v) - } - switch en.GoaErrorName() { - case "invalid_url": - var res *goa.ServiceError - errors.As(v, &res) - enc := encoder(ctx, w) - var body any - if formatter != nil { - body = formatter(ctx, res) - } else { - body = NewRemoveInvalidURLResponseBody(res) - } - w.Header().Set("goa-error", res.GoaErrorName()) - w.WriteHeader(http.StatusBadRequest) - return enc.Encode(body) - default: - return encodeError(ctx, w, v) - } - } -} diff --git a/gen/http/indexes/server/paths.go b/gen/http/indexes/server/paths.go deleted file mode 100644 index 6f4e533aa..000000000 --- a/gen/http/indexes/server/paths.go +++ /dev/null @@ -1,23 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// HTTP request path constructors for the indexes service. -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server - -// ListIndexesPath returns the URL path to the indexes service list HTTP endpoint. -func ListIndexesPath() string { - return "/v2/pkgs/indexes" -} - -// AddIndexesPath returns the URL path to the indexes service add HTTP endpoint. -func AddIndexesPath() string { - return "/v2/pkgs/indexes/add" -} - -// RemoveIndexesPath returns the URL path to the indexes service remove HTTP endpoint. -func RemoveIndexesPath() string { - return "/v2/pkgs/indexes/delete" -} diff --git a/gen/http/indexes/server/server.go b/gen/http/indexes/server/server.go deleted file mode 100644 index a7ecebb30..000000000 --- a/gen/http/indexes/server/server.go +++ /dev/null @@ -1,233 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes HTTP server -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server - -import ( - "context" - "net/http" - - indexes "github.com/arduino/arduino-create-agent/gen/indexes" - goahttp "goa.design/goa/v3/http" - goa "goa.design/goa/v3/pkg" -) - -// Server lists the indexes service endpoint HTTP handlers. -type Server struct { - Mounts []*MountPoint - List http.Handler - Add http.Handler - Remove http.Handler -} - -// MountPoint holds information about the mounted endpoints. -type MountPoint struct { - // Method is the name of the service method served by the mounted HTTP handler. - Method string - // Verb is the HTTP method used to match requests to the mounted handler. - Verb string - // Pattern is the HTTP request path pattern used to match requests to the - // mounted handler. - Pattern string -} - -// New instantiates HTTP handlers for all the indexes service endpoints using -// the provided encoder and decoder. The handlers are mounted on the given mux -// using the HTTP verb and path defined in the design. errhandler is called -// whenever a response fails to be encoded. formatter is used to format errors -// returned by the service methods prior to encoding. Both errhandler and -// formatter are optional and can be nil. -func New( - e *indexes.Endpoints, - mux goahttp.Muxer, - decoder func(*http.Request) goahttp.Decoder, - encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, - errhandler func(context.Context, http.ResponseWriter, error), - formatter func(ctx context.Context, err error) goahttp.Statuser, -) *Server { - return &Server{ - Mounts: []*MountPoint{ - {"List", "GET", "/v2/pkgs/indexes"}, - {"Add", "POST", "/v2/pkgs/indexes/add"}, - {"Remove", "POST", "/v2/pkgs/indexes/delete"}, - }, - List: NewListHandler(e.List, mux, decoder, encoder, errhandler, formatter), - Add: NewAddHandler(e.Add, mux, decoder, encoder, errhandler, formatter), - Remove: NewRemoveHandler(e.Remove, mux, decoder, encoder, errhandler, formatter), - } -} - -// Service returns the name of the service served. -func (s *Server) Service() string { return "indexes" } - -// Use wraps the server handlers with the given middleware. -func (s *Server) Use(m func(http.Handler) http.Handler) { - s.List = m(s.List) - s.Add = m(s.Add) - s.Remove = m(s.Remove) -} - -// MethodNames returns the methods served. -func (s *Server) MethodNames() []string { return indexes.MethodNames[:] } - -// Mount configures the mux to serve the indexes endpoints. -func Mount(mux goahttp.Muxer, h *Server) { - MountListHandler(mux, h.List) - MountAddHandler(mux, h.Add) - MountRemoveHandler(mux, h.Remove) -} - -// Mount configures the mux to serve the indexes endpoints. -func (s *Server) Mount(mux goahttp.Muxer) { - Mount(mux, s) -} - -// MountListHandler configures the mux to serve the "indexes" service "list" -// endpoint. -func MountListHandler(mux goahttp.Muxer, h http.Handler) { - f, ok := h.(http.HandlerFunc) - if !ok { - f = func(w http.ResponseWriter, r *http.Request) { - h.ServeHTTP(w, r) - } - } - mux.Handle("GET", "/v2/pkgs/indexes", f) -} - -// NewListHandler creates a HTTP handler which loads the HTTP request and calls -// the "indexes" service "list" endpoint. -func NewListHandler( - endpoint goa.Endpoint, - mux goahttp.Muxer, - decoder func(*http.Request) goahttp.Decoder, - encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, - errhandler func(context.Context, http.ResponseWriter, error), - formatter func(ctx context.Context, err error) goahttp.Statuser, -) http.Handler { - var ( - encodeResponse = EncodeListResponse(encoder) - encodeError = EncodeListError(encoder, formatter) - ) - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) - ctx = context.WithValue(ctx, goa.MethodKey, "list") - ctx = context.WithValue(ctx, goa.ServiceKey, "indexes") - var err error - res, err := endpoint(ctx, nil) - if err != nil { - if err := encodeError(ctx, w, err); err != nil { - errhandler(ctx, w, err) - } - return - } - if err := encodeResponse(ctx, w, res); err != nil { - errhandler(ctx, w, err) - } - }) -} - -// MountAddHandler configures the mux to serve the "indexes" service "add" -// endpoint. -func MountAddHandler(mux goahttp.Muxer, h http.Handler) { - f, ok := h.(http.HandlerFunc) - if !ok { - f = func(w http.ResponseWriter, r *http.Request) { - h.ServeHTTP(w, r) - } - } - mux.Handle("POST", "/v2/pkgs/indexes/add", f) -} - -// NewAddHandler creates a HTTP handler which loads the HTTP request and calls -// the "indexes" service "add" endpoint. -func NewAddHandler( - endpoint goa.Endpoint, - mux goahttp.Muxer, - decoder func(*http.Request) goahttp.Decoder, - encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, - errhandler func(context.Context, http.ResponseWriter, error), - formatter func(ctx context.Context, err error) goahttp.Statuser, -) http.Handler { - var ( - decodeRequest = DecodeAddRequest(mux, decoder) - encodeResponse = EncodeAddResponse(encoder) - encodeError = EncodeAddError(encoder, formatter) - ) - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) - ctx = context.WithValue(ctx, goa.MethodKey, "add") - ctx = context.WithValue(ctx, goa.ServiceKey, "indexes") - payload, err := decodeRequest(r) - if err != nil { - if err := encodeError(ctx, w, err); err != nil { - errhandler(ctx, w, err) - } - return - } - res, err := endpoint(ctx, payload) - if err != nil { - if err := encodeError(ctx, w, err); err != nil { - errhandler(ctx, w, err) - } - return - } - if err := encodeResponse(ctx, w, res); err != nil { - errhandler(ctx, w, err) - } - }) -} - -// MountRemoveHandler configures the mux to serve the "indexes" service -// "remove" endpoint. -func MountRemoveHandler(mux goahttp.Muxer, h http.Handler) { - f, ok := h.(http.HandlerFunc) - if !ok { - f = func(w http.ResponseWriter, r *http.Request) { - h.ServeHTTP(w, r) - } - } - mux.Handle("POST", "/v2/pkgs/indexes/delete", f) -} - -// NewRemoveHandler creates a HTTP handler which loads the HTTP request and -// calls the "indexes" service "remove" endpoint. -func NewRemoveHandler( - endpoint goa.Endpoint, - mux goahttp.Muxer, - decoder func(*http.Request) goahttp.Decoder, - encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, - errhandler func(context.Context, http.ResponseWriter, error), - formatter func(ctx context.Context, err error) goahttp.Statuser, -) http.Handler { - var ( - decodeRequest = DecodeRemoveRequest(mux, decoder) - encodeResponse = EncodeRemoveResponse(encoder) - encodeError = EncodeRemoveError(encoder, formatter) - ) - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) - ctx = context.WithValue(ctx, goa.MethodKey, "remove") - ctx = context.WithValue(ctx, goa.ServiceKey, "indexes") - payload, err := decodeRequest(r) - if err != nil { - if err := encodeError(ctx, w, err); err != nil { - errhandler(ctx, w, err) - } - return - } - res, err := endpoint(ctx, payload) - if err != nil { - if err := encodeError(ctx, w, err); err != nil { - errhandler(ctx, w, err) - } - return - } - if err := encodeResponse(ctx, w, res); err != nil { - errhandler(ctx, w, err) - } - }) -} diff --git a/gen/http/indexes/server/types.go b/gen/http/indexes/server/types.go deleted file mode 100644 index a19a5459c..000000000 --- a/gen/http/indexes/server/types.go +++ /dev/null @@ -1,190 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes HTTP server types -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package server - -import ( - indexes "github.com/arduino/arduino-create-agent/gen/indexes" - indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goa "goa.design/goa/v3/pkg" -) - -// AddRequestBody is the type of the "indexes" service "add" endpoint HTTP -// request body. -type AddRequestBody struct { - // The url of the index file - URL *string `form:"url,omitempty" json:"url,omitempty" xml:"url,omitempty"` -} - -// RemoveRequestBody is the type of the "indexes" service "remove" endpoint -// HTTP request body. -type RemoveRequestBody struct { - // The url of the index file - URL *string `form:"url,omitempty" json:"url,omitempty" xml:"url,omitempty"` -} - -// AddResponseBody is the type of the "indexes" service "add" endpoint HTTP -// response body. -type AddResponseBody struct { - // The status of the operation - Status string `form:"status" json:"status" xml:"status"` -} - -// RemoveResponseBody is the type of the "indexes" service "remove" endpoint -// HTTP response body. -type RemoveResponseBody struct { - // The status of the operation - Status string `form:"status" json:"status" xml:"status"` -} - -// ListInvalidURLResponseBody is the type of the "indexes" service "list" -// endpoint HTTP response body for the "invalid_url" error. -type ListInvalidURLResponseBody struct { - // Name is the name of this class of errors. - Name string `form:"name" json:"name" xml:"name"` - // ID is a unique identifier for this particular occurrence of the problem. - ID string `form:"id" json:"id" xml:"id"` - // Message is a human-readable explanation specific to this occurrence of the - // problem. - Message string `form:"message" json:"message" xml:"message"` - // Is the error temporary? - Temporary bool `form:"temporary" json:"temporary" xml:"temporary"` - // Is the error a timeout? - Timeout bool `form:"timeout" json:"timeout" xml:"timeout"` - // Is the error a server-side fault? - Fault bool `form:"fault" json:"fault" xml:"fault"` -} - -// AddInvalidURLResponseBody is the type of the "indexes" service "add" -// endpoint HTTP response body for the "invalid_url" error. -type AddInvalidURLResponseBody struct { - // Name is the name of this class of errors. - Name string `form:"name" json:"name" xml:"name"` - // ID is a unique identifier for this particular occurrence of the problem. - ID string `form:"id" json:"id" xml:"id"` - // Message is a human-readable explanation specific to this occurrence of the - // problem. - Message string `form:"message" json:"message" xml:"message"` - // Is the error temporary? - Temporary bool `form:"temporary" json:"temporary" xml:"temporary"` - // Is the error a timeout? - Timeout bool `form:"timeout" json:"timeout" xml:"timeout"` - // Is the error a server-side fault? - Fault bool `form:"fault" json:"fault" xml:"fault"` -} - -// RemoveInvalidURLResponseBody is the type of the "indexes" service "remove" -// endpoint HTTP response body for the "invalid_url" error. -type RemoveInvalidURLResponseBody struct { - // Name is the name of this class of errors. - Name string `form:"name" json:"name" xml:"name"` - // ID is a unique identifier for this particular occurrence of the problem. - ID string `form:"id" json:"id" xml:"id"` - // Message is a human-readable explanation specific to this occurrence of the - // problem. - Message string `form:"message" json:"message" xml:"message"` - // Is the error temporary? - Temporary bool `form:"temporary" json:"temporary" xml:"temporary"` - // Is the error a timeout? - Timeout bool `form:"timeout" json:"timeout" xml:"timeout"` - // Is the error a server-side fault? - Fault bool `form:"fault" json:"fault" xml:"fault"` -} - -// NewAddResponseBody builds the HTTP response body from the result of the -// "add" endpoint of the "indexes" service. -func NewAddResponseBody(res *indexesviews.OperationView) *AddResponseBody { - body := &AddResponseBody{ - Status: *res.Status, - } - return body -} - -// NewRemoveResponseBody builds the HTTP response body from the result of the -// "remove" endpoint of the "indexes" service. -func NewRemoveResponseBody(res *indexesviews.OperationView) *RemoveResponseBody { - body := &RemoveResponseBody{ - Status: *res.Status, - } - return body -} - -// NewListInvalidURLResponseBody builds the HTTP response body from the result -// of the "list" endpoint of the "indexes" service. -func NewListInvalidURLResponseBody(res *goa.ServiceError) *ListInvalidURLResponseBody { - body := &ListInvalidURLResponseBody{ - Name: res.Name, - ID: res.ID, - Message: res.Message, - Temporary: res.Temporary, - Timeout: res.Timeout, - Fault: res.Fault, - } - return body -} - -// NewAddInvalidURLResponseBody builds the HTTP response body from the result -// of the "add" endpoint of the "indexes" service. -func NewAddInvalidURLResponseBody(res *goa.ServiceError) *AddInvalidURLResponseBody { - body := &AddInvalidURLResponseBody{ - Name: res.Name, - ID: res.ID, - Message: res.Message, - Temporary: res.Temporary, - Timeout: res.Timeout, - Fault: res.Fault, - } - return body -} - -// NewRemoveInvalidURLResponseBody builds the HTTP response body from the -// result of the "remove" endpoint of the "indexes" service. -func NewRemoveInvalidURLResponseBody(res *goa.ServiceError) *RemoveInvalidURLResponseBody { - body := &RemoveInvalidURLResponseBody{ - Name: res.Name, - ID: res.ID, - Message: res.Message, - Temporary: res.Temporary, - Timeout: res.Timeout, - Fault: res.Fault, - } - return body -} - -// NewAddIndexPayload builds a indexes service add endpoint payload. -func NewAddIndexPayload(body *AddRequestBody) *indexes.IndexPayload { - v := &indexes.IndexPayload{ - URL: *body.URL, - } - - return v -} - -// NewRemoveIndexPayload builds a indexes service remove endpoint payload. -func NewRemoveIndexPayload(body *RemoveRequestBody) *indexes.IndexPayload { - v := &indexes.IndexPayload{ - URL: *body.URL, - } - - return v -} - -// ValidateAddRequestBody runs the validations defined on AddRequestBody -func ValidateAddRequestBody(body *AddRequestBody) (err error) { - if body.URL == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("url", "body")) - } - return -} - -// ValidateRemoveRequestBody runs the validations defined on RemoveRequestBody -func ValidateRemoveRequestBody(body *RemoveRequestBody) (err error) { - if body.URL == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("url", "body")) - } - return -} diff --git a/gen/http/openapi.json b/gen/http/openapi.json index 093633ef5..a8e08e509 100644 --- a/gen/http/openapi.json +++ b/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","schema":{"type":"array","items":{"type":"string","example":"Pariatur laudantium inventore qui."}}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesListInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","parameters":[{"name":"AddRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesAddRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesAddResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesAddInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","parameters":[{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/IndexesRemoveRequestBody","required":["url"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/IndexesRemoveResponseBody"}},"400":{"description":"Bad Request response.","schema":{"$ref":"#/definitions/IndexesRemoveInvalidURLResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"IndexesAddInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"IndexesAddRequestBody":{"title":"IndexesAddRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesAddResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"AddResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"IndexesListInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":true}},"description":"url invalid (default view)","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":false,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveInvalidURLResponseBody":{"title":"Mediatype identifier: application/vnd.goa.error; view=default","type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":true},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":false},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid (default view)","example":{"fault":true,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":true},"required":["name","id","message","temporary","timeout","fault"]},"IndexesRemoveRequestBody":{"title":"IndexesRemoveRequestBody","type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"IndexesRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml index fd351cf28..ac98393fc 100644 --- a/gen/http/openapi.yaml +++ b/gen/http/openapi.yaml @@ -13,76 +13,6 @@ produces: - application/xml - application/gob paths: - /pkgs/indexes: - get: - tags: - - indexes - summary: list indexes - operationId: indexes#list - responses: - "200": - description: OK response. - schema: - type: array - items: - type: string - example: Pariatur laudantium inventore qui. - "400": - description: Bad Request response. - schema: - $ref: '#/definitions/IndexesListInvalidURLResponseBody' - schemes: - - http - /pkgs/indexes/add: - post: - tags: - - indexes - summary: add indexes - operationId: indexes#add - parameters: - - name: AddRequestBody - in: body - required: true - schema: - $ref: '#/definitions/IndexesAddRequestBody' - required: - - url - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/IndexesAddResponseBody' - "400": - description: Bad Request response. - schema: - $ref: '#/definitions/IndexesAddInvalidURLResponseBody' - schemes: - - http - /pkgs/indexes/delete: - post: - tags: - - indexes - summary: remove indexes - operationId: indexes#remove - parameters: - - name: RemoveRequestBody - in: body - required: true - schema: - $ref: '#/definitions/IndexesRemoveRequestBody' - required: - - url - responses: - "200": - description: OK response. - schema: - $ref: '#/definitions/IndexesRemoveResponseBody' - "400": - description: Bad Request response. - schema: - $ref: '#/definitions/IndexesRemoveInvalidURLResponseBody' - schemes: - - http /pkgs/tools/available: get: tags: @@ -166,185 +96,6 @@ paths: schemes: - http definitions: - IndexesAddInvalidURLResponseBody: - title: 'Mediatype identifier: application/vnd.goa.error; view=default' - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: true - id: - type: string - description: ID is a unique identifier for this particular occurrence of the problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: true - timeout: - type: boolean - description: Is the error a timeout? - example: true - description: url invalid (default view) - example: - fault: false - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: true - timeout: false - required: - - name - - id - - message - - temporary - - timeout - - fault - IndexesAddRequestBody: - title: IndexesAddRequestBody - type: object - properties: - url: - type: string - description: The url of the index file - example: https://downloads.arduino.cc/packages/package_index.json - example: - url: https://downloads.arduino.cc/packages/package_index.json - required: - - url - IndexesAddResponseBody: - title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' - type: object - properties: - status: - type: string - description: The status of the operation - example: ok - description: AddResponseBody result type (default view) - example: - status: ok - required: - - status - IndexesListInvalidURLResponseBody: - title: 'Mediatype identifier: application/vnd.goa.error; view=default' - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: false - id: - type: string - description: ID is a unique identifier for this particular occurrence of the problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: false - timeout: - type: boolean - description: Is the error a timeout? - example: true - description: url invalid (default view) - example: - fault: false - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: false - timeout: true - required: - - name - - id - - message - - temporary - - timeout - - fault - IndexesRemoveInvalidURLResponseBody: - title: 'Mediatype identifier: application/vnd.goa.error; view=default' - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: true - id: - type: string - description: ID is a unique identifier for this particular occurrence of the problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: false - timeout: - type: boolean - description: Is the error a timeout? - example: false - description: url invalid (default view) - example: - fault: true - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: true - timeout: true - required: - - name - - id - - message - - temporary - - timeout - - fault - IndexesRemoveRequestBody: - title: IndexesRemoveRequestBody - type: object - properties: - url: - type: string - description: The url of the index file - example: https://downloads.arduino.cc/packages/package_index.json - example: - url: https://downloads.arduino.cc/packages/package_index.json - required: - - url - IndexesRemoveResponseBody: - title: 'Mediatype identifier: application/vnd.arduino.operation; view=default' - type: object - properties: - status: - type: string - description: The status of the operation - example: ok - description: RemoveResponseBody result type (default view) - example: - status: ok - required: - - status ToolResponse: title: 'Mediatype identifier: application/vnd.arduino.tool; view=default' type: object diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json index fb26d68bf..b02a940bd 100644 --- a/gen/http/openapi3.json +++ b/gen/http/openapi3.json @@ -1 +1 @@ -{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/indexes":{"get":{"tags":["indexes"],"summary":"list indexes","operationId":"indexes#list","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","example":"Rerum et soluta laudantium."},"example":["Et deserunt.","Impedit iusto libero explicabo.","Dolor adipisci nulla.","Quam voluptas voluptates expedita rem ipsum."]},"example":["Dignissimos consectetur eos molestiae culpa soluta deserunt.","Nobis sint dolorem unde.","Quia doloremque.","Atque iusto tempore sit quod dolor repellat."]}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/add":{"post":{"tags":["indexes"],"summary":"add indexes","operationId":"indexes#add","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/indexes/delete":{"post":{"tags":["indexes"],"summary":"remove indexes","operationId":"indexes#remove","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRequestBody"},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}},"400":{"description":"invalid_url: url invalid","content":{"application/vnd.goa.error":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"AddRequestBody":{"type":"object","properties":{"url":{"type":"string","description":"The url of the index file","example":"https://downloads.arduino.cc/packages/package_index.json"}},"example":{"url":"https://downloads.arduino.cc/packages/package_index.json"},"required":["url"]},"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Error":{"type":"object","properties":{"fault":{"type":"boolean","description":"Is the error a server-side fault?","example":false},"id":{"type":"string","description":"ID is a unique identifier for this particular occurrence of the problem.","example":"123abc"},"message":{"type":"string","description":"Message is a human-readable explanation specific to this occurrence of the problem.","example":"parameter 'p' must be an integer"},"name":{"type":"string","description":"Name is the name of this class of errors.","example":"bad_request"},"temporary":{"type":"boolean","description":"Is the error temporary?","example":true},"timeout":{"type":"boolean","description":"Is the error a timeout?","example":false}},"description":"url invalid","example":{"fault":false,"id":"123abc","message":"parameter 'p' must be an integer","name":"bad_request","temporary":true,"timeout":false},"required":["name","id","message","temporary","timeout","fault"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"indexes","description":"The indexes service manages the package_index files"},{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file +{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml index 8608590fe..a39c969b2 100644 --- a/gen/http/openapi3.yaml +++ b/gen/http/openapi3.yaml @@ -7,96 +7,6 @@ servers: - url: http://localhost:80 description: Default server for arduino-create-agent paths: - /v2/pkgs/indexes: - get: - tags: - - indexes - summary: list indexes - operationId: indexes#list - responses: - "200": - description: OK response. - content: - application/json: - schema: - type: array - items: - type: string - example: Rerum et soluta laudantium. - example: - - Et deserunt. - - Impedit iusto libero explicabo. - - Dolor adipisci nulla. - - Quam voluptas voluptates expedita rem ipsum. - example: - - Dignissimos consectetur eos molestiae culpa soluta deserunt. - - Nobis sint dolorem unde. - - Quia doloremque. - - Atque iusto tempore sit quod dolor repellat. - "400": - description: 'invalid_url: url invalid' - content: - application/vnd.goa.error: - schema: - $ref: '#/components/schemas/Error' - /v2/pkgs/indexes/add: - post: - tags: - - indexes - summary: add indexes - operationId: indexes#add - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddRequestBody' - example: - url: https://downloads.arduino.cc/packages/package_index.json - responses: - "200": - description: OK response. - content: - application/json: - schema: - $ref: '#/components/schemas/Operation' - example: - status: ok - "400": - description: 'invalid_url: url invalid' - content: - application/vnd.goa.error: - schema: - $ref: '#/components/schemas/Error' - /v2/pkgs/indexes/delete: - post: - tags: - - indexes - summary: remove indexes - operationId: indexes#remove - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/AddRequestBody' - example: - url: https://downloads.arduino.cc/packages/package_index.json - responses: - "200": - description: OK response. - content: - application/json: - schema: - $ref: '#/components/schemas/Operation' - example: - status: ok - "400": - description: 'invalid_url: url invalid' - content: - application/vnd.goa.error: - schema: - $ref: '#/components/schemas/Error' /v2/pkgs/tools/available: get: tags: @@ -225,17 +135,6 @@ paths: status: ok components: schemas: - AddRequestBody: - type: object - properties: - url: - type: string - description: The url of the index file - example: https://downloads.arduino.cc/packages/package_index.json - example: - url: https://downloads.arduino.cc/packages/package_index.json - required: - - url ArduinoTool: type: object properties: @@ -260,48 +159,6 @@ components: - name - version - packager - Error: - type: object - properties: - fault: - type: boolean - description: Is the error a server-side fault? - example: false - id: - type: string - description: ID is a unique identifier for this particular occurrence of the problem. - example: 123abc - message: - type: string - description: Message is a human-readable explanation specific to this occurrence of the problem. - example: parameter 'p' must be an integer - name: - type: string - description: Name is the name of this class of errors. - example: bad_request - temporary: - type: boolean - description: Is the error temporary? - example: true - timeout: - type: boolean - description: Is the error a timeout? - example: false - description: url invalid - example: - fault: false - id: 123abc - message: parameter 'p' must be an integer - name: bad_request - temporary: true - timeout: false - required: - - name - - id - - message - - temporary - - timeout - - fault InstallRequestBody: type: object properties: @@ -388,8 +245,9 @@ components: - name: bossac packager: arduino version: 1.7.0-arduino3 + - name: bossac + packager: arduino + version: 1.7.0-arduino3 tags: - - name: indexes - description: The indexes service manages the package_index files - name: tools description: The tools service manages the available and installed tools diff --git a/gen/indexes/client.go b/gen/indexes/client.go deleted file mode 100644 index 382b373dc..000000000 --- a/gen/indexes/client.go +++ /dev/null @@ -1,69 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes client -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package indexes - -import ( - "context" - - goa "goa.design/goa/v3/pkg" -) - -// Client is the "indexes" service client. -type Client struct { - ListEndpoint goa.Endpoint - AddEndpoint goa.Endpoint - RemoveEndpoint goa.Endpoint -} - -// NewClient initializes a "indexes" service client given the endpoints. -func NewClient(list, add, remove goa.Endpoint) *Client { - return &Client{ - ListEndpoint: list, - AddEndpoint: add, - RemoveEndpoint: remove, - } -} - -// List calls the "list" endpoint of the "indexes" service. -// List may return the following errors: -// - "invalid_url" (type *goa.ServiceError): url invalid -// - error: internal error -func (c *Client) List(ctx context.Context) (res []string, err error) { - var ires any - ires, err = c.ListEndpoint(ctx, nil) - if err != nil { - return - } - return ires.([]string), nil -} - -// Add calls the "add" endpoint of the "indexes" service. -// Add may return the following errors: -// - "invalid_url" (type *goa.ServiceError): url invalid -// - error: internal error -func (c *Client) Add(ctx context.Context, p *IndexPayload) (res *Operation, err error) { - var ires any - ires, err = c.AddEndpoint(ctx, p) - if err != nil { - return - } - return ires.(*Operation), nil -} - -// Remove calls the "remove" endpoint of the "indexes" service. -// Remove may return the following errors: -// - "invalid_url" (type *goa.ServiceError): url invalid -// - error: internal error -func (c *Client) Remove(ctx context.Context, p *IndexPayload) (res *Operation, err error) { - var ires any - ires, err = c.RemoveEndpoint(ctx, p) - if err != nil { - return - } - return ires.(*Operation), nil -} diff --git a/gen/indexes/endpoints.go b/gen/indexes/endpoints.go deleted file mode 100644 index cb08cb3c4..000000000 --- a/gen/indexes/endpoints.go +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes endpoints -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package indexes - -import ( - "context" - - goa "goa.design/goa/v3/pkg" -) - -// Endpoints wraps the "indexes" service endpoints. -type Endpoints struct { - List goa.Endpoint - Add goa.Endpoint - Remove goa.Endpoint -} - -// NewEndpoints wraps the methods of the "indexes" service with endpoints. -func NewEndpoints(s Service) *Endpoints { - return &Endpoints{ - List: NewListEndpoint(s), - Add: NewAddEndpoint(s), - Remove: NewRemoveEndpoint(s), - } -} - -// Use applies the given middleware to all the "indexes" service endpoints. -func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) { - e.List = m(e.List) - e.Add = m(e.Add) - e.Remove = m(e.Remove) -} - -// NewListEndpoint returns an endpoint function that calls the method "list" of -// service "indexes". -func NewListEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req any) (any, error) { - return s.List(ctx) - } -} - -// NewAddEndpoint returns an endpoint function that calls the method "add" of -// service "indexes". -func NewAddEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req any) (any, error) { - p := req.(*IndexPayload) - res, err := s.Add(ctx, p) - if err != nil { - return nil, err - } - vres := NewViewedOperation(res, "default") - return vres, nil - } -} - -// NewRemoveEndpoint returns an endpoint function that calls the method -// "remove" of service "indexes". -func NewRemoveEndpoint(s Service) goa.Endpoint { - return func(ctx context.Context, req any) (any, error) { - p := req.(*IndexPayload) - res, err := s.Remove(ctx, p) - if err != nil { - return nil, err - } - vres := NewViewedOperation(res, "default") - return vres, nil - } -} diff --git a/gen/indexes/service.go b/gen/indexes/service.go deleted file mode 100644 index 597c0abf2..000000000 --- a/gen/indexes/service.go +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes service -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package indexes - -import ( - "context" - - indexesviews "github.com/arduino/arduino-create-agent/gen/indexes/views" - goa "goa.design/goa/v3/pkg" -) - -// The indexes service manages the package_index files -type Service interface { - // List implements list. - List(context.Context) (res []string, err error) - // Add implements add. - Add(context.Context, *IndexPayload) (res *Operation, err error) - // Remove implements remove. - Remove(context.Context, *IndexPayload) (res *Operation, err error) -} - -// ServiceName is the name of the service as defined in the design. This is the -// same value that is set in the endpoint request contexts under the ServiceKey -// key. -const ServiceName = "indexes" - -// MethodNames lists the service method names as defined in the design. These -// are the same values that are set in the endpoint request contexts under the -// MethodKey key. -var MethodNames = [3]string{"list", "add", "remove"} - -// IndexPayload is the payload type of the indexes service add method. -type IndexPayload struct { - // The url of the index file - URL string -} - -// Operation is the result type of the indexes service add method. -type Operation struct { - // The status of the operation - Status string -} - -// MakeInvalidURL builds a goa.ServiceError from an error. -func MakeInvalidURL(err error) *goa.ServiceError { - return goa.NewServiceError(err, "invalid_url", false, false, false) -} - -// NewOperation initializes result type Operation from viewed result type -// Operation. -func NewOperation(vres *indexesviews.Operation) *Operation { - return newOperation(vres.Projected) -} - -// NewViewedOperation initializes viewed result type Operation from result type -// Operation using the given view. -func NewViewedOperation(res *Operation, view string) *indexesviews.Operation { - p := newOperationView(res) - return &indexesviews.Operation{Projected: p, View: "default"} -} - -// newOperation converts projected type Operation to service type Operation. -func newOperation(vres *indexesviews.OperationView) *Operation { - res := &Operation{} - if vres.Status != nil { - res.Status = *vres.Status - } - return res -} - -// newOperationView projects result type Operation to projected type -// OperationView using the "default" view. -func newOperationView(res *Operation) *indexesviews.OperationView { - vres := &indexesviews.OperationView{ - Status: &res.Status, - } - return vres -} diff --git a/gen/indexes/views/view.go b/gen/indexes/views/view.go deleted file mode 100644 index 4c8b42272..000000000 --- a/gen/indexes/views/view.go +++ /dev/null @@ -1,56 +0,0 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. -// -// indexes views -// -// Command: -// $ goa gen github.com/arduino/arduino-create-agent/design - -package views - -import ( - goa "goa.design/goa/v3/pkg" -) - -// Operation is the viewed result type that is projected based on a view. -type Operation struct { - // Type to project - Projected *OperationView - // View to render - View string -} - -// OperationView is a type that runs validations on a projected type. -type OperationView struct { - // The status of the operation - Status *string -} - -var ( - // OperationMap is a map indexing the attribute names of Operation by view name. - OperationMap = map[string][]string{ - "default": { - "status", - }, - } -) - -// ValidateOperation runs the validations defined on the viewed result type -// Operation. -func ValidateOperation(result *Operation) (err error) { - switch result.View { - case "default", "": - err = ValidateOperationView(result.Projected) - default: - err = goa.InvalidEnumValueError("view", result.View, []any{"default"}) - } - return -} - -// ValidateOperationView runs the validations defined on OperationView using -// the "default" view. -func ValidateOperationView(result *OperationView) (err error) { - if result.Status == nil { - err = goa.MergeErrors(err, goa.MissingFieldError("status", "result")) - } - return -} diff --git a/go.mod b/go.mod index 99704fd6a..16f74d6a7 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,6 @@ require ( github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 - go.bug.st/downloader/v2 v2.1.1 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.13.1 golang.org/x/crypto v0.13.0 diff --git a/go.sum b/go.sum index b070dd3f7..b05dfb663 100644 --- a/go.sum +++ b/go.sum @@ -166,8 +166,6 @@ github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -go.bug.st/downloader/v2 v2.1.1 h1:nyqbUizo3E2IxCCm4YFac4FtSqqFpqWP+Aae5GCMuw4= -go.bug.st/downloader/v2 v2.1.1/go.mod h1:VZW2V1iGKV8rJL2ZEGIDzzBeKowYv34AedJz13RzVII= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.13.1 h1:JRWJs1GSD5WWPvGq7Ru68au7BcxG+cA7fWCi/q4ONq0= diff --git a/tools/hidefile_darwin.go b/index/hidefile_default.go similarity index 73% rename from tools/hidefile_darwin.go rename to index/hidefile_default.go index b9f04e4c9..b777bcd5d 100644 --- a/tools/hidefile_darwin.go +++ b/index/hidefile_default.go @@ -13,21 +13,11 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package tools +//go:build !windows -import ( - "os/exec" -) +package index -func hideFile(path string) { - -} - -// TellCommandNotToSpawnShell will now spawn a shell -func TellCommandNotToSpawnShell(_ *exec.Cmd) { -} - -// MessageBox will open a dialog -func MessageBox(title, text string) int { - return 6 +// hideFile will do nothing in this platform +func hideFile(path string) error { + return nil } diff --git a/index/hidefile_windows.go b/index/hidefile_windows.go new file mode 100644 index 000000000..78a613d46 --- /dev/null +++ b/index/hidefile_windows.go @@ -0,0 +1,33 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package index + +import ( + "syscall" +) + +// hideFile will set the hidden attribute on the file +func hideFile(path string) error { + filenameW, err := syscall.UTF16PtrFromString(path) + if err != nil { + return err + } + err = syscall.SetFileAttributes(filenameW, syscall.FILE_ATTRIBUTE_HIDDEN) + if err != nil { + return err + } + return nil +} diff --git a/index/index.go b/index/index.go new file mode 100644 index 000000000..6ec0a4bb7 --- /dev/null +++ b/index/index.go @@ -0,0 +1,146 @@ +// Copyright 2022 Arduino SA +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package index + +import ( + "bytes" + "encoding/hex" + "io" + "log" + "net/http" + "net/url" + "path" + "time" + + "github.com/arduino/go-paths-helper" + "golang.org/x/crypto/openpgp" +) + +// Resource represent the index of the system +type Resource struct { + LastRefresh time.Time // Last time the index was downloaded + IndexURL url.URL // The URL used to host the index.json + IndexFile paths.Path // The location of the index on the filesystem + IndexSignature paths.Path // The location of the signature on the filesystem +} + +// gpg --export YOURKEYID --export-options export-minimal,no-export-attributes | hexdump /dev/stdin -v -e '/1 "%02X"' +var publicKeyHex string = "99020D0452FAA2FA011000D0C5604932111750628F171E4E612D599ABEA8E4309888B9B9E87CCBD3AAD014B27454B0AF08E7CDD019DA72D492B6CF882AD7FA8571E985C538582DA096C371E7FCD95B71BC00C0E92BDDC26801F1B11C86814E0EA849E5973F630FC426E6A5F262C22986CB489B5304005202BA729D519725E3E6042C9199C8ECE734052B7376CF40A864679C3594C93203EBFB3F82CD42CD956F961792233B4C7C1A28252360F48F1D6D8662F2CF93F87DB40A99304F61828AF8A3EB07239E984629DC0B1D5C6494C9AFB5C8F8B9A53F1324C254A1AEA4CD9219AB4DF8667653AC9A6E76C3DB37CE8F60B546F78ECA43A90CB82A2278A291D2E98D66753B56F0595280C6E33B274F631846806D97447DD5C9438E7EC85779D9FA2173E088CE6FA156E291FAFD432C4FC2B1EB251DAFD13C721FF6618F696B77C122FB75E3CBCB446FAAA7FFFDD071C81C6C3D2360D495964C623617352915BBB30FA7C903EA096BF01E77FC84C8B51C02EB11BC9F03F19C7E81254F1F786E64A7A9F7F438873583CFA40F49C0F041432EAECCEC7EE9BA465A30320306F0E2E65EBE01E533CBBD8B1C1C04222213D5D05F4B689193DB60A68A6F1FC8B2ADD9E58A104E482AAD3869CCC42236EDC9CBE8561E105837AB6F7A764DCE5D8CB62608E8133F0FDD5F8FAFBE3BC57EE551ADC7386AADD443B331716EC032ACF9C639BF9DFE62301D4F197221F10DEF0011010001B42041726475696E6F204C4C43203C737570706F72744061726475696E6F2E63633E890238041301020022050252FAA2FA021B03060B090807030206150802090A0B0416020301021E01021780000A09107BAF404C2DFAB4AEF8090FFE20C3B36BF786D692969DA2ECFD7BCA3961E735D3CBB5585D7AB04BB8A0B64B64528ED76DB4752FA24523AA1E07B69A6A66CDDAE074A6A572800228194DD5916A956BF22606D866C7FD81F32878E06FEC200DDB0703D805E1A61006EB0B5BDB3AA89C095BB259BD93C7AAE8BDB18468A6DBE30F85BD6A3271F5456EB22BC2BCE99DB3A054D9BCA8F562C01B99E6BF4C2136B62771EEF54CB2AE95F8E2FE543284C37EB77E5104D49939ABAEF323CA5F1A66CA48ED423DBB3A2CFF12792CCA71ACD1E3032186CC7D05A13E0D66A3258E443527AAF921B7EA70C6CC10E2A51FCAB4DD130A10D3D29B1B01FB4207EF6501D3A9186BDB652ECCC9F354599A114DD3F80F9ED3493AC51A5C4F1F3BB59049EE7EC61411E90E02F27789E87B18A860551DFDFFA870E8542F6128E167CE1875C5C5B1128259347B85265487006B173AA631F1CDA1EDC68C54978E1D0FE3B310CC0F49F9AE84F37B1472437B69DA125BAFDC99AE57C2245F70747E1EFD52849C40469247CF13CB679A31AF4700468E09ED1ECFE5A53F67C80C48A0B0C1334FAE9650584DFD406ADA30FFBEED659256D40924432B029BBB24CEF22195D389381F0B1EB964C6494942335E74A373D869D1FB0C7967F30F79D71AB06929CEBB660514C2567284BD9EC32470B263539B3AFF5D3FBA9A275D4665E6B502B4031B63F511C1DFDD16B617A6FB046FCEB018A7A01CEFB9020D0452FAA2FA011000D6DE1747395EB3836103D30FA5CF555F6FBC982FB8B0FD72389CD6E99A88ACA1BCBD8BAD35211929AB5AB7F656BA1AFFA8C9A5AF83436FC8FE36AB403453E3E6EC679371AD81657FA1506956B1165D8887E3FB7EF366EFCCA82EE543E0B22170D0164A6702EF5280398A901CB6262E63C0AE378FD8CA1957EEED9CE48AA3D481BD117A2CA0341C3E16FE20CB6A5C3130A19B364F656CDC45E2216DE7ACFAD429967D71D101CADE10BA64F4075801ED2E9E3A3293114543456A26236CCA459DC7700D2E9C692BADCA9BA0CDE7189CD594B20CA4D1F20A70B02B9B50F70CFC6F7697B1D500702CE29492C7CD28C5D555475788DDE57482BC39E8465A720E25866AC931D5D7030AB61136BF702B25BC850A5089D1E6F0F68B8AE894ADFC3C92BB836888E3DB5A940426DBE7BBC5BDD3DDD6F5123627D1CE6FD1845CC66A920094391BE783069CB05746C0A55DAFC869FDAF0A08F81099E4F4CD07D05C7269C538C341CF1EDB94114B8CD97B44214EA58EEDB93FAB772013A1D77A08B9208082F9617A6CFE39B56F0078406C6267ABF5CF1078C49B1AB9B60EA1451351CF889EF72D7D696B23B22F753B28979AF10237B579A350FA5596A3B22244FA91402562AE530E814EF19A9E3448F465F78C16220DE0663F7B97C7F0EF1629E2F64A76B21BB695A3DE505B22B09B3459A3CE2180424BD67C8482EBD5EBC8128F98634EEE8707001101000189021F041801020009050252FAA2FA021B0C000A09107BAF404C2DFAB4AE050B1000C1434E8CC0D6F8E60E2FB091AA5EA04E7612B29D3823E09914F704DE1835A7B202D3F619183BD3A16439BFA31A6AF342672E8F59184333C4F56D18AF3B7CE8326F655F7C8DD1D4B38A1964E6A4D7550D159CE1B5EC44BC2091B1097CABE724C0E8C4942C2CF82672E3F209322270D133313CF601E07756B705946A45235DAF7294BCD34292D989EFDFDA2F46AF0AEAEC72F55DC6B2940C7C6A409B7FAD3354D5CA30C3E4EE29F9218A56EF8D7FBA2A7BB8E6304110A21DF0C847C4B761CDE408CE156D53091535A800C1C522CA33C71105B11550A145FD0E41B464146B46D46F08DFAEF9B03D313D54A1E4A82E8749895AB78521DAA8E66EEF6F7B17A0CA4B4CBFCB937713B9806269556EBD88AE87996EFAC0846ACBA0D3412FC0A5E90923C261CD443E4D6C1AE93D83166937C5F606A14FD73DB4919A0ED416D4B3163420F57FACCE9C9347BD5501BE3FC830472B64068E5FF5B09E7425030625246720D21608DEE829F84E8365527F764C91DA93372C72AA4054B458104CAFC2BDCED63DC80F36E7BD4BE0D3A19E20E3FED90F80F9E1584853B971B8E847C27027123B9AA19C3E90B41B3A643D3D5BE2FC134ADA8396D072D37E7101B64CE83E1802D0D5DDA9150B6C21564987950C9601FC2147F139C7A9906640A0883981B452F25AF7A0F32FAA2148ECDD9B04B93AFCED00F11AA0E6695C2F92676B8DB9E93172FD7779B9020D04530B05A7011000CAA1A8FF4BF9D0F0AC9EDBCA3B4D26E3E569DFEA04341F3E6ACE23AE5D87D62C2600DFF10B106144A1B52FF8B695A590D65C681F69DEE454800C235160EBE3FC1436193E1278D56C86E2BBB2187BEAAC1E1D04D40A392B1457471D10A2B6BF39CDF35D1A090A9406BCB06BDEF83A12A490C5E17D68884AD2686042669E2B458AD3CC0377DDA9C58D7070CE29A53E0E7C876D61B29A2DE2A9D73F914D0FF3B0E35E2ED361B60A8C3C3D4C7E77E17A939283BFDA2EC5725A2BFAAC18C6A64ACBEC776760D7086EA42BD93031E8B59FB8DFEFF77E5F80DBEB84ADE74B3A6F9E4D0F3140A8D0F576ED00548883C85271AA7F2450D1061F56CB839786038861D5A2473B7F58EBC00D2BB9EFEB1A2DF612A7B9087C326FBB08F2879102253316784272967A886089D61D5AB0FDB33737D35F27C2886ABB4D4E88F541D0BBAD04AEF7BD3ED66A1282B762BD6F8EEDC3760773B157C1A2D4E4586E43B28879C54E7599F9A34E1524E6E7F9B8EA13CC5A2DF5C1920AF74833EDDEC8EB9A8BE33196702DFD656D81ACBBFE3A10DA882EAA3065D9C9476C0A7B66C15D0063CB7AD1A2EB31537CB443F21B81642436943FE6C45E6AF9C2B595D4DFCB64B83F2CA6B4DD536726C6EC4761A340C18E32B2D7210640B9AB1D8E2165C0DD38BC9FD9DB6A30B380DF08C3F10002A6636FDC79CD2312B606F5F116AC665618A56BBE46C494FC7E23C7001101000189043E0418010200090502530B05A7021B02022909107BAF404C2DFAB4AEC15D200419010200060502530B05A7000A091024A26BAD7F29429187700FFE30ED1B7C96B3846AC7B363F9602D2886F7913A9C451C31E043AD75597024D460B59E6A60A6EE3D58E656901237A2465F8402169A816B38170AF550284EB420B7E827386D66852D68125A27FA6770F139EE7FCAEF43000673B7C7D168614877603C875AD593E333AE9237DB77065FB8375CE98FA1BF7FB1733034AAC61F1D23A3EFF8665702C10968C7991458F88D151B3448C7D9334059431A63D30A9C8E636A99D88DA8DB04CB8C64F1183AC873FF0942EF9555B6B3F192AD5F221AC9737F875CCAE21E88EC45CB35E40C0FF1AAF0A8FE44876D93A930A03CC4846A29102C956F39F2AC5808CCBCD7F4868A8E8E8B9A66EA18C275CEF9C371AB0592796ED57D757A3BAB31FF8E3887F6041E61BDA433E7D68CB2D5F28E81F57843D5032D73BF67119C137FC4CE8BEF4F705D690E47A530B1A85B8B6A09A4AE16A2973C11D69031B89BE92B0751DB7FE74F6F1C219C8B93E5C68EC1403856DF28E96E27737A7FB9C80F6EE9EC485A0609DC4EB8DF444F61C76A97F32ADFA2D8B4784DF3ABA4DE1B57894B9CF89934A143451308D73CF79ECC8BF382B8A34F24DC335238D8353767B363F5432D9A81C84F7D2FAB6E36E7188FA911120A905C67342A996251EBECAC13BD543A9B3C2C063AE294FDD15C66D5DD9224F3E936325F525700F2129D0B31CE8CCD4EBA5DEDB89F0A2BFC0C43E732F695161E4F33CE5DED14B1E98654547B110FFF7CBC2BA513721A96DD18964635069343FA8EEF4D492BFA55C930F9C78DF1F7454F1BDD40F4B04BDE9F9B9A9923A303D96D0CBFA361921AFEF13AED098D0CF70E84C0DDB20C58821351D2359B131671AAF5D2484717A4CAF385DB0CC19FBC37A3FC04F4F387D6934C1E84B9C1291231A14F69A1BF6708875C7DE00E3EFE3C7855A2459C96245C5F0D21FC00E87A0C18F80A3B79C0E28EA27493309C535254421BE7CDFBEFB5B44DAEA56B6859430FCCBEE766048F891AD5CB503866B98E521ED69B37E4165012A45E29836E2A0380728C1108E4C8A32EA186E1A855F78DA5506B6CF86DB888A87FAB6E15A90E3416469522DF5BD8872D729B35E6D82C974CD80076C26008015AB216C83FAF64E488F07D2BD01F51B0963F87BE0AB8392B442227BF7215148038B0C55189024D7C1B032DB1B3C56C66953E530C5B323634FC584A476CAD285EF1108011D14D9D180A75A9DFC936AFC7EF9E6C3F3CFEDD894894CE60358E7156B3A65ED7644DEA343A133F5D4DE4D33B74281086A0C20515AC4151CFED93C56DD574E578FDEE72C4115C25CAEC5EAD97C147F27F4EAE67FEFFEA0DC1CDF5D636AC331CB74DF477C9C3B3706F9DAF50C2E13AC8DE8CC9DD3C79E59EC779EE489D915CF22FDC53E3B3C7710FE8368DF11B9ACDF5F3CAE1F43CB7312E5E9F57F248692B3681CBA3E49207878FD33ED2A47CE9CE9B4E4A6EFD8F0AD2CD" + +// Init will initialize the IndexResource structure and will return it. +// It will take indexString as a paramenter. +func Init(indexString string, directory *paths.Path) *Resource { + if directory == nil { + log.Fatalf("configuration directory not provided") + } + if !directory.Exist() { + err := directory.Mkdir() + if err != nil { + log.Fatalf("cannot create config dir: %s", err) + } + err = hideFile(directory.String()) + if err != nil { + log.Printf("cannot make config dir hidden: %s", err) + } + } + indexParsed, err := url.Parse(indexString) + if err != nil { + log.Fatalf("cannot parse provided index: %s", indexString) + } + + indexFile := path.Base(indexParsed.Path) // == package_index.json + signatureFile := indexFile + ".sig" + + var ir = Resource{ + IndexURL: *indexParsed, + IndexFile: *directory.Join(indexFile), + IndexSignature: *directory.Join(signatureFile), + } + + if err := ir.DownloadAndVerify(); err != nil { + log.Fatalf("cannot download index: %s", err) + } + + return &ir +} + +// DownloadAndVerify will download an index file located at IndexURL and verify the signature +// if everything matches the files are overwritten +func (ir *Resource) DownloadAndVerify() error { + // Fetch the index + resp, err := http.Get(ir.IndexURL.String()) + if err != nil { + return err + } + defer resp.Body.Close() + + // Read the index body + body, err := io.ReadAll(resp.Body) + if err != nil { + return err + } + + // Fetch the signature + signature, err := http.Get(ir.IndexURL.String() + ".sig") + if err != nil { + return err + } + defer signature.Body.Close() + + // Read the signature body + signatureBody, err := io.ReadAll(signature.Body) + if err != nil { + return err + } + + err = checkGPGSig(bytes.NewReader(body), bytes.NewReader(signatureBody)) + if err != nil { + return err + } + + // we overwrite the files if the signature is valid + ir.IndexFile.WriteFile(body) + ir.IndexSignature.WriteFile(signatureBody) + + ir.LastRefresh = time.Now() + + return nil +} + +// checkGPGSign takes a signed io.Reader and a detached signature io.Reader +// and returns if the signature is valid +func checkGPGSig(signed, signature io.Reader) error { + publicKeyBin, err := hex.DecodeString(publicKeyHex) + if err != nil { + return err + } + keyring, _ := openpgp.ReadKeyRing(bytes.NewReader(publicKeyBin)) + + _, err = openpgp.CheckDetachedSignature(keyring, signed, signature) + return err +} + +// Read will read the index file. In case it doesn't exists or the latest downloaded +// version is older than 1 hour, it will be downloaded again. +func (ir *Resource) Read() ([]byte, error) { + if !ir.IndexFile.Exist() || time.Since(ir.LastRefresh) > 1*time.Hour { + // Download the file again and save it + if err := ir.DownloadAndVerify(); err != nil { + return nil, err + } + } + return ir.IndexFile.ReadFile() +} diff --git a/index/index_test.go b/index/index_test.go new file mode 100644 index 000000000..ea6433574 --- /dev/null +++ b/index/index_test.go @@ -0,0 +1,25 @@ +package index + +import ( + "net/url" + "testing" + + "github.com/arduino/go-paths-helper" + "github.com/stretchr/testify/require" +) + +func TestInit(t *testing.T) { + indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + // Instantiate Index + tempDir := paths.New(t.TempDir()).Join(".arduino-create") + Index := Init(indexURL, tempDir) + require.DirExists(t, tempDir.String()) + fileName := "package_staging_index.json" + signatureName := fileName + ".sig" + parsedURL, _ := url.Parse(indexURL) + require.Equal(t, Index.IndexURL, *parsedURL) + require.Contains(t, Index.IndexFile.String(), fileName) + require.Contains(t, Index.IndexSignature.String(), signatureName) + require.FileExists(t, tempDir.Join(fileName).String()) + require.FileExists(t, tempDir.Join(signatureName).String()) +} diff --git a/main.go b/main.go index 2d115f61a..671c6333e 100755 --- a/main.go +++ b/main.go @@ -36,6 +36,7 @@ import ( cert "github.com/arduino/arduino-create-agent/certificates" "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/globals" + "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/systray" "github.com/arduino/arduino-create-agent/tools" "github.com/arduino/arduino-create-agent/updater" @@ -48,11 +49,10 @@ import ( ) var ( - version = "x.x.x-dev" //don't modify it, Jenkins will take care - commit = "xxxxxxxx" //don't modify it, Jenkins will take care - port string - portSSL string - requiredToolsAPILevel = "v1" + version = "x.x.x-dev" //don't modify it, Jenkins will take care + commit = "xxxxxxxx" //don't modify it, Jenkins will take care + port string + portSSL string ) // regular flags @@ -99,6 +99,7 @@ var homeTemplateHTML string var ( Tools tools.Tools Systray systray.Systray + Index *index.Resource ) type logWriter struct{} @@ -176,17 +177,17 @@ func loop() { os.Exit(0) } - // Instantiate Tools - Tools = tools.Tools{ - Directory: config.GetDataDir().String(), - IndexURL: *indexURL, - Logger: func(msg string) { - mapD := map[string]string{"DownloadStatus": "Pending", "Msg": msg} - mapB, _ := json.Marshal(mapD) - h.broadcastSys <- mapB - }, + // Instantiate Index + Index = index.Init(*indexURL, config.GetDataDir()) + + logger := func(msg string) { + mapD := map[string]string{"DownloadStatus": "Pending", "Msg": msg} + mapB, _ := json.Marshal(mapD) + h.broadcastSys <- mapB } - Tools.Init(requiredToolsAPILevel) + + // Instantiate Tools + Tools = *tools.New(config.GetDataDir(), Index, logger) // Let's handle the config configDir := config.GetDefaultConfigDir() @@ -397,7 +398,7 @@ func loop() { r.POST("/update", updateHandler) // Mount goa handlers - goa := v2.Server(config.GetDataDir().String()) + goa := v2.Server(config.GetDataDir().String(), Index) r.Any("/v2/*path", gin.WrapH(goa)) go func() { diff --git a/main_test.go b/main_test.go index c2fb2489e..57c5b2f8e 100644 --- a/main_test.go +++ b/main_test.go @@ -29,6 +29,7 @@ import ( "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/upload" v2 "github.com/arduino/arduino-create-agent/v2" "github.com/gin-gonic/gin" @@ -87,8 +88,13 @@ func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { } func TestInstallToolV2(t *testing.T) { + + indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + // Instantiate Index + Index := index.Init(indexURL, config.GetDataDir()) + r := gin.New() - goa := v2.Server(config.GetDataDir().String()) + goa := v2.Server(config.GetDataDir().String(), Index) r.Any("/v2/*path", gin.WrapH(goa)) ts := httptest.NewServer(r) @@ -140,7 +146,7 @@ func TestInstallToolV2(t *testing.T) { {bossacInstallURLOK, http.StatusOK, "ok"}, {bossacInstallWrongSig, http.StatusInternalServerError, "verification error"}, {bossacInstallWrongCheck, http.StatusInternalServerError, "checksum doesn't match"}, - {bossacInstallNoURL, http.StatusBadRequest, "tool not found"}, //because the index is not added + {bossacInstallNoURL, http.StatusOK, "ok"}, } for _, test := range tests { diff --git a/tests/conftest.py b/tests/conftest.py index b39bbeb47..d2c59c7cc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -43,7 +43,7 @@ def agent(pytestconfig): # we give some time to the agent to start and listen to # incoming requests - time.sleep(.5) + time.sleep(1) # we block here until the test function using this fixture has returned yield runner diff --git a/tools/download.go b/tools/download.go index 939e7a304..76f4056c5 100644 --- a/tools/download.go +++ b/tools/download.go @@ -34,9 +34,6 @@ import ( "path/filepath" "runtime" "strings" - "time" - - "golang.org/x/crypto/openpgp" "github.com/arduino/arduino-create-agent/utilities" "github.com/arduino/arduino-create-agent/v2/pkgs" @@ -53,72 +50,6 @@ func mimeType(data []byte) (string, error) { return http.DetectContentType(data[0:512]), nil } -// gpg --export YOURKEYID --export-options export-minimal,no-export-attributes | hexdump /dev/stdin -v -e '/1 "%02X"' -var publicKeyHex string = "99020D0452FAA2FA011000D0C5604932111750628F171E4E612D599ABEA8E4309888B9B9E87CCBD3AAD014B27454B0AF08E7CDD019DA72D492B6CF882AD7FA8571E985C538582DA096C371E7FCD95B71BC00C0E92BDDC26801F1B11C86814E0EA849E5973F630FC426E6A5F262C22986CB489B5304005202BA729D519725E3E6042C9199C8ECE734052B7376CF40A864679C3594C93203EBFB3F82CD42CD956F961792233B4C7C1A28252360F48F1D6D8662F2CF93F87DB40A99304F61828AF8A3EB07239E984629DC0B1D5C6494C9AFB5C8F8B9A53F1324C254A1AEA4CD9219AB4DF8667653AC9A6E76C3DB37CE8F60B546F78ECA43A90CB82A2278A291D2E98D66753B56F0595280C6E33B274F631846806D97447DD5C9438E7EC85779D9FA2173E088CE6FA156E291FAFD432C4FC2B1EB251DAFD13C721FF6618F696B77C122FB75E3CBCB446FAAA7FFFDD071C81C6C3D2360D495964C623617352915BBB30FA7C903EA096BF01E77FC84C8B51C02EB11BC9F03F19C7E81254F1F786E64A7A9F7F438873583CFA40F49C0F041432EAECCEC7EE9BA465A30320306F0E2E65EBE01E533CBBD8B1C1C04222213D5D05F4B689193DB60A68A6F1FC8B2ADD9E58A104E482AAD3869CCC42236EDC9CBE8561E105837AB6F7A764DCE5D8CB62608E8133F0FDD5F8FAFBE3BC57EE551ADC7386AADD443B331716EC032ACF9C639BF9DFE62301D4F197221F10DEF0011010001B42041726475696E6F204C4C43203C737570706F72744061726475696E6F2E63633E890238041301020022050252FAA2FA021B03060B090807030206150802090A0B0416020301021E01021780000A09107BAF404C2DFAB4AEF8090FFE20C3B36BF786D692969DA2ECFD7BCA3961E735D3CBB5585D7AB04BB8A0B64B64528ED76DB4752FA24523AA1E07B69A6A66CDDAE074A6A572800228194DD5916A956BF22606D866C7FD81F32878E06FEC200DDB0703D805E1A61006EB0B5BDB3AA89C095BB259BD93C7AAE8BDB18468A6DBE30F85BD6A3271F5456EB22BC2BCE99DB3A054D9BCA8F562C01B99E6BF4C2136B62771EEF54CB2AE95F8E2FE543284C37EB77E5104D49939ABAEF323CA5F1A66CA48ED423DBB3A2CFF12792CCA71ACD1E3032186CC7D05A13E0D66A3258E443527AAF921B7EA70C6CC10E2A51FCAB4DD130A10D3D29B1B01FB4207EF6501D3A9186BDB652ECCC9F354599A114DD3F80F9ED3493AC51A5C4F1F3BB59049EE7EC61411E90E02F27789E87B18A860551DFDFFA870E8542F6128E167CE1875C5C5B1128259347B85265487006B173AA631F1CDA1EDC68C54978E1D0FE3B310CC0F49F9AE84F37B1472437B69DA125BAFDC99AE57C2245F70747E1EFD52849C40469247CF13CB679A31AF4700468E09ED1ECFE5A53F67C80C48A0B0C1334FAE9650584DFD406ADA30FFBEED659256D40924432B029BBB24CEF22195D389381F0B1EB964C6494942335E74A373D869D1FB0C7967F30F79D71AB06929CEBB660514C2567284BD9EC32470B263539B3AFF5D3FBA9A275D4665E6B502B4031B63F511C1DFDD16B617A6FB046FCEB018A7A01CEFB9020D0452FAA2FA011000D6DE1747395EB3836103D30FA5CF555F6FBC982FB8B0FD72389CD6E99A88ACA1BCBD8BAD35211929AB5AB7F656BA1AFFA8C9A5AF83436FC8FE36AB403453E3E6EC679371AD81657FA1506956B1165D8887E3FB7EF366EFCCA82EE543E0B22170D0164A6702EF5280398A901CB6262E63C0AE378FD8CA1957EEED9CE48AA3D481BD117A2CA0341C3E16FE20CB6A5C3130A19B364F656CDC45E2216DE7ACFAD429967D71D101CADE10BA64F4075801ED2E9E3A3293114543456A26236CCA459DC7700D2E9C692BADCA9BA0CDE7189CD594B20CA4D1F20A70B02B9B50F70CFC6F7697B1D500702CE29492C7CD28C5D555475788DDE57482BC39E8465A720E25866AC931D5D7030AB61136BF702B25BC850A5089D1E6F0F68B8AE894ADFC3C92BB836888E3DB5A940426DBE7BBC5BDD3DDD6F5123627D1CE6FD1845CC66A920094391BE783069CB05746C0A55DAFC869FDAF0A08F81099E4F4CD07D05C7269C538C341CF1EDB94114B8CD97B44214EA58EEDB93FAB772013A1D77A08B9208082F9617A6CFE39B56F0078406C6267ABF5CF1078C49B1AB9B60EA1451351CF889EF72D7D696B23B22F753B28979AF10237B579A350FA5596A3B22244FA91402562AE530E814EF19A9E3448F465F78C16220DE0663F7B97C7F0EF1629E2F64A76B21BB695A3DE505B22B09B3459A3CE2180424BD67C8482EBD5EBC8128F98634EEE8707001101000189021F041801020009050252FAA2FA021B0C000A09107BAF404C2DFAB4AE050B1000C1434E8CC0D6F8E60E2FB091AA5EA04E7612B29D3823E09914F704DE1835A7B202D3F619183BD3A16439BFA31A6AF342672E8F59184333C4F56D18AF3B7CE8326F655F7C8DD1D4B38A1964E6A4D7550D159CE1B5EC44BC2091B1097CABE724C0E8C4942C2CF82672E3F209322270D133313CF601E07756B705946A45235DAF7294BCD34292D989EFDFDA2F46AF0AEAEC72F55DC6B2940C7C6A409B7FAD3354D5CA30C3E4EE29F9218A56EF8D7FBA2A7BB8E6304110A21DF0C847C4B761CDE408CE156D53091535A800C1C522CA33C71105B11550A145FD0E41B464146B46D46F08DFAEF9B03D313D54A1E4A82E8749895AB78521DAA8E66EEF6F7B17A0CA4B4CBFCB937713B9806269556EBD88AE87996EFAC0846ACBA0D3412FC0A5E90923C261CD443E4D6C1AE93D83166937C5F606A14FD73DB4919A0ED416D4B3163420F57FACCE9C9347BD5501BE3FC830472B64068E5FF5B09E7425030625246720D21608DEE829F84E8365527F764C91DA93372C72AA4054B458104CAFC2BDCED63DC80F36E7BD4BE0D3A19E20E3FED90F80F9E1584853B971B8E847C27027123B9AA19C3E90B41B3A643D3D5BE2FC134ADA8396D072D37E7101B64CE83E1802D0D5DDA9150B6C21564987950C9601FC2147F139C7A9906640A0883981B452F25AF7A0F32FAA2148ECDD9B04B93AFCED00F11AA0E6695C2F92676B8DB9E93172FD7779B9020D04530B05A7011000CAA1A8FF4BF9D0F0AC9EDBCA3B4D26E3E569DFEA04341F3E6ACE23AE5D87D62C2600DFF10B106144A1B52FF8B695A590D65C681F69DEE454800C235160EBE3FC1436193E1278D56C86E2BBB2187BEAAC1E1D04D40A392B1457471D10A2B6BF39CDF35D1A090A9406BCB06BDEF83A12A490C5E17D68884AD2686042669E2B458AD3CC0377DDA9C58D7070CE29A53E0E7C876D61B29A2DE2A9D73F914D0FF3B0E35E2ED361B60A8C3C3D4C7E77E17A939283BFDA2EC5725A2BFAAC18C6A64ACBEC776760D7086EA42BD93031E8B59FB8DFEFF77E5F80DBEB84ADE74B3A6F9E4D0F3140A8D0F576ED00548883C85271AA7F2450D1061F56CB839786038861D5A2473B7F58EBC00D2BB9EFEB1A2DF612A7B9087C326FBB08F2879102253316784272967A886089D61D5AB0FDB33737D35F27C2886ABB4D4E88F541D0BBAD04AEF7BD3ED66A1282B762BD6F8EEDC3760773B157C1A2D4E4586E43B28879C54E7599F9A34E1524E6E7F9B8EA13CC5A2DF5C1920AF74833EDDEC8EB9A8BE33196702DFD656D81ACBBFE3A10DA882EAA3065D9C9476C0A7B66C15D0063CB7AD1A2EB31537CB443F21B81642436943FE6C45E6AF9C2B595D4DFCB64B83F2CA6B4DD536726C6EC4761A340C18E32B2D7210640B9AB1D8E2165C0DD38BC9FD9DB6A30B380DF08C3F10002A6636FDC79CD2312B606F5F116AC665618A56BBE46C494FC7E23C7001101000189043E0418010200090502530B05A7021B02022909107BAF404C2DFAB4AEC15D200419010200060502530B05A7000A091024A26BAD7F29429187700FFE30ED1B7C96B3846AC7B363F9602D2886F7913A9C451C31E043AD75597024D460B59E6A60A6EE3D58E656901237A2465F8402169A816B38170AF550284EB420B7E827386D66852D68125A27FA6770F139EE7FCAEF43000673B7C7D168614877603C875AD593E333AE9237DB77065FB8375CE98FA1BF7FB1733034AAC61F1D23A3EFF8665702C10968C7991458F88D151B3448C7D9334059431A63D30A9C8E636A99D88DA8DB04CB8C64F1183AC873FF0942EF9555B6B3F192AD5F221AC9737F875CCAE21E88EC45CB35E40C0FF1AAF0A8FE44876D93A930A03CC4846A29102C956F39F2AC5808CCBCD7F4868A8E8E8B9A66EA18C275CEF9C371AB0592796ED57D757A3BAB31FF8E3887F6041E61BDA433E7D68CB2D5F28E81F57843D5032D73BF67119C137FC4CE8BEF4F705D690E47A530B1A85B8B6A09A4AE16A2973C11D69031B89BE92B0751DB7FE74F6F1C219C8B93E5C68EC1403856DF28E96E27737A7FB9C80F6EE9EC485A0609DC4EB8DF444F61C76A97F32ADFA2D8B4784DF3ABA4DE1B57894B9CF89934A143451308D73CF79ECC8BF382B8A34F24DC335238D8353767B363F5432D9A81C84F7D2FAB6E36E7188FA911120A905C67342A996251EBECAC13BD543A9B3C2C063AE294FDD15C66D5DD9224F3E936325F525700F2129D0B31CE8CCD4EBA5DEDB89F0A2BFC0C43E732F695161E4F33CE5DED14B1E98654547B110FFF7CBC2BA513721A96DD18964635069343FA8EEF4D492BFA55C930F9C78DF1F7454F1BDD40F4B04BDE9F9B9A9923A303D96D0CBFA361921AFEF13AED098D0CF70E84C0DDB20C58821351D2359B131671AAF5D2484717A4CAF385DB0CC19FBC37A3FC04F4F387D6934C1E84B9C1291231A14F69A1BF6708875C7DE00E3EFE3C7855A2459C96245C5F0D21FC00E87A0C18F80A3B79C0E28EA27493309C535254421BE7CDFBEFB5B44DAEA56B6859430FCCBEE766048F891AD5CB503866B98E521ED69B37E4165012A45E29836E2A0380728C1108E4C8A32EA186E1A855F78DA5506B6CF86DB888A87FAB6E15A90E3416469522DF5BD8872D729B35E6D82C974CD80076C26008015AB216C83FAF64E488F07D2BD01F51B0963F87BE0AB8392B442227BF7215148038B0C55189024D7C1B032DB1B3C56C66953E530C5B323634FC584A476CAD285EF1108011D14D9D180A75A9DFC936AFC7EF9E6C3F3CFEDD894894CE60358E7156B3A65ED7644DEA343A133F5D4DE4D33B74281086A0C20515AC4151CFED93C56DD574E578FDEE72C4115C25CAEC5EAD97C147F27F4EAE67FEFFEA0DC1CDF5D636AC331CB74DF477C9C3B3706F9DAF50C2E13AC8DE8CC9DD3C79E59EC779EE489D915CF22FDC53E3B3C7710FE8368DF11B9ACDF5F3CAE1F43CB7312E5E9F57F248692B3681CBA3E49207878FD33ED2A47CE9CE9B4E4A6EFD8F0AD2CD" - -func checkGPGSig(fileName string, sigFileName string) error { - - // Get a Reader for the signature file - sigFile, err := os.Open(sigFileName) - if err != nil { - return err - } - defer sigFile.Close() - - // Get a Reader for the signature file - file, err := os.Open(fileName) - if err != nil { - return err - } - defer file.Close() - - publicKeyBin, err := hex.DecodeString(publicKeyHex) - if err != nil { - return err - } - - keyring, _ := openpgp.ReadKeyRing(bytes.NewReader(publicKeyBin)) - - _, err = openpgp.CheckDetachedSignature(keyring, file, sigFile) - - return err -} - -// DownloadPackageIndex will download a package_index file -func (t *Tools) DownloadPackageIndex(indexFile, signatureFile string) error { - // Fetch the index - resp, err := http.Get(t.IndexURL) - if err != nil { - return err - } - defer resp.Body.Close() - - // Read the body - body, err := io.ReadAll(resp.Body) - if err != nil { - return err - } - - // Fetch the signature - signature, err := http.Get(t.IndexURL + ".sig") - if err != nil { - return err - } - defer signature.Body.Close() - - // Read the body - signatureBody, err := io.ReadAll(signature.Body) - if err != nil { - return err - } - os.WriteFile(indexFile, body, 0644) - os.WriteFile(signatureFile, signatureBody, 0644) - - t.LastRefresh = time.Now() - - return nil -} - func pathExists(path string) bool { _, err := os.Stat(path) if err == nil { @@ -147,23 +78,7 @@ func pathExists(path string) bool { // if it already exists. func (t *Tools) Download(pack, name, version, behaviour string) error { - indexFile := path.Join(t.Directory, "package_index.json") - signatureFile := path.Join(t.Directory, "package_index.json.sig") - - if _, err := os.Stat(path.Join(t.Directory, "package_index.json")); err != nil || time.Since(t.LastRefresh) > 1*time.Hour { - // Download the file again and save it - err = t.DownloadPackageIndex(indexFile, signatureFile) - if err != nil { - return err - } - } - - err := checkGPGSig(indexFile, signatureFile) - if err != nil { - return err - } - - body, err := os.ReadFile(indexFile) + body, err := t.index.Read() if err != nil { return err } @@ -175,7 +90,7 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { correctTool, correctSystem := findTool(pack, name, version, data) if correctTool.Name == "" || correctSystem.URL == "" { - t.Logger("We couldn't find a tool with the name " + name + " and version " + version + " packaged by " + pack) + t.logger("We couldn't find a tool with the name " + name + " and version " + version + " packaged by " + pack) return nil } @@ -183,21 +98,17 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { // Check if it already exists if behaviour == "keep" { - t.mutex.RLock() - location, ok := t.installed[key] - t.mutex.RUnlock() + location, ok := t.getMapValue(key) if ok && pathExists(location) { // overwrite the default tool with this one - t.mutex.Lock() - t.installed[correctTool.Name] = location - t.mutex.Unlock() - t.Logger("The tool is already present on the system") + t.setMapValue(correctTool.Name, location) + t.logger("The tool is already present on the system") return t.writeMap() } } // Download the tool - t.Logger("Downloading tool " + name + " from " + correctSystem.URL) + t.logger("Downloading tool " + name + " from " + correctSystem.URL) resp, err := http.Get(correctSystem.URL) if err != nil { return err @@ -219,9 +130,9 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { } // Decompress - t.Logger("Unpacking tool " + name) + t.logger("Unpacking tool " + name) - location := path.Join(dir(), pack, correctTool.Name, correctTool.Version) + location := t.directory.Join(pack, correctTool.Name, correctTool.Version).String() err = os.RemoveAll(location) if err != nil { @@ -235,18 +146,18 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { switch srcType { case "application/zip": - location, err = extractZip(t.Logger, body, location) + location, err = extractZip(t.logger, body, location) case "application/x-bz2": case "application/octet-stream": - location, err = extractBz2(t.Logger, body, location) + location, err = extractBz2(t.logger, body, location) case "application/x-gzip": - location, err = extractTarGz(t.Logger, body, location) + location, err = extractTarGz(t.logger, body, location) default: return errors.New("Unknown extension for file " + correctSystem.URL) } if err != nil { - t.Logger("Error extracting the archive: " + err.Error()) + t.logger("Error extracting the archive: " + err.Error()) return err } @@ -256,15 +167,13 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { } // Ensure that the files are executable - t.Logger("Ensure that the files are executable") + t.logger("Ensure that the files are executable") // Update the tool map - t.Logger("Updating map with location " + location) + t.logger("Updating map with location " + location) - t.mutex.Lock() - t.installed[name] = location - t.installed[name+"-"+correctTool.Version] = location - t.mutex.Unlock() + t.setMapValue(name, location) + t.setMapValue(name+"-"+correctTool.Version, location) return t.writeMap() } @@ -560,11 +469,11 @@ func (t *Tools) installDrivers(location string) error { preamble = "./" } if _, err := os.Stat(filepath.Join(location, "post_install"+extension)); err == nil { - t.Logger("Installing drivers") + t.logger("Installing drivers") ok := MessageBox("Installing drivers", "We are about to install some drivers needed to use Arduino/Genuino boards\nDo you want to continue?") if ok == OkPressed { os.Chdir(location) - t.Logger(preamble + "post_install" + extension) + t.logger(preamble + "post_install" + extension) oscmd := exec.Command(preamble + "post_install" + extension) if OS != "linux" { // spawning a shell could be the only way to let the user type his password diff --git a/tools/hidefile_linux.go b/tools/shell_default.go similarity index 96% rename from tools/hidefile_linux.go rename to tools/shell_default.go index b9f04e4c9..24a607a5d 100644 --- a/tools/hidefile_linux.go +++ b/tools/shell_default.go @@ -13,16 +13,14 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +//go:build !windows + package tools import ( "os/exec" ) -func hideFile(path string) { - -} - // TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(_ *exec.Cmd) { } diff --git a/tools/hidefile_windows.go b/tools/shell_windows.go similarity index 88% rename from tools/hidefile_windows.go rename to tools/shell_windows.go index 632b87b34..55f665dea 100644 --- a/tools/hidefile_windows.go +++ b/tools/shell_windows.go @@ -21,13 +21,6 @@ import ( "unsafe" ) -func hideFile(path string) { - cpath, cpathErr := syscall.UTF16PtrFromString(path) - if cpathErr != nil { - } - syscall.SetFileAttributes(cpath, syscall.FILE_ATTRIBUTE_HIDDEN) -} - // TellCommandNotToSpawnShell will now spawn a shell func TellCommandNotToSpawnShell(oscmd *exec.Cmd) { oscmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} diff --git a/tools/tools.go b/tools/tools.go index e2ad321c5..ac3e6109b 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -17,66 +17,89 @@ package tools import ( "encoding/json" - "fmt" - "os" - "os/user" - "path" "path/filepath" "strings" "sync" - "time" + "github.com/arduino/arduino-create-agent/index" + "github.com/arduino/go-paths-helper" "github.com/xrash/smetrics" ) // Tools handle the tools necessary for an upload on a board. // It provides a means to download a tool from the arduino servers. // -// - *Directory* contains the location where the tools are downloaded. -// - *IndexURL* contains the url where the tools description is contained. -// - *Logger* is a StdLogger used for reporting debug and info messages -// - *installed* contains a map of the tools and their exact location +// - *directory* contains the location where the tools are downloaded. +// - *indexURL* contains the url where the tools description is contained. +// - *logger* is a StdLogger used for reporting debug and info messages +// - *installed* contains a map[string]string of the tools installed and their exact location // // Usage: -// You have to instantiate the struct by passing it the required parameters: -// _tools := tools.Tools{ -// Directory: "/home/user/.arduino-create", -// IndexURL: "https://downloads.arduino.cc/packages/package_index.json" -// Logger: log.Logger -// } +// You have to call the New() function passing it the required parameters: +// +// index = index.Init("https://downloads.arduino.cc/packages/package_staging_index.json", dataDir) +// tools := tools.New(dataDir, index, logger) // Tools will represent the installed tools type Tools struct { - Directory string - IndexURL string - LastRefresh time.Time - Logger func(msg string) - installed map[string]string - mutex sync.RWMutex + directory *paths.Path + index *index.Resource + logger func(msg string) + installed map[string]string + mutex sync.RWMutex +} + +// New will return a Tool object, allowing the caller to execute operations on it. +// The New functions accept the directory to use to host the tools, +// an index (used to download the tools), +// and a logger to log the operations +func New(directory *paths.Path, index *index.Resource, logger func(msg string)) *Tools { + t := &Tools{ + directory: directory, + index: index, + logger: logger, + installed: map[string]string{}, + mutex: sync.RWMutex{}, + } + _ = t.readMap() + return t } -// Init creates the Installed map and populates it from a file in .arduino-create -func (t *Tools) Init(APIlevel string) { - createDir(t.Directory) +func (t *Tools) setMapValue(key, value string) { t.mutex.Lock() - t.installed = make(map[string]string) + t.installed[key] = value t.mutex.Unlock() - t.readMap() +} + +func (t *Tools) getMapValue(key string) (string, bool) { + t.mutex.RLock() + defer t.mutex.RUnlock() + value, ok := t.installed[key] + return value, ok +} + +// writeMap() writes installed map to the json file "installed.json" +func (t *Tools) writeMap() error { t.mutex.RLock() - if t.installed["apilevel"] != APIlevel { - t.mutex.RUnlock() - // wipe the folder and reinitialize the data - os.RemoveAll(t.Directory) - createDir(t.Directory) - t.mutex.Lock() - t.installed = make(map[string]string) - t.installed["apilevel"] = APIlevel - t.mutex.Unlock() - t.writeMap() - t.readMap() - } else { - t.mutex.RUnlock() + defer t.mutex.RUnlock() + b, err := json.Marshal(t.installed) + if err != nil { + return err + } + filePath := t.directory.Join("installed.json") + return filePath.WriteFile(b) +} + +// readMap() reads the installed map from json file "installed.json" +func (t *Tools) readMap() error { + t.mutex.Lock() + defer t.mutex.Unlock() + filePath := t.directory.Join("installed.json") + b, err := filePath.ReadFile() + if err != nil { + return err } + return json.Unmarshal(b, &t.installed) } // GetLocation extracts the toolname from a command like @@ -88,22 +111,16 @@ func (t *Tools) GetLocation(command string) (string, error) { var ok bool // Load installed - t.mutex.RLock() - fmt.Println(t.installed) - t.mutex.RUnlock() - err := t.readMap() if err != nil { return "", err } - t.mutex.RLock() - defer t.mutex.RUnlock() - fmt.Println(t.installed) - // use string similarity to resolve a runtime var with a "similar" map element - if location, ok = t.installed[command]; !ok { + if location, ok = t.getMapValue(command); !ok { maxSimilarity := 0.0 + t.mutex.RLock() + defer t.mutex.RUnlock() for i, candidate := range t.installed { similarity := smetrics.Jaro(command, i) if similarity > 0.8 && similarity > maxSimilarity { @@ -114,38 +131,3 @@ func (t *Tools) GetLocation(command string) (string, error) { } return filepath.ToSlash(location), nil } - -// writeMap() writes installed map to the json file "installed.json" -func (t *Tools) writeMap() error { - t.mutex.Lock() - b, err := json.Marshal(t.installed) - defer t.mutex.Unlock() - if err != nil { - return err - } - filePath := path.Join(dir(), "installed.json") - return os.WriteFile(filePath, b, 0644) -} - -// readMap() reads the installed map from json file "installed.json" -func (t *Tools) readMap() error { - t.mutex.Lock() - defer t.mutex.Unlock() - filePath := path.Join(dir(), "installed.json") - b, err := os.ReadFile(filePath) - if err != nil { - return err - } - return json.Unmarshal(b, &t.installed) -} - -func dir() string { - usr, _ := user.Current() - return path.Join(usr.HomeDir, ".arduino-create") -} - -// createDir creates the directory where the tools will be stored -func createDir(directory string) { - os.Mkdir(directory, 0777) - hideFile(directory) -} diff --git a/v2/http.go b/v2/http.go index 3e9c00965..bcfbc82aa 100644 --- a/v2/http.go +++ b/v2/http.go @@ -19,12 +19,10 @@ import ( "context" "encoding/json" "net/http" - "path/filepath" - indexessvr "github.com/arduino/arduino-create-agent/gen/http/indexes/server" toolssvr "github.com/arduino/arduino-create-agent/gen/http/tools/server" - indexessvc "github.com/arduino/arduino-create-agent/gen/indexes" toolssvc "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/sirupsen/logrus" goahttp "goa.design/goa/v3/http" @@ -33,7 +31,7 @@ import ( ) // Server is the actual server -func Server(home string) http.Handler { +func Server(directory string, index *index.Resource) http.Handler { mux := goahttp.NewMuxer() // Instantiate logger @@ -41,22 +39,9 @@ func Server(home string) http.Handler { logger.SetLevel(logrus.DebugLevel) logAdapter := LogAdapter{Logger: logger} - // Mount indexes - indexesSvc := pkgs.Indexes{ - Log: logger, - Folder: filepath.Join(home, "indexes"), - } - indexesEndpoints := indexessvc.NewEndpoints(&indexesSvc) - indexesServer := indexessvr.New(indexesEndpoints, mux, goahttp.RequestDecoder, - goahttp.ResponseEncoder, errorHandler(logger), nil) - indexessvr.Mount(mux, indexesServer) - // Mount tools - toolsSvc := pkgs.Tools{ - Folder: home, - Indexes: &indexesSvc, - } - toolsEndpoints := toolssvc.NewEndpoints(&toolsSvc) + toolsSvc := pkgs.New(index, directory) + toolsEndpoints := toolssvc.NewEndpoints(toolsSvc) toolsServer := toolssvr.New(toolsEndpoints, mux, CustomRequestDecoder, goahttp.ResponseEncoder, errorHandler(logger), nil) toolssvr.Mount(mux, toolsServer) diff --git a/v2/pkgs/indexes.go b/v2/pkgs/indexes.go deleted file mode 100644 index ceb5eb65b..000000000 --- a/v2/pkgs/indexes.go +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package pkgs - -import ( - "context" - b64 "encoding/base64" - "encoding/json" - "net/url" - "os" - "path/filepath" - "strings" - - "github.com/arduino/arduino-create-agent/gen/indexes" - "github.com/sirupsen/logrus" - "go.bug.st/downloader/v2" -) - -// Indexes is a client that implements github.com/arduino/arduino-create-agent/gen/indexes.Service interface -type Indexes struct { - Log *logrus.Logger - Folder string -} - -// Add downloads the index file found at the url contained in the payload, and saves it in the Indexes Folder. -// If called with an already existing index, it overwrites the file. -// It can fail if the payload is not defined, if it contains an invalid url. -func (c *Indexes) Add(ctx context.Context, payload *indexes.IndexPayload) (*indexes.Operation, error) { - // Parse url - indexURL, err := url.Parse(payload.URL) - if err != nil { - return nil, indexes.MakeInvalidURL(err) - } - - // Download tmp file - filename := b64.StdEncoding.EncodeToString([]byte(url.PathEscape(payload.URL))) - path := filepath.Join(c.Folder, filename+".tmp") - d, err := downloader.Download(path, indexURL.String()) - if err != nil { - return nil, err - } - err = d.Run() - if err != nil { - return nil, err - } - - // Move tmp file - err = os.Rename(path, filepath.Join(c.Folder, filename)) - if err != nil { - return nil, err - } - - return &indexes.Operation{Status: "ok"}, nil -} - -// Get reads the index file from the Indexes Folder, unmarshaling it -func (c *Indexes) Get(ctx context.Context, uri string) (index Index, err error) { - filename := b64.StdEncoding.EncodeToString([]byte(url.PathEscape(uri))) - path := filepath.Join(c.Folder, filename) - data, err := os.ReadFile(path) - if err != nil { - return index, err - } - - err = json.Unmarshal(data, &index) - if err != nil { - return index, err - } - - return index, nil -} - -// List reads from the Indexes Folder and returns the indexes that have been downloaded -func (c *Indexes) List(context.Context) ([]string, error) { - // Create folder if it doesn't exist - _ = os.MkdirAll(c.Folder, 0755) - // Read files - files, err := os.ReadDir(c.Folder) - - if err != nil { - return nil, err - } - - res := []string{} - for _, file := range files { - // Select only files that begin with http - decodedFileName, _ := b64.URLEncoding.DecodeString(file.Name()) - fileName := string(decodedFileName) - if !strings.HasPrefix(fileName, "http") { - continue - } - path, err := url.PathUnescape(fileName) - if err != nil { - c.Log.Warn(err) - } - res = append(res, path) - } - - return res, nil -} - -// Remove deletes the index file from the Indexes Folder -func (c *Indexes) Remove(ctx context.Context, payload *indexes.IndexPayload) (*indexes.Operation, error) { - filename := b64.StdEncoding.EncodeToString([]byte(url.PathEscape(payload.URL))) - err := os.RemoveAll(filepath.Join(c.Folder, filename)) - if err != nil { - return nil, err - } - return &indexes.Operation{Status: "ok"}, nil -} diff --git a/v2/pkgs/indexes_test.go b/v2/pkgs/indexes_test.go deleted file mode 100644 index 796a18a5a..000000000 --- a/v2/pkgs/indexes_test.go +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package pkgs_test - -import ( - "context" - "net/http" - "net/http/httptest" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/arduino/arduino-create-agent/gen/indexes" - "github.com/arduino/arduino-create-agent/v2/pkgs" -) - -// TestIndexes performs a series of operations about indexes, ensuring it behaves as expected. -func TestIndexes(t *testing.T) { - // Use local file as index - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - http.ServeFile(w, r, "testdata/package_index.json") - })) - defer ts.Close() - - // Initialize indexes with a temp folder - tmp, err := os.MkdirTemp("", "") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmp) - - // Create extraneous folder in temp folder - os.MkdirAll(filepath.Join(tmp, "arduino"), 0755) - - service := pkgs.Indexes{ - Folder: tmp, - } - - ctx := context.Background() - - // List indexes, they should be 0 - list, err := service.List(ctx) - if err != nil { - t.Fatal(err) - } - if len(list) != 0 { - t.Fatalf("expected %d == %d (%s)", len(list), 0, "len(list)") - } - - // Add a faulty index - _, err = service.Add(ctx, &indexes.IndexPayload{URL: ":"}) - if err == nil || !strings.Contains(err.Error(), "missing protocol scheme") { - t.Fatalf("expected [%v] == [%v] (%s)", err, "missing protocol scheme", "err") - } - - // Add a new index - _, err = service.Add(ctx, &indexes.IndexPayload{URL: ts.URL}) - if err != nil { - t.Fatal(err) - } - - // List indexes, they should be 1 - list, err = service.List(ctx) - if err != nil { - t.Fatal(err) - } - if len(list) != 1 { - t.Fatalf("expected %d == %d (%s)", len(list), 1, "len(list)") - } - if list[0] != ts.URL { - t.Fatalf("expected %s == %s (%s)", list[0], "downloads.arduino.cc/packages/package_index.json", "list[0]") - } - - // Remove the index - _, err = service.Remove(ctx, &indexes.IndexPayload{URL: ts.URL}) - if err != nil { - t.Fatal(err) - } - - // List indexes, they should be 0 - list, err = service.List(ctx) - if err != nil { - t.Fatal(err) - } - if len(list) != 0 { - t.Fatalf("expected %d == %d (%s)", len(list), 0, "len(list)") - } -} diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index 2cb92553c..f9636f077 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -31,6 +31,7 @@ import ( "strings" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/utilities" "github.com/codeclysm/extract/v3" ) @@ -47,36 +48,39 @@ import ( // └── 1.7.0 // └── bossac // -// It requires an Indexes client to list and read package index files: use the Indexes struct +// It requires an Index Resource to search for tools type Tools struct { - Indexes interface { - List(context.Context) ([]string, error) - Get(context.Context, string) (Index, error) + index *index.Resource + folder string +} + +// New will return a Tool object, allowing the caller to execute operations on it. +// The New function will accept an index as parameter (used to download the indexes) +// and a folder used to download the indexes +func New(index *index.Resource, folder string) *Tools { + return &Tools{ + index: index, + folder: folder, } - Folder string } // Available crawles the downloaded package index files and returns a list of tools that can be installed. -func (c *Tools) Available(ctx context.Context) (res tools.ToolCollection, err error) { - list, err := c.Indexes.List(ctx) +func (t *Tools) Available(ctx context.Context) (res tools.ToolCollection, err error) { + body, err := t.index.Read() if err != nil { return nil, err } - for _, url := range list { - index, err := c.Indexes.Get(ctx, url) - if err != nil { - return nil, err - } + var index Index + json.Unmarshal(body, &index) - for _, packager := range index.Packages { - for _, tool := range packager.Tools { - res = append(res, &tools.Tool{ - Packager: packager.Name, - Name: tool.Name, - Version: tool.Version, - }) - } + for _, packager := range index.Packages { + for _, tool := range packager.Tools { + res = append(res, &tools.Tool{ + Packager: packager.Name, + Name: tool.Name, + Version: tool.Version, + }) } } @@ -84,16 +88,16 @@ func (c *Tools) Available(ctx context.Context) (res tools.ToolCollection, err er } // Installed crawles the Tools Folder and finds the installed tools. -func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { +func (t *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { res := tools.ToolCollection{} // Find packagers - packagers, err := os.ReadDir(c.Folder) + packagers, err := os.ReadDir(t.folder) if err != nil { if !strings.Contains(err.Error(), "no such file") { return nil, err } - err = os.MkdirAll(c.Folder, 0755) + err = os.MkdirAll(t.folder, 0755) if err != nil { return nil, err } @@ -105,14 +109,14 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { } // Find tools - toolss, err := os.ReadDir(filepath.Join(c.Folder, packager.Name())) + toolss, err := os.ReadDir(filepath.Join(t.folder, packager.Name())) if err != nil { return nil, err } for _, tool := range toolss { // Find versions - path := filepath.Join(c.Folder, packager.Name(), tool.Name()) + path := filepath.Join(t.folder, packager.Name(), tool.Name()) versions, err := os.ReadDir(path) if err != nil { continue // we ignore errors because the folders could be dirty @@ -133,7 +137,7 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) { // Install crawles the Index folder, downloads the specified tool, extracts the archive in the Tools Folder. // It checks for the Signature specified in the package index. -func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools.Operation, error) { +func (t *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools.Operation, error) { path := filepath.Join(payload.Packager, payload.Name, payload.Version) //if URL is defined and is signed we verify the signature and override the name, payload, version parameters @@ -142,34 +146,30 @@ func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools if err != nil { return nil, err } - return c.install(ctx, path, *payload.URL, *payload.Checksum) + return t.install(ctx, path, *payload.URL, *payload.Checksum) } - // otherwise we install from the loaded indexes - list, err := c.Indexes.List(ctx) + // otherwise we install from the default index + body, err := t.index.Read() if err != nil { return nil, err } - for _, url := range list { - index, err := c.Indexes.Get(ctx, url) - if err != nil { - return nil, err - } + var index Index + json.Unmarshal(body, &index) - for _, packager := range index.Packages { - if packager.Name != payload.Packager { - continue - } + for _, packager := range index.Packages { + if packager.Name != payload.Packager { + continue + } - for _, tool := range packager.Tools { - if tool.Name == payload.Name && - tool.Version == payload.Version { + for _, tool := range packager.Tools { + if tool.Name == payload.Name && + tool.Version == payload.Version { - sys := tool.GetFlavourCompatibleWith(runtime.GOOS, runtime.GOARCH) + sys := tool.GetFlavourCompatibleWith(runtime.GOOS, runtime.GOARCH) - return c.install(ctx, path, sys.URL, sys.Checksum) - } + return t.install(ctx, path, sys.URL, sys.Checksum) } } } @@ -179,7 +179,7 @@ func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools payload.Packager, payload.Name, payload.Version)) } -func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools.Operation, error) { +func (t *Tools) install(ctx context.Context, path, url, checksum string) (*tools.Operation, error) { // Download res, err := http.Get(url) if err != nil { @@ -191,7 +191,7 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools var buffer bytes.Buffer reader := io.TeeReader(res.Body, &buffer) - safePath, err := utilities.SafeJoin(c.Folder, path) + safePath, err := utilities.SafeJoin(t.folder, path) if err != nil { return nil, err } @@ -202,7 +202,7 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools return nil, err } - err = extract.Archive(ctx, reader, c.Folder, rename(path)) + err = extract.Archive(ctx, reader, t.folder, rename(path)) if err != nil { os.RemoveAll(safePath) return nil, err @@ -217,7 +217,7 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools } // Write installed.json for retrocompatibility with v1 - err = writeInstalled(c.Folder, path) + err = writeInstalled(t.folder, path) if err != nil { return nil, err } @@ -226,9 +226,9 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools } // Remove deletes the tool folder from Tools Folder -func (c *Tools) Remove(ctx context.Context, payload *tools.ToolPayload) (*tools.Operation, error) { +func (t *Tools) Remove(ctx context.Context, payload *tools.ToolPayload) (*tools.Operation, error) { path := filepath.Join(payload.Packager, payload.Name, payload.Version) - pathToRemove, err := utilities.SafeJoin(c.Folder, path) + pathToRemove, err := utilities.SafeJoin(t.folder, path) if err != nil { return nil, err } diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index 04198cb2f..44070c686 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -17,15 +17,14 @@ package pkgs_test import ( "context" - "net/http" - "net/http/httptest" "os" "runtime" "strings" "testing" - "github.com/arduino/arduino-create-agent/gen/indexes" + "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/stretchr/testify/require" ) @@ -33,12 +32,6 @@ import ( // TestTools performs a series of operations about tools, ensuring it behaves as expected. // This test depends on the internet so it could fail unexpectedly func TestTools(t *testing.T) { - // Use local file as index - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - http.ServeFile(w, r, "testdata/package_index.json") - })) - defer ts.Close() - // Initialize indexes with a temp folder tmp, err := os.MkdirTemp("", "") if err != nil { @@ -46,31 +39,20 @@ func TestTools(t *testing.T) { } defer os.RemoveAll(tmp) - indexesClient := pkgs.Indexes{ - Folder: tmp, - } + indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + // Instantiate Index + Index := index.Init(indexURL, config.GetDataDir()) - service := pkgs.Tools{ - Folder: tmp, - Indexes: &indexesClient, - } + service := pkgs.New(Index, tmp) ctx := context.Background() - // Add a new index - _, err = indexesClient.Add(ctx, &indexes.IndexPayload{URL: ts.URL}) - if err != nil { - t.Fatal(err) - } - // List available tools available, err := service.Available(ctx) if err != nil { t.Fatal(err) } - if len(available) != 61 { - t.Fatalf("expected %d == %d (%s)", len(available), 61, "len(available)") - } + require.NotEmpty(t, available) // Try to install a non-existent tool _, err = service.Install(ctx, &tools.ToolPayload{}) @@ -138,12 +120,11 @@ func TestEvilFilename(t *testing.T) { // Initialize indexes with a temp folder tmp := t.TempDir() - service := pkgs.Tools{ - Folder: tmp, - Indexes: &pkgs.Indexes{ - Folder: tmp, - }, - } + indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + // Instantiate Index + Index := index.Init(indexURL, config.GetDataDir()) + + service := pkgs.New(Index, tmp) ctx := context.Background() From 4263eb5d394ef9c1420614cbbf8826b38cb7c54b Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:29:34 +0200 Subject: [PATCH 128/233] Replace deprecated openpgp library (#839) * replace deprecated openpgp lib (https://github.com/golang/go/issues/44226) * update license --- .licensed.yml | 33 +++++++++ .../ProtonMail/go-crypto/bitcurves.dep.yml | 62 ++++++++++++++++ .../ProtonMail/go-crypto/brainpool.dep.yml | 62 ++++++++++++++++ .../ProtonMail/go-crypto/eax.dep.yml | 65 +++++++++++++++++ .../go-crypto/internal/byteutil.dep.yml | 62 ++++++++++++++++ .../ProtonMail/go-crypto/ocb.dep.yml | 65 +++++++++++++++++ .../ProtonMail/go-crypto/openpgp.dep.yml | 62 ++++++++++++++++ .../go-crypto/openpgp/aes/keywrap.dep.yml | 62 ++++++++++++++++ .../go-crypto/openpgp/armor.dep.yml | 62 ++++++++++++++++ .../ProtonMail/go-crypto/openpgp/ecdh.dep.yml | 63 ++++++++++++++++ .../go-crypto/openpgp/ecdsa.dep.yml | 63 ++++++++++++++++ .../go-crypto/openpgp/eddsa.dep.yml | 63 ++++++++++++++++ .../go-crypto}/openpgp/elgamal.dep.yml | 10 +-- .../go-crypto}/openpgp/errors.dep.yml | 10 +-- .../openpgp/internal/algorithm.dep.yml | 62 ++++++++++++++++ .../go-crypto/openpgp/internal/ecc.dep.yml | 62 ++++++++++++++++ .../openpgp/internal/encoding.dep.yml | 63 ++++++++++++++++ .../go-crypto}/openpgp/packet.dep.yml | 10 +-- .../ProtonMail/go-crypto}/openpgp/s2k.dep.yml | 13 ++-- .../cloudflare/circl/dh/x25519.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/dh/x448.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/ecc/goldilocks.dep.yml | 71 +++++++++++++++++++ .../cloudflare/circl/internal/conv.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/internal/sha3.dep.yml | 71 +++++++++++++++++++ .../github.com/cloudflare/circl/math.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/math/fp25519.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/math/fp448.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/math/mlsbset.dep.yml | 70 ++++++++++++++++++ .../github.com/cloudflare/circl/sign.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/sign/ed25519.dep.yml | 70 ++++++++++++++++++ .../cloudflare/circl/sign/ed448.dep.yml | 70 ++++++++++++++++++ .../{openpgp.dep.yml => argon2.dep.yml} | 0 .../armor.dep.yml => blake2b.dep.yml} | 0 go.mod | 4 +- go.sum | 35 +++++++++ index/index.go | 4 +- 36 files changed, 1815 insertions(+), 24 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml rename .licenses/arduino-create-agent/go/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/elgamal.dep.yml (91%) rename .licenses/arduino-create-agent/go/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/errors.dep.yml (91%) create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml rename .licenses/arduino-create-agent/go/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/packet.dep.yml (91%) rename .licenses/arduino-create-agent/go/{golang.org/x/crypto => github.com/ProtonMail/go-crypto}/openpgp/s2k.dep.yml (88%) create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml rename .licenses/arduino-create-agent/go/golang.org/x/crypto/{openpgp.dep.yml => argon2.dep.yml} (100%) rename .licenses/arduino-create-agent/go/golang.org/x/crypto/{openpgp/armor.dep.yml => blake2b.dep.yml} (100%) diff --git a/.licensed.yml b/.licensed.yml index 0342e5d49..9615eceeb 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -10,6 +10,39 @@ reviewed: - golang.org/x/net/html - golang.org/x/net/html/atom - golang.org/x/crypto/curve25519 + - github.com/ProtonMail/go-crypto/bitcurves + - github.com/ProtonMail/go-crypto/brainpool + - github.com/ProtonMail/go-crypto/eax + - github.com/ProtonMail/go-crypto/internal/byteutil + - github.com/ProtonMail/go-crypto/ocb + - github.com/ProtonMail/go-crypto/openpgp + - github.com/ProtonMail/go-crypto/openpgp/aes/keywrap + - github.com/ProtonMail/go-crypto/openpgp/armor + - github.com/ProtonMail/go-crypto/openpgp/ecdh + - github.com/ProtonMail/go-crypto/openpgp/ecdsa + - github.com/ProtonMail/go-crypto/openpgp/eddsa + - github.com/ProtonMail/go-crypto/openpgp/elgamal + - github.com/ProtonMail/go-crypto/openpgp/errors + - github.com/ProtonMail/go-crypto/openpgp/internal/algorithm + - github.com/ProtonMail/go-crypto/openpgp/internal/ecc + - github.com/ProtonMail/go-crypto/openpgp/internal/encoding + - github.com/ProtonMail/go-crypto/openpgp/packet + - github.com/ProtonMail/go-crypto/openpgp/s2k + - github.com/cloudflare/circl/dh/x25519 + - github.com/cloudflare/circl/dh/x448 + - github.com/cloudflare/circl/ecc/goldilocks + - github.com/cloudflare/circl/internal/conv + - github.com/cloudflare/circl/internal/sha3 + - github.com/cloudflare/circl/math + - github.com/cloudflare/circl/math/fp25519 + - github.com/cloudflare/circl/math/fp448 + - github.com/cloudflare/circl/math/mlsbset + - github.com/cloudflare/circl/sign + - github.com/cloudflare/circl/sign/ed25519 + - github.com/cloudflare/circl/sign/ed448 + - golang.org/x/crypto/argon2 + - golang.org/x/crypto/blake2b + - golang.org/x/crypto/sha3 # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies/AGPL-3.0/.licensed.yml allowed: diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml new file mode 100644 index 000000000..0f98a84f9 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/bitcurves +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/bitcurves +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml new file mode 100644 index 000000000..511c258cf --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/brainpool +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package brainpool implements Brainpool elliptic curves. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/brainpool +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml new file mode 100644 index 000000000..328cf4b87 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml @@ -0,0 +1,65 @@ +--- +name: github.com/ProtonMail/go-crypto/eax +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: 'Package eax provides an implementation of the EAX (encrypt-authenticate-translate) + mode of operation, as described in Bellare, Rogaway, and Wagner "THE EAX MODE OF + OPERATION: A TWO-PASS AUTHENTICATED-ENCRYPTION SCHEME OPTIMIZED FOR SIMPLICITY AND + EFFICIENCY." In FSE''04, volume 3017 of LNCS, 2004' +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/eax +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml new file mode 100644 index 000000000..510b54ba0 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/internal/byteutil +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/internal/byteutil +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml new file mode 100644 index 000000000..fbbd053c7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml @@ -0,0 +1,65 @@ +--- +name: github.com/ProtonMail/go-crypto/ocb +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: 'Package ocb provides an implementation of the OCB (offset codebook) mode + of operation, as described in RFC-7253 of the IRTF and in Rogaway, Bellare, Black + and Krovetz - OCB: A BLOCK-CIPHER MODE OF OPERATION FOR EFFICIENT AUTHENTICATED + ENCRYPTION (2003).' +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/ocb +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml new file mode 100644 index 000000000..c3d5e0854 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package openpgp implements high level operations on OpenPGP messages. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml new file mode 100644 index 000000000..c6e958703 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/aes/keywrap +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package keywrap is an implementation of the RFC 3394 AES key wrapping algorithm. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml new file mode 100644 index 000000000..62bbd00c7 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/armor +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/armor +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml new file mode 100644 index 000000000..d61afe402 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/ecdh +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package ecdh implements ECDH encryption, suitable for OpenPGP, as specified + in RFC 6637, section 8. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdh +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml new file mode 100644 index 000000000..a8c1b87de --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/ecdsa +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package ecdsa implements ECDSA signature, suitable for OpenPGP, as specified + in RFC 6637, section 5. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdsa +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml new file mode 100644 index 000000000..a9d71bc3e --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/eddsa +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package eddsa implements EdDSA signature, suitable for OpenPGP, as specified + in https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/eddsa +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml rename to .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml index 9ffbd7c1e..a52334808 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml @@ -1,14 +1,14 @@ --- -name: golang.org/x/crypto/openpgp/elgamal -version: v0.13.0 +name: github.com/ProtonMail/go-crypto/openpgp/elgamal +version: v0.0.0-20230923063757-afb1ddc0824c type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," IEEE Transactions on Information Theory, v. -homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/elgamal +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml rename to .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml index 4f7f6c549..261542826 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- -name: golang.org/x/crypto/openpgp/errors -version: v0.13.0 +name: github.com/ProtonMail/go-crypto/openpgp/errors +version: v0.0.0-20230923063757-afb1ddc0824c type: go summary: Package errors contains common error types for the OpenPGP packages. -homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml new file mode 100644 index 000000000..55ea28cba --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/internal/algorithm +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml new file mode 100644 index 000000000..f7f841205 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/internal/ecc +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/ecc +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml new file mode 100644 index 000000000..a347ca5ce --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/internal/encoding +version: v0.0.0-20230923063757-afb1ddc0824c +type: go +summary: Package encoding implements openpgp packet field encodings as specified in + RFC 4880 and 6637. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/encoding +license: other +licenses: +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml rename to .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml index 720495ff8..fa50425cb 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- -name: golang.org/x/crypto/openpgp/packet -version: v0.13.0 +name: github.com/ProtonMail/go-crypto/openpgp/packet +version: v0.0.0-20230923063757-afb1ddc0824c type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. -homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/packet +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml similarity index 88% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml rename to .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml index ae4a2eb3b..ae8d1f505 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml @@ -1,13 +1,14 @@ --- -name: golang.org/x/crypto/openpgp/s2k -version: v0.13.0 +name: github.com/ProtonMail/go-crypto/openpgp/s2k +version: v0.0.0-20230923063757-afb1ddc0824c type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified - in RFC 4800 section 3.7.1. -homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/s2k + in RFC 4800 section 3.7.1, and Argon2 specified in draft-ietf-openpgp-crypto-refresh-08 + section 3.7.1.4. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml new file mode 100644 index 000000000..77b9b07f0 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/dh/x25519 +version: v1.3.3 +type: go +summary: Package x25519 provides Diffie-Hellman functions as specified in RFC-7748. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/dh/x25519 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml new file mode 100644 index 000000000..77717903c --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/dh/x448 +version: v1.3.3 +type: go +summary: Package x448 provides Diffie-Hellman functions as specified in RFC-7748. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/dh/x448 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml new file mode 100644 index 000000000..8a0c15834 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml @@ -0,0 +1,71 @@ +--- +name: github.com/cloudflare/circl/ecc/goldilocks +version: v1.3.3 +type: go +summary: Package goldilocks provides elliptic curve operations over the goldilocks + curve. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/ecc/goldilocks +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml new file mode 100644 index 000000000..06a427973 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/internal/conv +version: v1.3.3 +type: go +summary: +homepage: https://pkg.go.dev/github.com/cloudflare/circl/internal/conv +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml new file mode 100644 index 000000000..2c8ed2788 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml @@ -0,0 +1,71 @@ +--- +name: github.com/cloudflare/circl/internal/sha3 +version: v1.3.3 +type: go +summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and + the SHAKE variable-output-length hash functions defined by FIPS-202. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/internal/sha3 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml new file mode 100644 index 000000000..4eea3a9b5 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/math +version: v1.3.3 +type: go +summary: Package math provides some utility functions for big integers. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/math +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml new file mode 100644 index 000000000..c83e3e700 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/math/fp25519 +version: v1.3.3 +type: go +summary: Package fp25519 provides prime field arithmetic over GF(2^255-19). +homepage: https://pkg.go.dev/github.com/cloudflare/circl/math/fp25519 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml new file mode 100644 index 000000000..b88b20cae --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/math/fp448 +version: v1.3.3 +type: go +summary: Package fp448 provides prime field arithmetic over GF(2^448-2^224-1). +homepage: https://pkg.go.dev/github.com/cloudflare/circl/math/fp448 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml new file mode 100644 index 000000000..e3eccd732 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/math/mlsbset +version: v1.3.3 +type: go +summary: Package mlsbset provides a constant-time exponentiation method with precomputation. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/math/mlsbset +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml new file mode 100644 index 000000000..d1a2b2ddc --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/sign +version: v1.3.3 +type: go +summary: Package sign provides unified interfaces for signature schemes. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/sign +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml new file mode 100644 index 000000000..00dee3983 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/sign/ed25519 +version: v1.3.3 +type: go +summary: Package ed25519 implements Ed25519 signature scheme as described in RFC-8032. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/sign/ed25519 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml new file mode 100644 index 000000000..fbfdd35c6 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml @@ -0,0 +1,70 @@ +--- +name: github.com/cloudflare/circl/sign/ed448 +version: v1.3.3 +type: go +summary: Package ed448 implements Ed448 signature scheme as described in RFC-8032. +homepage: https://pkg.go.dev/github.com/cloudflare/circl/sign/ed448 +license: other +licenses: +- sources: circl@v1.3.3/LICENSE + text: | + Copyright (c) 2019 Cloudflare. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Cloudflare nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + ======================================================================== + + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: circl@v1.3.3/README.md + text: The project is licensed under the [BSD-3-Clause License](./LICENSE). +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml similarity index 100% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml similarity index 100% rename from .licenses/arduino-create-agent/go/golang.org/x/crypto/openpgp/armor.dep.yml rename to .licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml diff --git a/go.mod b/go.mod index 16f74d6a7..674d01282 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/arduino/arduino-create-agent go 1.20 require ( + github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e github.com/arduino/go-paths-helper v1.9.2 @@ -23,7 +24,6 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.13.1 - golang.org/x/crypto v0.13.0 golang.org/x/sys v0.12.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -32,6 +32,7 @@ require ( github.com/AnatolyRugalev/goregen v0.1.0 // indirect github.com/bytedance/sonic v1.9.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/cloudflare/circl v1.3.3 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/davidmz/go-pageant v1.0.2 // indirect @@ -79,6 +80,7 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.3.0 // indirect + golang.org/x/crypto v0.13.0 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.15.0 // indirect golang.org/x/text v0.13.0 // indirect diff --git a/go.sum b/go.sum index b05dfb663..b5f468c10 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBWpuJGYfE= github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= +github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= +github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZKpY1VU0VTxOv+jV6NVgJEZ/hMBVs= github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= @@ -8,12 +10,15 @@ github.com/arduino/go-paths-helper v1.9.2 h1:omR8DPTL4nbUCWfGey5D+e3WvWfA2zEgoM6 github.com/arduino/go-paths-helper v1.9.2/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= +github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= @@ -166,6 +171,7 @@ github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.13.1 h1:JRWJs1GSD5WWPvGq7Ru68au7BcxG+cA7fWCi/q4ONq0= @@ -177,9 +183,14 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -187,9 +198,15 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -197,22 +214,40 @@ golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/index/index.go b/index/index.go index 6ec0a4bb7..8e9c01191 100644 --- a/index/index.go +++ b/index/index.go @@ -25,8 +25,8 @@ import ( "path" "time" + "github.com/ProtonMail/go-crypto/openpgp" "github.com/arduino/go-paths-helper" - "golang.org/x/crypto/openpgp" ) // Resource represent the index of the system @@ -129,7 +129,7 @@ func checkGPGSig(signed, signature io.Reader) error { } keyring, _ := openpgp.ReadKeyRing(bytes.NewReader(publicKeyBin)) - _, err = openpgp.CheckDetachedSignature(keyring, signed, signature) + _, err = openpgp.CheckDetachedSignature(keyring, signed, signature, nil) return err } From 5cfd4af6e13a94258359193d4ac98fd764fa0608 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:43:50 +0200 Subject: [PATCH 129/233] Bump golang.org/x/crypto from 0.13.0 to 0.14.0 (#842) * Bump golang.org/x/crypto from 0.13.0 to 0.14.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.13.0 to 0.14.0. - [Commits](https://github.com/golang/crypto/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/golang.org/x/crypto/argon2.dep.yml | 12 ++++++------ .../go/golang.org/x/crypto/blake2b.dep.yml | 13 +++++++------ .../go/golang.org/x/crypto/blowfish.dep.yml | 6 +++--- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +++--- .../go/golang.org/x/crypto/curve25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ed25519.dep.yml | 6 +++--- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh.dep.yml | 6 +++--- .../go/golang.org/x/crypto/ssh/agent.dep.yml | 6 +++--- .../x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 6 +++--- .../go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 4 ++-- go.sum | 10 +++++----- 13 files changed, 47 insertions(+), 46 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml index f45d4db62..28d39dd1e 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml @@ -1,12 +1,12 @@ --- -name: golang.org/x/crypto/openpgp -version: v0.13.0 +name: golang.org/x/crypto/argon2 +version: v0.14.0 type: go -summary: Package openpgp implements high level operations on OpenPGP messages. -homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp +summary: Package argon2 implements the key derivation function Argon2. +homepage: https://pkg.go.dev/golang.org/x/crypto/argon2 license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml index 58a3bee8c..0676e87b8 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml @@ -1,12 +1,13 @@ --- -name: golang.org/x/crypto/openpgp/armor -version: v0.13.0 +name: golang.org/x/crypto/blake2b +version: v0.14.0 type: go -summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. -homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor +summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 + and the extendable output function (XOF) BLAKE2Xb. +homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml index ce055338f..673b5ea27 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/blowfish -version: v0.13.0 +version: v0.14.0 type: go summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index e093a0c85..cc24bc1f5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.13.0 +version: v0.14.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml index 09e0223bf..a3189b4d1 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/curve25519 -version: v0.13.0 +version: v0.14.0 type: go summary: Package curve25519 provides an implementation of the X25519 function, which performs scalar multiplication on the elliptic curve known as Curve25519. homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519 license: other licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml index bbdbb22e0..114e59a21 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ed25519 -version: v0.13.0 +version: v0.14.0 type: go summary: Package ed25519 implements the Ed25519 signature algorithm. homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index bb010c523..a402def28 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.13.0 +version: v0.14.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml index 38e6660ea..1c44d2ffc 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh -version: v0.13.0 +version: v0.14.0 type: go summary: Package ssh implements an SSH client and server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml index acd412865..f6d974982 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/ssh/agent -version: v0.13.0 +version: v0.14.0 type: go summary: Package agent implements the ssh-agent protocol, and provides both a client and a server. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml index 9c866600e..d1df2f193 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.13.0 +version: v0.14.0 type: go summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf license: bsd-3-clause licenses: -- sources: crypto@v0.13.0/LICENSE +- sources: crypto@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.13.0/PATENTS +- sources: crypto@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 30e043d47..06b6e11b3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.12.0 +version: v0.13.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.12.0/LICENSE +- sources: sys@v0.13.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.12.0/PATENTS +- sources: sys@v0.13.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 674d01282..e58e8be9d 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.13.1 - golang.org/x/sys v0.12.0 + golang.org/x/sys v0.13.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -80,7 +80,7 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.13.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.15.0 // indirect golang.org/x/text v0.13.0 // indirect diff --git a/go.sum b/go.sum index b5f468c10..88b674e73 100644 --- a/go.sum +++ b/go.sum @@ -186,8 +186,8 @@ golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= @@ -223,14 +223,14 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= From 15fcb433ec9bf5e7b5f796f40dee73599a78cdeb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 16:54:45 +0200 Subject: [PATCH 130/233] Bump goa.design/goa/v3 from 3.13.1 to 3.13.2 (#841) * Bump goa.design/goa/v3 from 3.13.1 to 3.13.2 Bumps goa.design/goa/v3 from 3.13.1 to 3.13.2. --- updated-dependencies: - dependency-name: goa.design/goa/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update licenses * `goa gen github.com/arduino/arduino-create-agent/design` --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go-chi/chi/v5/middleware.dep.yml | 41 +++++++++++++++++++ .../go/goa.design/goa/v3/http.dep.yml | 4 +- .../goa.design/goa/v3/http/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/pkg.dep.yml | 4 +- gen/http/cli/arduino_create_agent/cli.go | 2 +- gen/http/tools/client/cli.go | 2 +- gen/http/tools/client/client.go | 2 +- gen/http/tools/client/encode_decode.go | 2 +- gen/http/tools/client/paths.go | 2 +- gen/http/tools/client/types.go | 2 +- gen/http/tools/server/encode_decode.go | 2 +- gen/http/tools/server/paths.go | 2 +- gen/http/tools/server/server.go | 2 +- gen/http/tools/server/types.go | 2 +- gen/tools/client.go | 2 +- gen/tools/endpoints.go | 2 +- gen/tools/service.go | 2 +- gen/tools/views/view.go | 2 +- go.mod | 2 +- go.sum | 4 +- 21 files changed, 66 insertions(+), 25 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml new file mode 100644 index 000000000..3932de531 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml @@ -0,0 +1,41 @@ +--- +name: github.com/go-chi/chi/v5/middleware +version: v5.0.10 +type: go +summary: +homepage: https://pkg.go.dev/github.com/go-chi/chi/v5/middleware +license: mit +licenses: +- sources: v5@v5.0.10/LICENSE + text: | + Copyright (c) 2015-present Peter Kieltyka (https://github.com/pkieltyka), Google Inc. + + MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +- sources: v5@v5.0.10/README.md + text: |- + Copyright (c) 2015-present [Peter Kieltyka](https://github.com/pkieltyka) + + Licensed under [MIT License](./LICENSE) + + [GoDoc]: https://pkg.go.dev/github.com/go-chi/chi?tab=versions + [GoDoc Widget]: https://godoc.org/github.com/go-chi/chi?status.svg + [Travis]: https://travis-ci.org/go-chi/chi + [Travis Widget]: https://travis-ci.org/go-chi/chi.svg?branch=master +notices: [] diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml index 5dd83c5ca..3ff1c31df 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http -version: v3.13.1 +version: v3.13.2 type: go summary: Package http contains HTTP specific constructs that complement the code generated by Goa. homepage: https://pkg.go.dev/goa.design/goa/v3/http license: mit licenses: -- sources: v3@v3.13.1/LICENSE +- sources: v3@v3.13.2/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml index e8dd07bf5..dd7477aa2 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http/middleware -version: v3.13.1 +version: v3.13.2 type: go summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to provide additional functionality. homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware license: mit licenses: -- sources: v3@v3.13.1/LICENSE +- sources: v3@v3.13.2/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml index cbc5528b0..5f9acecf9 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml @@ -1,12 +1,12 @@ --- name: goa.design/goa/v3/middleware -version: v3.13.1 +version: v3.13.2 type: go summary: Package middleware contains transport independent middlewares. homepage: https://pkg.go.dev/goa.design/goa/v3/middleware license: mit licenses: -- sources: v3@v3.13.1/LICENSE +- sources: v3@v3.13.2/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml index 6963ec987..17eddbe5d 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml @@ -1,6 +1,6 @@ --- name: goa.design/goa/v3/pkg -version: v3.13.1 +version: v3.13.2 type: go summary: Package goa implements a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client @@ -8,7 +8,7 @@ summary: Package goa implements a Go framework for writing microservices that pr homepage: https://pkg.go.dev/goa.design/goa/v3/pkg license: mit licenses: -- sources: v3@v3.13.1/LICENSE +- sources: v3@v3.13.2/LICENSE text: | The MIT License (MIT) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index 50b7a8eb0..2593ad816 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // arduino-create-agent HTTP client CLI support package // diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index f2407653d..561f102ac 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools HTTP client CLI support package // diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index 1bdd5ea00..102996f83 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools client HTTP transport // diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index 7a5ca911d..b767f5765 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools HTTP client encoders and decoders // diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index a5f573c38..cab4d5fd6 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index a3be7da8e..888851cb7 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools HTTP client types // diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index 79c9ad7bf..694d68cf6 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools HTTP server encoders and decoders // diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index cefa764ee..cb63e280e 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index eb5d6c7f2..5ee51a660 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools HTTP server // diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index 2d864b22f..98994836b 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools HTTP server types // diff --git a/gen/tools/client.go b/gen/tools/client.go index ab163c2cf..6596aa6a3 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools client // diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index 75bb74305..0d38ae1bd 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools endpoints // diff --git a/gen/tools/service.go b/gen/tools/service.go index 18c027237..8165af903 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools service // diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go index b88dce987..a66d97d2a 100644 --- a/gen/tools/views/view.go +++ b/gen/tools/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.1, DO NOT EDIT. +// Code generated by goa v3.13.2, DO NOT EDIT. // // tools views // diff --git a/go.mod b/go.mod index e58e8be9d..d4b456f6e 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 - goa.design/goa/v3 v3.13.1 + goa.design/goa/v3 v3.13.2 golang.org/x/sys v0.13.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 88b674e73..095cd899a 100644 --- a/go.sum +++ b/go.sum @@ -174,8 +174,8 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsr github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= -goa.design/goa/v3 v3.13.1 h1:JRWJs1GSD5WWPvGq7Ru68au7BcxG+cA7fWCi/q4ONq0= -goa.design/goa/v3 v3.13.1/go.mod h1:v8tZEXhHSRXTsgtA9rK6tlVKA+7L6S0vqu8x6U9a17c= +goa.design/goa/v3 v3.13.2 h1:RclNIpo7891ZqGRVO4fpBjT7Fs7LjBNm78i8J41KHrI= +goa.design/goa/v3 v3.13.2/go.mod h1:VvZsuC8CSIUQOHVqk6Ep3MFSFz21OjOv87UPqCHiB94= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= From 9a500b4e7c41f677c77c869b71e1a524f822866d Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 10 Oct 2023 14:41:00 +0200 Subject: [PATCH 131/233] Implement HEAD handler for `v2/pkgs/tools/installed` (required by frontend) (#844) * add tests * implement HEAD method (is used by the frontend). Without this the server returns 405 when called with HEAD to `v2/pkgs/tools/installed` This breaks the install of the tools --- design/pkgs.go | 7 +++ gen/http/cli/arduino_create_agent/cli.go | 22 +++++++- gen/http/openapi.json | 2 +- gen/http/openapi.yaml | 10 ++++ gen/http/openapi3.json | 2 +- gen/http/openapi3.yaml | 8 +++ gen/http/tools/client/client.go | 24 +++++++++ gen/http/tools/client/encode_decode.go | 42 +++++++++++++++ gen/http/tools/client/paths.go | 5 ++ gen/http/tools/server/encode_decode.go | 9 ++++ gen/http/tools/server/paths.go | 5 ++ gen/http/tools/server/server.go | 67 ++++++++++++++++++++---- gen/tools/client.go | 26 +++++---- gen/tools/endpoints.go | 27 +++++++--- gen/tools/service.go | 4 +- main_test.go | 16 ++++++ v2/pkgs/tools.go | 8 +++ v2/pkgs/tools_test.go | 16 ++++++ 18 files changed, 270 insertions(+), 30 deletions(-) diff --git a/design/pkgs.go b/design/pkgs.go index b059e0ddf..21c30d217 100644 --- a/design/pkgs.go +++ b/design/pkgs.go @@ -28,6 +28,13 @@ var _ = Service("tools", func() { }) }) + Method("installedhead", func() { + HTTP(func() { + HEAD("/pkgs/tools/installed") + Response(StatusOK) + }) + }) + Method("installed", func() { Result(CollectionOf(Tool)) HTTP(func() { diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index 2593ad816..2c454dd65 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -22,7 +22,7 @@ import ( // // command (subcommand1|subcommand2|...) func UsageCommands() string { - return `tools (available|installed|install|remove) + return `tools (available|installedhead|installed|install|remove) ` } @@ -46,6 +46,8 @@ func ParseEndpoint( toolsAvailableFlags = flag.NewFlagSet("available", flag.ExitOnError) + toolsInstalledheadFlags = flag.NewFlagSet("installedhead", flag.ExitOnError) + toolsInstalledFlags = flag.NewFlagSet("installed", flag.ExitOnError) toolsInstallFlags = flag.NewFlagSet("install", flag.ExitOnError) @@ -59,6 +61,7 @@ func ParseEndpoint( ) toolsFlags.Usage = toolsUsage toolsAvailableFlags.Usage = toolsAvailableUsage + toolsInstalledheadFlags.Usage = toolsInstalledheadUsage toolsInstalledFlags.Usage = toolsInstalledUsage toolsInstallFlags.Usage = toolsInstallUsage toolsRemoveFlags.Usage = toolsRemoveUsage @@ -100,6 +103,9 @@ func ParseEndpoint( case "available": epf = toolsAvailableFlags + case "installedhead": + epf = toolsInstalledheadFlags + case "installed": epf = toolsInstalledFlags @@ -137,6 +143,9 @@ func ParseEndpoint( case "available": endpoint = c.Available() data = nil + case "installedhead": + endpoint = c.Installedhead() + data = nil case "installed": endpoint = c.Installed() data = nil @@ -164,6 +173,7 @@ Usage: COMMAND: available: Available implements available. + installedhead: Installedhead implements installedhead. installed: Installed implements installed. install: Install implements install. remove: Remove implements remove. @@ -182,6 +192,16 @@ Example: `, os.Args[0]) } +func toolsInstalledheadUsage() { + fmt.Fprintf(os.Stderr, `%[1]s [flags] tools installedhead + +Installedhead implements installedhead. + +Example: + %[1]s tools installedhead +`, os.Args[0]) +} + func toolsInstalledUsage() { fmt.Fprintf(os.Stderr, `%[1]s [flags] tools installed diff --git a/gen/http/openapi.json b/gen/http/openapi.json index a8e08e509..d392f1816 100644 --- a/gen/http/openapi.json +++ b/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]},"head":{"tags":["tools"],"summary":"installedhead tools","operationId":"tools#installedhead","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml index ac98393fc..7712e82ff 100644 --- a/gen/http/openapi.yaml +++ b/gen/http/openapi.yaml @@ -61,6 +61,16 @@ paths: $ref: '#/definitions/ToolsInstallResponseBody' schemes: - http + head: + tags: + - tools + summary: installedhead tools + operationId: tools#installedhead + responses: + "200": + description: OK response. + schemes: + - http /pkgs/tools/installed/{packager}/{name}/{version}: delete: tags: diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json index b02a940bd..11e9b8177 100644 --- a/gen/http/openapi3.json +++ b/gen/http/openapi3.json @@ -1 +1 @@ -{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file +{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"head":{"tags":["tools"],"summary":"installedhead tools","operationId":"tools#installedhead","responses":{"200":{"description":"OK response."}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml index a39c969b2..d1ad450ef 100644 --- a/gen/http/openapi3.yaml +++ b/gen/http/openapi3.yaml @@ -53,6 +53,14 @@ paths: - name: bossac packager: arduino version: 1.7.0-arduino3 + head: + tags: + - tools + summary: installedhead tools + operationId: tools#installedhead + responses: + "200": + description: OK response. post: tags: - tools diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index 102996f83..28f7cb610 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -21,6 +21,10 @@ type Client struct { // endpoint. AvailableDoer goahttp.Doer + // Installedhead Doer is the HTTP client used to make requests to the + // installedhead endpoint. + InstalledheadDoer goahttp.Doer + // Installed Doer is the HTTP client used to make requests to the installed // endpoint. InstalledDoer goahttp.Doer @@ -53,6 +57,7 @@ func NewClient( ) *Client { return &Client{ AvailableDoer: doer, + InstalledheadDoer: doer, InstalledDoer: doer, InstallDoer: doer, RemoveDoer: doer, @@ -83,6 +88,25 @@ func (c *Client) Available() goa.Endpoint { } } +// Installedhead returns an endpoint that makes HTTP requests to the tools +// service installedhead server. +func (c *Client) Installedhead() goa.Endpoint { + var ( + decodeResponse = DecodeInstalledheadResponse(c.decoder, c.RestoreResponseBody) + ) + return func(ctx context.Context, v any) (any, error) { + req, err := c.BuildInstalledheadRequest(ctx, v) + if err != nil { + return nil, err + } + resp, err := c.InstalledheadDoer.Do(req) + if err != nil { + return nil, goahttp.ErrRequestError("tools", "installedhead", err) + } + return decodeResponse(resp) + } +} + // Installed returns an endpoint that makes HTTP requests to the tools service // installed server. func (c *Client) Installed() goa.Endpoint { diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index b767f5765..f4dd88c7c 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -76,6 +76,48 @@ func DecodeAvailableResponse(decoder func(*http.Response) goahttp.Decoder, resto } } +// BuildInstalledheadRequest instantiates a HTTP request object with method and +// path set to call the "tools" service "installedhead" endpoint +func (c *Client) BuildInstalledheadRequest(ctx context.Context, v any) (*http.Request, error) { + u := &url.URL{Scheme: c.scheme, Host: c.host, Path: InstalledheadToolsPath()} + req, err := http.NewRequest("HEAD", u.String(), nil) + if err != nil { + return nil, goahttp.ErrInvalidURL("tools", "installedhead", u.String(), err) + } + if ctx != nil { + req = req.WithContext(ctx) + } + + return req, nil +} + +// DecodeInstalledheadResponse returns a decoder for responses returned by the +// tools installedhead endpoint. restoreBody controls whether the response body +// should be restored after having been read. +func DecodeInstalledheadResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (any, error) { + return func(resp *http.Response) (any, error) { + if restoreBody { + b, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + resp.Body = io.NopCloser(bytes.NewBuffer(b)) + defer func() { + resp.Body = io.NopCloser(bytes.NewBuffer(b)) + }() + } else { + defer resp.Body.Close() + } + switch resp.StatusCode { + case http.StatusOK: + return nil, nil + default: + body, _ := io.ReadAll(resp.Body) + return nil, goahttp.ErrInvalidResponse("tools", "installedhead", resp.StatusCode, string(body)) + } + } +} + // BuildInstalledRequest instantiates a HTTP request object with method and // path set to call the "tools" service "installed" endpoint func (c *Client) BuildInstalledRequest(ctx context.Context, v any) (*http.Request, error) { diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index cab4d5fd6..d7708d868 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -16,6 +16,11 @@ func AvailableToolsPath() string { return "/v2/pkgs/tools/available" } +// InstalledheadToolsPath returns the URL path to the tools service installedhead HTTP endpoint. +func InstalledheadToolsPath() string { + return "/v2/pkgs/tools/installed" +} + // InstalledToolsPath returns the URL path to the tools service installed HTTP endpoint. func InstalledToolsPath() string { return "/v2/pkgs/tools/installed" diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index 694d68cf6..4985ce456 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -29,6 +29,15 @@ func EncodeAvailableResponse(encoder func(context.Context, http.ResponseWriter) } } +// EncodeInstalledheadResponse returns an encoder for responses returned by the +// tools installedhead endpoint. +func EncodeInstalledheadResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { + return func(ctx context.Context, w http.ResponseWriter, v any) error { + w.WriteHeader(http.StatusOK) + return nil + } +} + // EncodeInstalledResponse returns an encoder for responses returned by the // tools installed endpoint. func EncodeInstalledResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, any) error { diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index cb63e280e..65a0debb6 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -16,6 +16,11 @@ func AvailableToolsPath() string { return "/v2/pkgs/tools/available" } +// InstalledheadToolsPath returns the URL path to the tools service installedhead HTTP endpoint. +func InstalledheadToolsPath() string { + return "/v2/pkgs/tools/installed" +} + // InstalledToolsPath returns the URL path to the tools service installed HTTP endpoint. func InstalledToolsPath() string { return "/v2/pkgs/tools/installed" diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index 5ee51a660..0ef0943c6 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -18,11 +18,12 @@ import ( // Server lists the tools service endpoint HTTP handlers. type Server struct { - Mounts []*MountPoint - Available http.Handler - Installed http.Handler - Install http.Handler - Remove http.Handler + Mounts []*MountPoint + Available http.Handler + Installedhead http.Handler + Installed http.Handler + Install http.Handler + Remove http.Handler } // MountPoint holds information about the mounted endpoints. @@ -53,14 +54,16 @@ func New( return &Server{ Mounts: []*MountPoint{ {"Available", "GET", "/v2/pkgs/tools/available"}, + {"Installedhead", "HEAD", "/v2/pkgs/tools/installed"}, {"Installed", "GET", "/v2/pkgs/tools/installed"}, {"Install", "POST", "/v2/pkgs/tools/installed"}, {"Remove", "DELETE", "/v2/pkgs/tools/installed/{packager}/{name}/{version}"}, }, - Available: NewAvailableHandler(e.Available, mux, decoder, encoder, errhandler, formatter), - Installed: NewInstalledHandler(e.Installed, mux, decoder, encoder, errhandler, formatter), - Install: NewInstallHandler(e.Install, mux, decoder, encoder, errhandler, formatter), - Remove: NewRemoveHandler(e.Remove, mux, decoder, encoder, errhandler, formatter), + Available: NewAvailableHandler(e.Available, mux, decoder, encoder, errhandler, formatter), + Installedhead: NewInstalledheadHandler(e.Installedhead, mux, decoder, encoder, errhandler, formatter), + Installed: NewInstalledHandler(e.Installed, mux, decoder, encoder, errhandler, formatter), + Install: NewInstallHandler(e.Install, mux, decoder, encoder, errhandler, formatter), + Remove: NewRemoveHandler(e.Remove, mux, decoder, encoder, errhandler, formatter), } } @@ -70,6 +73,7 @@ func (s *Server) Service() string { return "tools" } // Use wraps the server handlers with the given middleware. func (s *Server) Use(m func(http.Handler) http.Handler) { s.Available = m(s.Available) + s.Installedhead = m(s.Installedhead) s.Installed = m(s.Installed) s.Install = m(s.Install) s.Remove = m(s.Remove) @@ -81,6 +85,7 @@ func (s *Server) MethodNames() []string { return tools.MethodNames[:] } // Mount configures the mux to serve the tools endpoints. func Mount(mux goahttp.Muxer, h *Server) { MountAvailableHandler(mux, h.Available) + MountInstalledheadHandler(mux, h.Installedhead) MountInstalledHandler(mux, h.Installed) MountInstallHandler(mux, h.Install) MountRemoveHandler(mux, h.Remove) @@ -135,6 +140,50 @@ func NewAvailableHandler( }) } +// MountInstalledheadHandler configures the mux to serve the "tools" service +// "installedhead" endpoint. +func MountInstalledheadHandler(mux goahttp.Muxer, h http.Handler) { + f, ok := h.(http.HandlerFunc) + if !ok { + f = func(w http.ResponseWriter, r *http.Request) { + h.ServeHTTP(w, r) + } + } + mux.Handle("HEAD", "/v2/pkgs/tools/installed", f) +} + +// NewInstalledheadHandler creates a HTTP handler which loads the HTTP request +// and calls the "tools" service "installedhead" endpoint. +func NewInstalledheadHandler( + endpoint goa.Endpoint, + mux goahttp.Muxer, + decoder func(*http.Request) goahttp.Decoder, + encoder func(context.Context, http.ResponseWriter) goahttp.Encoder, + errhandler func(context.Context, http.ResponseWriter, error), + formatter func(ctx context.Context, err error) goahttp.Statuser, +) http.Handler { + var ( + encodeResponse = EncodeInstalledheadResponse(encoder) + encodeError = goahttp.ErrorEncoder(encoder, formatter) + ) + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept")) + ctx = context.WithValue(ctx, goa.MethodKey, "installedhead") + ctx = context.WithValue(ctx, goa.ServiceKey, "tools") + var err error + res, err := endpoint(ctx, nil) + if err != nil { + if err := encodeError(ctx, w, err); err != nil { + errhandler(ctx, w, err) + } + return + } + if err := encodeResponse(ctx, w, res); err != nil { + errhandler(ctx, w, err) + } + }) +} + // MountInstalledHandler configures the mux to serve the "tools" service // "installed" endpoint. func MountInstalledHandler(mux goahttp.Muxer, h http.Handler) { diff --git a/gen/tools/client.go b/gen/tools/client.go index 6596aa6a3..8cff1c868 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -15,19 +15,21 @@ import ( // Client is the "tools" service client. type Client struct { - AvailableEndpoint goa.Endpoint - InstalledEndpoint goa.Endpoint - InstallEndpoint goa.Endpoint - RemoveEndpoint goa.Endpoint + AvailableEndpoint goa.Endpoint + InstalledheadEndpoint goa.Endpoint + InstalledEndpoint goa.Endpoint + InstallEndpoint goa.Endpoint + RemoveEndpoint goa.Endpoint } // NewClient initializes a "tools" service client given the endpoints. -func NewClient(available, installed, install, remove goa.Endpoint) *Client { +func NewClient(available, installedhead, installed, install, remove goa.Endpoint) *Client { return &Client{ - AvailableEndpoint: available, - InstalledEndpoint: installed, - InstallEndpoint: install, - RemoveEndpoint: remove, + AvailableEndpoint: available, + InstalledheadEndpoint: installedhead, + InstalledEndpoint: installed, + InstallEndpoint: install, + RemoveEndpoint: remove, } } @@ -41,6 +43,12 @@ func (c *Client) Available(ctx context.Context) (res ToolCollection, err error) return ires.(ToolCollection), nil } +// Installedhead calls the "installedhead" endpoint of the "tools" service. +func (c *Client) Installedhead(ctx context.Context) (err error) { + _, err = c.InstalledheadEndpoint(ctx, nil) + return +} + // Installed calls the "installed" endpoint of the "tools" service. func (c *Client) Installed(ctx context.Context) (res ToolCollection, err error) { var ires any diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index 0d38ae1bd..bb26433ba 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -15,25 +15,28 @@ import ( // Endpoints wraps the "tools" service endpoints. type Endpoints struct { - Available goa.Endpoint - Installed goa.Endpoint - Install goa.Endpoint - Remove goa.Endpoint + Available goa.Endpoint + Installedhead goa.Endpoint + Installed goa.Endpoint + Install goa.Endpoint + Remove goa.Endpoint } // NewEndpoints wraps the methods of the "tools" service with endpoints. func NewEndpoints(s Service) *Endpoints { return &Endpoints{ - Available: NewAvailableEndpoint(s), - Installed: NewInstalledEndpoint(s), - Install: NewInstallEndpoint(s), - Remove: NewRemoveEndpoint(s), + Available: NewAvailableEndpoint(s), + Installedhead: NewInstalledheadEndpoint(s), + Installed: NewInstalledEndpoint(s), + Install: NewInstallEndpoint(s), + Remove: NewRemoveEndpoint(s), } } // Use applies the given middleware to all the "tools" service endpoints. func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) { e.Available = m(e.Available) + e.Installedhead = m(e.Installedhead) e.Installed = m(e.Installed) e.Install = m(e.Install) e.Remove = m(e.Remove) @@ -52,6 +55,14 @@ func NewAvailableEndpoint(s Service) goa.Endpoint { } } +// NewInstalledheadEndpoint returns an endpoint function that calls the method +// "installedhead" of service "tools". +func NewInstalledheadEndpoint(s Service) goa.Endpoint { + return func(ctx context.Context, req any) (any, error) { + return nil, s.Installedhead(ctx) + } +} + // NewInstalledEndpoint returns an endpoint function that calls the method // "installed" of service "tools". func NewInstalledEndpoint(s Service) goa.Endpoint { diff --git a/gen/tools/service.go b/gen/tools/service.go index 8165af903..acc2f7fbc 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -18,6 +18,8 @@ import ( type Service interface { // Available implements available. Available(context.Context) (res ToolCollection, err error) + // Installedhead implements installedhead. + Installedhead(context.Context) (err error) // Installed implements installed. Installed(context.Context) (res ToolCollection, err error) // Install implements install. @@ -34,7 +36,7 @@ const ServiceName = "tools" // MethodNames lists the service method names as defined in the design. These // are the same values that are set in the endpoint request contexts under the // MethodKey key. -var MethodNames = [4]string{"available", "installed", "install", "remove"} +var MethodNames = [5]string{"available", "installedhead", "installed", "install", "remove"} // Operation is the result type of the tools service install method. type Operation struct { diff --git a/main_test.go b/main_test.go index 57c5b2f8e..9dc5faa5c 100644 --- a/main_test.go +++ b/main_test.go @@ -168,3 +168,19 @@ func TestInstallToolV2(t *testing.T) { }) } } + +func TestInstalledHead(t *testing.T) { + indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + // Instantiate Index + Index := index.Init(indexURL, config.GetDataDir()) + + r := gin.New() + goa := v2.Server(config.GetDataDir().String(), Index) + r.Any("/v2/*path", gin.WrapH(goa)) + ts := httptest.NewServer(r) + + resp, err := http.Head(ts.URL + "/v2/pkgs/tools/installed") + require.NoError(t, err) + require.NotEqual(t, resp.StatusCode, http.StatusMethodNotAllowed) + require.Equal(t, resp.StatusCode, http.StatusOK) +} diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index f9636f077..d8423b140 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -64,6 +64,14 @@ func New(index *index.Resource, folder string) *Tools { } } +// Installedhead is here only because it was required by the front-end. +// Probably when we bumped GOA something changed: +// Before that the frontend was able to perform the HEAD request to `v2/pkgs/tools/installed`. +// After the bump we have to implement it explicitly. Currently I do not know a better way in achieving the same result. +func (t *Tools) Installedhead(ctx context.Context) (err error) { + return nil +} + // Available crawles the downloaded package index files and returns a list of tools that can be installed. func (t *Tools) Available(ctx context.Context) (res tools.ToolCollection, err error) { body, err := t.index.Read() diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index 44070c686..fb3f67df8 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -185,6 +185,22 @@ func TestEvilFilename(t *testing.T) { } } +func TestInstalledHead(t *testing.T) { + // Initialize indexes with a temp folder + tmp := t.TempDir() + + indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + // Instantiate Index + Index := index.Init(indexURL, config.GetDataDir()) + + service := pkgs.New(Index, tmp) + + ctx := context.Background() + + err := service.Installedhead(ctx) + require.NoError(t, err) +} + func strpoint(s string) *string { return &s } From 08bddd617e35ef7ef0c6198d06c1e34cec166ec6 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Wed, 25 Oct 2023 12:17:56 +0200 Subject: [PATCH 132/233] fix agent being built for 32 bit linux for real (#847) --- .github/workflows/release.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fdbff9eda..84c02969d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -394,7 +394,11 @@ jobs: # installbuilder reads the env vars with certs paths and use it to sign the installer. - name: Launch Bitrock installbuilder run: | - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.platform-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} + if [[ ${{matrix.platform-name}} == "linux" ]]; then + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.platform-name }}-x64 --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} + else + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.platform-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} + fi - name: Generate archive run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}} From 418bd40230de5e0c5d6f1d6360ca995b7d3e628d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 11:39:25 +0100 Subject: [PATCH 133/233] Bump golang.org/x/sys from 0.13.0 to 0.14.0 (#848) * Bump golang.org/x/sys from 0.13.0 to 0.14.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.13.0 to 0.14.0. - [Commits](https://github.com/golang/sys/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licences --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 06b6e11b3..82acb6663 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.13.0 +version: v0.14.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.13.0/LICENSE +- sources: sys@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.13.0/PATENTS +- sources: sys@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index d4b456f6e..b07969e3a 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.13.2 - golang.org/x/sys v0.13.0 + golang.org/x/sys v0.14.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 095cd899a..415821df3 100644 --- a/go.sum +++ b/go.sum @@ -223,8 +223,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= From 4495a5e6893f72edd4049e3860ddc531e605d5b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 12:55:04 +0100 Subject: [PATCH 134/233] Bump goa.design/goa/v3 from 3.13.2 to 3.14.0 (#849) * Bump goa.design/goa/v3 from 3.13.2 to 3.14.0 Bumps goa.design/goa/v3 from 3.13.2 to 3.14.0. --- updated-dependencies: - dependency-name: goa.design/goa/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix licenses * run `goa gen github.com/arduino/arduino-create-agent/design` --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go-chi/chi/v5/middleware.dep.yml | 41 ------------------- .../go/github.com/google/uuid.dep.yml | 2 +- .../go/goa.design/goa/v3/http.dep.yml | 4 +- .../goa.design/goa/v3/http/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/pkg.dep.yml | 4 +- .../go/golang.org/x/net/bpf.dep.yml | 6 +-- .../go/golang.org/x/net/html.dep.yml | 6 +-- .../go/golang.org/x/net/html/atom.dep.yml | 6 +-- .../go/golang.org/x/net/http2.dep.yml | 6 +-- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +-- .../go/golang.org/x/net/internal/iana.dep.yml | 6 +-- .../golang.org/x/net/internal/socket.dep.yml | 6 +-- .../go/golang.org/x/net/ipv4.dep.yml | 6 +-- .../go/golang.org/x/net/ipv6.dep.yml | 6 +-- gen/http/cli/arduino_create_agent/cli.go | 2 +- gen/http/tools/client/cli.go | 2 +- gen/http/tools/client/client.go | 2 +- gen/http/tools/client/encode_decode.go | 2 +- gen/http/tools/client/paths.go | 2 +- gen/http/tools/client/types.go | 2 +- gen/http/tools/server/encode_decode.go | 2 +- gen/http/tools/server/paths.go | 2 +- gen/http/tools/server/server.go | 2 +- gen/http/tools/server/types.go | 2 +- gen/tools/client.go | 2 +- gen/tools/endpoints.go | 2 +- gen/tools/service.go | 2 +- gen/tools/views/view.go | 2 +- go.mod | 10 ++--- go.sum | 22 +++++----- 31 files changed, 66 insertions(+), 107 deletions(-) delete mode 100644 .licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml deleted file mode 100644 index 3932de531..000000000 --- a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5/middleware.dep.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: github.com/go-chi/chi/v5/middleware -version: v5.0.10 -type: go -summary: -homepage: https://pkg.go.dev/github.com/go-chi/chi/v5/middleware -license: mit -licenses: -- sources: v5@v5.0.10/LICENSE - text: | - Copyright (c) 2015-present Peter Kieltyka (https://github.com/pkieltyka), Google Inc. - - MIT License - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v5@v5.0.10/README.md - text: |- - Copyright (c) 2015-present [Peter Kieltyka](https://github.com/pkieltyka) - - Licensed under [MIT License](./LICENSE) - - [GoDoc]: https://pkg.go.dev/github.com/go-chi/chi?tab=versions - [GoDoc Widget]: https://godoc.org/github.com/go-chi/chi?status.svg - [Travis]: https://travis-ci.org/go-chi/chi - [Travis Widget]: https://travis-ci.org/go-chi/chi.svg?branch=master -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml index 96682ad24..2cd468e55 100644 --- a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/google/uuid -version: v1.3.1 +version: v1.4.0 type: go summary: Package uuid generates and inspects UUIDs. homepage: https://pkg.go.dev/github.com/google/uuid diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml index 3ff1c31df..ebe5b2854 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http -version: v3.13.2 +version: v3.14.0 type: go summary: Package http contains HTTP specific constructs that complement the code generated by Goa. homepage: https://pkg.go.dev/goa.design/goa/v3/http license: mit licenses: -- sources: v3@v3.13.2/LICENSE +- sources: v3@v3.14.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml index dd7477aa2..ab7252241 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http/middleware -version: v3.13.2 +version: v3.14.0 type: go summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to provide additional functionality. homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware license: mit licenses: -- sources: v3@v3.13.2/LICENSE +- sources: v3@v3.14.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml index 5f9acecf9..3ffab18f0 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml @@ -1,12 +1,12 @@ --- name: goa.design/goa/v3/middleware -version: v3.13.2 +version: v3.14.0 type: go summary: Package middleware contains transport independent middlewares. homepage: https://pkg.go.dev/goa.design/goa/v3/middleware license: mit licenses: -- sources: v3@v3.13.2/LICENSE +- sources: v3@v3.14.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml index 17eddbe5d..240ad9cf7 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml @@ -1,6 +1,6 @@ --- name: goa.design/goa/v3/pkg -version: v3.13.2 +version: v3.14.0 type: go summary: Package goa implements a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client @@ -8,7 +8,7 @@ summary: Package goa implements a Go framework for writing microservices that pr homepage: https://pkg.go.dev/goa.design/goa/v3/pkg license: mit licenses: -- sources: v3@v3.13.2/LICENSE +- sources: v3@v3.14.0/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml index 1e7e08ce7..d6c3876ff 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/bpf -version: v0.15.0 +version: v0.17.0 type: go summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley Packet Filter virtual machine, and provides a Go implementation of the virtual machine. homepage: https://pkg.go.dev/golang.org/x/net/bpf license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml index 8deac6801..c718a6e33 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/html -version: v0.15.0 +version: v0.17.0 type: go summary: Package html implements an HTML5-compliant tokenizer and parser. homepage: https://pkg.go.dev/golang.org/x/net/html license: other licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml index 552128c38..67d9f044c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/net/html/atom -version: v0.15.0 +version: v0.17.0 type: go summary: 'Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and @@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed homepage: https://pkg.go.dev/golang.org/x/net/html/atom license: other licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 1e42bab41..a6c913781 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.15.0 +version: v0.17.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 598b5f93e..63bd19937 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.15.0 +version: v0.17.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml index 87d66dd8e..0571f7c26 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/internal/iana -version: v0.15.0 +version: v0.17.0 type: go summary: Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA). homepage: https://pkg.go.dev/golang.org/x/net/internal/iana license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml index 77e77e469..d9e364b00 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socket -version: v0.15.0 +version: v0.17.0 type: go summary: Package socket provides a portable interface for socket system calls. homepage: https://pkg.go.dev/golang.org/x/net/internal/socket license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml index c74008b9d..22c086349 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv4 -version: v0.15.0 +version: v0.17.0 type: go summary: Package ipv4 implements IP-level socket options for the Internet Protocol version 4. homepage: https://pkg.go.dev/golang.org/x/net/ipv4 license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml index f8607b3f1..c77916511 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/ipv6 -version: v0.15.0 +version: v0.17.0 type: go summary: Package ipv6 implements IP-level socket options for the Internet Protocol version 6. homepage: https://pkg.go.dev/golang.org/x/net/ipv6 license: bsd-3-clause licenses: -- sources: net@v0.15.0/LICENSE +- sources: net@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.15.0/PATENTS +- sources: net@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index 2c454dd65..7c107a39a 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // arduino-create-agent HTTP client CLI support package // diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index 561f102ac..8986221db 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools HTTP client CLI support package // diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index 28f7cb610..11390be82 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools client HTTP transport // diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index f4dd88c7c..fd95355fe 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools HTTP client encoders and decoders // diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index d7708d868..d374897f9 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index 888851cb7..d835b22c4 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools HTTP client types // diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index 4985ce456..e127359ef 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools HTTP server encoders and decoders // diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index 65a0debb6..a786f75b6 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index 0ef0943c6..3099937eb 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools HTTP server // diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index 98994836b..cd822927f 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools HTTP server types // diff --git a/gen/tools/client.go b/gen/tools/client.go index 8cff1c868..2a6a4e8c2 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools client // diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index bb26433ba..7ef4c1268 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools endpoints // diff --git a/gen/tools/service.go b/gen/tools/service.go index acc2f7fbc..7ab2e3b90 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools service // diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go index a66d97d2a..fab0c4136 100644 --- a/gen/tools/views/view.go +++ b/gen/tools/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.13.2, DO NOT EDIT. +// Code generated by goa v3.14.0, DO NOT EDIT. // // tools views // diff --git a/go.mod b/go.mod index b07969e3a..4af2e1105 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 - goa.design/goa/v3 v3.13.2 + goa.design/goa/v3 v3.14.0 golang.org/x/sys v0.14.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -52,7 +52,7 @@ require ( github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/google/go-cmp v0.5.9 // indirect - github.com/google/uuid v1.3.1 // indirect + github.com/google/uuid v1.4.0 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/h2non/filetype v1.1.3 // indirect @@ -81,10 +81,10 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.3.0 // indirect golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.15.0 // indirect + golang.org/x/mod v0.13.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/tools v0.14.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 415821df3..b9b1103fd 100644 --- a/go.sum +++ b/go.sum @@ -70,8 +70,8 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb/go.mod h1:MBpz1MS3P4HtRcBpQU4HcjvWXZ9q+JWacMEh2/BFYbg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 h1:vKXGRzlhWE9TUVhLqAOcgQbfYvReAnsvQQIcnvWMfcg= @@ -174,8 +174,8 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsr github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= -goa.design/goa/v3 v3.13.2 h1:RclNIpo7891ZqGRVO4fpBjT7Fs7LjBNm78i8J41KHrI= -goa.design/goa/v3 v3.13.2/go.mod h1:VvZsuC8CSIUQOHVqk6Ep3MFSFz21OjOv87UPqCHiB94= +goa.design/goa/v3 v3.14.0 h1:Ymm6hDyxWFiYclVHcMs1cl7vgSHiYLSIweHE74EusoA= +goa.design/goa/v3 v3.14.0/go.mod h1:QYVl5438/92SiqcIzYpIwz10QAocAJeacQu+FO0lTXQ= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= @@ -191,8 +191,8 @@ golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -202,12 +202,12 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -245,8 +245,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 9358518adbc4fb791fe891acaa08177f7c541551 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 6 Nov 2023 13:23:01 +0100 Subject: [PATCH 135/233] add new origin to the agent (#850) --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index 671c6333e..0350f0f4a 100755 --- a/main.go +++ b/main.go @@ -362,6 +362,7 @@ func loop() { extraOrigins := []string{ "https://create.arduino.cc", "https://cloud.arduino.cc", + "https://app.arduino.cc", } for i := 8990; i < 9001; i++ { From 35a05dcf28babf1aa2226fc480a0412ff7fc0dba Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 7 Nov 2023 12:24:35 +0100 Subject: [PATCH 136/233] Replace mitchellh/go used for macOS notarization (#851) * switch to gon fork, apple is deprecating altool to notarize. I split the singing/notarization because Bearer fork does not implement `--deep` for signing * use `ditto` to create archive: https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow * remove stapling, we cannot staple a zip apparently * remove top level dir it's already there thanks to `ditto --keepParent --- .github/workflows/release.yml | 50 ++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84c02969d..1c3c282b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,6 +20,7 @@ env: INSTALLER_CERT_MAC_PATH: "/tmp/ArduinoCerts2020.p12" AC_USERNAME: ${{ secrets.AC_USERNAME }} # used by gon AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon + AC_PROVIDER: ${{ secrets.AC_PROVIDER }} # used by gon # See: https://github.com/actions/setup-go/tree/v3#readme GO_VERSION: "1.20" @@ -261,7 +262,7 @@ jobs: -k "${{ env.KEYCHAIN_PASSWORD }}" \ "${{ env.KEYCHAIN }}" - - name: Install gon for code signing and app notarization + - name: Install gon for code signing uses: actions/checkout@v4 with: repository: darkvertex/gon #this fork has support for --deep notarization @@ -288,16 +289,40 @@ jobs: deep = true } - # Ask Gon for zip output to force notarization process to take place. - # The CI will upload the zip output - zip { - output_path = "ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip" - } EOF - - name: Sign and notarize binary + - name: Sign app bundle run: gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}" + - name: Zip output app bundle + run: ditto -c -k --keepParent ArduinoCreateAgent.app/ ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip + + - name: Remove gon used for code signing + run: | + rm /usr/local/bin/gon + rm ${{ env.GON_CONFIG_PATH }} + + - name: Install gon for app notarization + run: | + wget -q https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip + unzip gon_macos.zip -d /usr/local/bin + + - name: Write gon config to file + run: | + cat > "${{ env.GON_CONFIG_PATH }}" < Date: Tue, 7 Nov 2023 14:51:12 +0100 Subject: [PATCH 137/233] Fix autoupdate bundle (#853) * remove `--keepParent`, it's breaking the autoupdate bundle. This flag was introduced by mistake, inside gon only `-c -k` were used https://github.com/mitchellh/gon/blob/2d4f161ccecd1aae878f4416d5ccd622b1b01fdb/package/zip/zip.go#L59 * Revert "remove top level dir it's already there thanks to `ditto --keepParent" This reverts commit 134d25068c8e8fb980e163761466cc29fe8ec904. --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1c3c282b8..d0cf50d50 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -295,7 +295,7 @@ jobs: run: gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}" - name: Zip output app bundle - run: ditto -c -k --keepParent ArduinoCreateAgent.app/ ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip + run: ditto -c -k ArduinoCreateAgent.app/ ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip - name: Remove gon used for code signing run: | @@ -455,10 +455,13 @@ jobs: uses: actions/download-artifact@v3 with: name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized + path: ArduinoCreateAgent.app - name: unzip artifact + working-directory: ArduinoCreateAgent.app run: | unzip ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip + rm ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip - name: Install create-dmg run: brew install create-dmg From 13515f733e9a80ab767d776e9529d432b43cddcb Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 16 Nov 2023 17:55:08 +0100 Subject: [PATCH 138/233] fix installbuilder not able to produce complete artifacts for linux/win (#855) The condition was wrong: we were only using the else branch. This was causing the linux installers to not contain the actual binary. We do not support running installbuilder with `linux` as a target, we support `linux-x64` --- .github/workflows/release.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d0cf50d50..551756e95 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -370,14 +370,17 @@ jobs: include: - os: ubuntu-20.04 platform-name: linux + installbuilder-name: linux-x64 installer-extension: .run - os: windows-2019 arch: 386 platform-name: windows + installbuilder-name: windows extension: .exe installer-extension: .exe - os: windows-2019 platform-name: windows + installbuilder-name: windows extension: .exe installer-extension: .exe @@ -418,12 +421,7 @@ jobs: # installbuilder reads the env vars with certs paths and use it to sign the installer. - name: Launch Bitrock installbuilder - run: | - if [[ ${{matrix.platform-name}} == "linux" ]]; then - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.platform-name }}-x64 --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} - else - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.platform-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} - fi + run: ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.installbuilder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }} - name: Generate archive run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}} From e5653008d9882312ef1936d0ddc5ce0c08c2655e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 20 Nov 2023 18:40:47 +0100 Subject: [PATCH 139/233] Enhance traybar icons (#857) * add new icons (with border and filled), remove macos for light theme * remove dark mode detection (it was not working) * remove build tag and use file suffix for conditional build * Use `SetIconTemplate`, this allows theme switching on macos * partially revert 0444f2a17f9abe0b576d82dac3b1653107410764 Macos needs transparent icon to apply templating * rework icons: macos icons have been re-exported (to the correct size/color/opacity) windows icons have been re-exported from the linux ones (with the border) added also two svg files that should allow working on the icon easier in the future --- icon/icon.svg | 63 +++++++++++++++++++++++++++ icon/icon_darwin.go | 23 ++++++++++ icon/icon_hiber.svg | 63 +++++++++++++++++++++++++++ icon/{iconlinux.go => icon_linux.go} | 2 - icon/icon_linux.png | Bin 1552 -> 2549 bytes icon/icon_linux_hiber.png | Bin 1699 -> 4096 bytes icon/icon_mac.png | Bin 683 -> 898 bytes icon/icon_mac_hiber.png | Bin 861 -> 992 bytes icon/icon_mac_light.png | Bin 641 -> 0 bytes icon/icon_mac_light_hiber.png | Bin 905 -> 0 bytes icon/icon_win.ico | Bin 9662 -> 109203 bytes icon/icon_win_hiber.ico | Bin 9662 -> 110495 bytes icon/{iconwin.go => icon_windows.go} | 2 - icon/icondarwin.go | 52 ---------------------- systray/systray_real.go | 4 +- 15 files changed, 151 insertions(+), 58 deletions(-) create mode 100644 icon/icon.svg create mode 100644 icon/icon_darwin.go create mode 100644 icon/icon_hiber.svg rename icon/{iconlinux.go => icon_linux.go} (95%) delete mode 100644 icon/icon_mac_light.png delete mode 100644 icon/icon_mac_light_hiber.png rename icon/{iconwin.go => icon_windows.go} (95%) delete mode 100644 icon/icondarwin.go diff --git a/icon/icon.svg b/icon/icon.svg new file mode 100644 index 000000000..8bc6f5fb2 --- /dev/null +++ b/icon/icon.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon/icon_darwin.go b/icon/icon_darwin.go new file mode 100644 index 000000000..dfdfa34a7 --- /dev/null +++ b/icon/icon_darwin.go @@ -0,0 +1,23 @@ +package icon + +import _ "embed" // import embed to embed the icon + +// GetIcon will return the icon +func GetIcon() []byte { + return data +} + +// GetIconHiber will return the hibernated icon +func GetIconHiber() []byte { + return dataHibernate +} + +// data represents the icon +// +//go:embed icon_mac.png +var data []byte + +// dataHibernate represents the icon hibernated +// +//go:embed icon_mac_hiber.png +var dataHibernate []byte diff --git a/icon/icon_hiber.svg b/icon/icon_hiber.svg new file mode 100644 index 000000000..91021711e --- /dev/null +++ b/icon/icon_hiber.svg @@ -0,0 +1,63 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/icon/iconlinux.go b/icon/icon_linux.go similarity index 95% rename from icon/iconlinux.go rename to icon/icon_linux.go index 0a09a3e9e..b00f743aa 100644 --- a/icon/iconlinux.go +++ b/icon/icon_linux.go @@ -1,5 +1,3 @@ -//go:build linux - package icon import _ "embed" // import embed to embed the icon diff --git a/icon/icon_linux.png b/icon/icon_linux.png index c282ea137ef2eef0fee636c66df54d7ed1e8ec4c..b32940840a94643cf870322a17de1e63279adb70 100644 GIT binary patch delta 2539 zcmVp51poj50RR91 zMgb@Q0{{R30RRF300I*L0{{R30RRC20000000000NB{r;0RR91NB{r;0dL78x&QzP zVo5|nRCodHoK0v|M-;~=iG>6Njbi9dq4>2BMT!d*Kfq9^3x9Pj__cDU?phRLKx%iI zZk6grH%f&TTD0JIb_I1MDn)lD*~E`hBS~|6e#bYL$=sRy?t8f}zW4ON$$fY3%$#%n zcjnBQkDCrNx6~=(`h~w0{#y7e;a=e`VV-peLy7RT@PESN!hZ|@CH%YapTazA8`>b2 z{3iTT7=tl>Hh)YV)b*<{bvKmk8!KB#w^TSFd`P&@t-PnF$E;bi#%$cU(QMkZ$*fzq z&Ma84z>wbEO)+EMy?dwp=FJ=P@Zm!9#~BWl|CnrvvNJd9T>&2sLIqE)j>QvI(+v@^_4(RfsIm(ZZP5VTFe}z@awQJWV zSFT)1CMPGW8dz2aWFd3q%9Soq=!9+`je11#uyER9Zr{FLmd$n7bL-ZvWXX~xE>P%* zu5(H|M1R^p!m7x@g9nqhZ{OB!RM`d5W$)g-E=cH#&T~TFixl-W3l}a-Zrr$0wtc15 zhi>R7`oidp?hU0Mq;?g!bLYpM>XEhun(Y%7Wrw9gwiC?$M3d zL5FgjT)Pp2Or>XFV_k8Q27wHdtuR{E`U0`Z2?4ORCfX;t72#%%b7}>}&yQ`^PPt-p zA!3rJb1S0Jb|)v|#^yp3TxP;LpJ}G)L!(|4HnQ@7&BEB8ORS~nsMQP;&qjgb*UJP~ z?0<%_J$F5c1*c@ys#Sg+ZGX=)O$8({2on8IR|2nIz1sGG_y%IL*bjq2>Wkbp>C^Jy zyG4r@8Cj__^XAQy+uG^Hix+7j8Ac7G0o^XGY06?)c4c`OlwfiPIipbc`D zu)tn)4H;wi@854LEPOq1;6PnK&4oN{2LrGW29uQ7x6+-0BCql6*|WjcLLEh!R#%i} zD^I$ew%{W2*nz3oz`k2bY{co-OtnfdjJ##=?%lf+x=f6CM)xd37IhSPDd*3hw}0}$ zM7Mg`^2Kv^%AS*1zI-|9K^hz!G$JJUj6^m8Ve2TxKy&BL9o_tk6(YaHAsJ_m^WDCE zyYZc{TTeam(0^cHz^!J+?`O}RnH4KmkVZ`O1wXzKPGn~@cT?}$wQCmH%=O5TBe^Z1 zn*R_(XOySq&@Ip_#A4u#{C*3pCV!8>Fh*=nf<;9x*q9-1)~{b5E2GMU6ecZCm|r1^ zhw4E--OUoeN%I*XsiP>NTSy*hd0iVUDzd@m!`{}>qer81FI>1_3#3-Vqd=qzibbt5N6U{TRQmqA9j$%~#tZ-KaGHdKrA1%I3v0f6OL zp4bbH~ni%+7lwMuz3_Axrvg~+@g6J@qkv)3`7?Lt&WL_2{V8G{C|v2ayTiIMzi(} zICJKVT`I`rCt>T>t-*AnbK70q40P?Gp`oC^qq{6!x>U2<^5}yOkgpqQAy*N~M_!Hq zRtRj&lyEXOHWq4a39$*!UC!$+!Ac^D49{-8{%(^W|B!5ehnKS_?lU8d2t%kW)9???C<2vHJ{CUr4X+FhTwS$FXqk$s9 zQH*$#Quz#KZdNZ512Jvz>*PKpE9P{OPhHgl#ZWKEYjJ*{NI0G3O*KNJMv>+p0x%C8 zCZXa-g1|97p=_;0Fc<m+dcrpTddY< zLcrmi^ZZ!oWz{M#Z`+5aq#K89p4CDqPKzQ|35^(};V_9s>H)^r#mb}3m^^f;M_y>- z5GQTvwEUR$)-%r4M!sS|#`#)dWnIgX$JTRSU!Reeh<|Fqt>60TBH87%*^zNtZ#0HDoA_y?~ZY$0k{Cw=)6VK@GzYPvv;Neu}`c z{dS`=K7U03x*fuJ_O|jzWqr&7Kv4QQR696r2OPRr=AfopT*n_iKGXi%${=~*U{k5| z`IF27aHcH@Cnwt@P4BxIt(-L;dO_(e$H$F+tB#uxpqb;O>({TlOCso8n$Ph;@$VVk zGz5^Ve#GBQ(-L%XB4k<(x}x)(5^<6SlXBJ1r+=E^3!$4gZ~Fi21Rc@!qY={*ox90Z zzZBv)U+g$dBb-*V{&N%ejWEGw6+nFxK*>ij`rSv-PaEn1Ze(O6Iez@O>u2ar=zuQh z)O5sp5(`ecGAUR6_Myywu=M1~ljPjFb2>6P-&Ft%GLfD8L7Y6ViQF~mnhI9Q%-b6f zK4c`^=jP>Kajjmx+HBdf#cbZZ*>HMPx#1ZP1_ zK>z@;j|==^1pojArAb6VRCodHT;X-wHV{7b`G3_3%1#g^3z+EwQM-Vg3G8+OQ4?5M zpwb3z7buhoN2AdT^n}g`(qs?;Q=KL{-2zXF3q;VfPM>tzQ0kMk)okMDfahm5 zE<8d5)SBken1AmRm??V*D0F(OU4sH55lxUKM}hHUhJ*rYkQ7CbCWkDB$O(1u&J6`b zk`zpkwVW*smz)v>M3D4dh)|_l4V@f9qLacvH^6H_Xx30$7~YuU11*AI`-DO)XbzW0 z4q+1F0*Dr*3%Jvl6BgavCs)_QWd zF8stz{Vog2;QGLhwMQ0orPfp8Xu!Ty93gAv^x|Ydz2)Mg3wvPg%kpTh8!32N^-&V1xpxLg;POLF@>kt9O5{0 z&=ART(!d6%OxasOJ|UTqh~g*a-aRx2eM1Tb|HeLRD;Cam>yLtbLVs?m|2V)+nW;nW z#ebtPVeZkC`kd@vW`Ob%BR$M1nWPISk68&L zFLjyBql+B^7&)okcO($tz*yk+u+b$K6v zAMf7jXFpc+qZzNtT?&p|t~*Iz!hWj9uYaAiLmYXP*nEmFAqM8qxF5NvjMU2dW-)H6 zU;4@|yI3LA^A&S%4b4&L^i~qEI}Ie$#(~WRbMID=-|NH}r)i((3G0LW8g_B)(3N`1 z%2Bp7t{23$8D(cI;~IkXml`f|=IGe%#QG=M$Qk5FmxhTQR{uKwkE;*`Xq5_>UAB#*6oC`s5 z8N4bRSAaPcUwHCx%Zbkev@7`4Kp%PM8OS)^uSfrizQi0_0)~Y!9-t+l8RJ4Qb`_uk z3s_-;bI2HfLiVu*eWA0ik_vjjaDU_&xea40I>-8fuP*e>drk;T)Fm)%lA_2VT+=I=(c}<GM z!`H&wAjua%?+gE6izj3o0e9ohA)gv#H5oQM$9)oDzeEu+f8aoV1*R*ah?IY^VNky} zpotID7^Sd1l%)J^%RXsW>iQ?TXgx<8l&|b(U*pPCVb!1L`U^VzU9-*z;$TTjU>|I+ k5?0vsGP;D{E4x(u4~4?Z-a>EfUjP6A07*qoM6N<$g77NPzW@LL diff --git a/icon/icon_linux_hiber.png b/icon/icon_linux_hiber.png index 7a4078fcb5391f3a79254beb095caf1728ace571..5995ce96ad634a70d59b3ecaff383c430d8828f6 100644 GIT binary patch literal 4096 zcmV+b5dZIqP)1AAs2Girjcx)Oe5^#pME zteAv^1lRE4!`(;YI>)-YIzSq~wf0cE-f zU?P%|l3bTwdg+i+qedm<=jSJy1Kd|PM$pZ`;j9@ zTC1z8TX*f+)l^zqdcp%5l>lms2(ZjR>NNb~%~kmQp(?XPvqi!r$#vCLS7l6_HZ66` zm@&zKVFe=8Aps81_U+qu;>RCCeK#}6)a?u=7 zyZ}iNFeAo~9}h^8;ez5cOTg;r=!h&SDXIVXlcaJmi$purmWucBF! zlBnBmyDfXpoH?0>O$mpoaN44Nn>TN6@JLjf`aXGbns$B*Jd7SaI=;BLc&JqHbVWtQ5OH*o2xE@=g;aV1(0GloSW+|Wjyvuc zJ%9fEocQ?oa3nD#hJ&q~n3y5 zJTM_ACnv723~(ru@K+Z@e)Q()lgH0EEq1h~xlHYHI5Fx5R#@J@;z$yQEuJOR-rX=m(zrR_T0&-J0l8sjG?F=s0=E?5F-f+VW+2=cSurl16=gjTSJMSDz zsKlH_K6u!P1`&DjU3cA;r|==MHyP@WePNHFEnBvbOX?I=nfbIL7NeVUBt0=RXU=2= z`%@HxZ04-VA{-pMixnV}UGcZva?1s+THUkv{6N+2zWeTc<}Lz*?qUWA?|3#y&X_R+ zqxGjMV9r|)S+1+8QSFf&?hfQi^D-0Ux4n%7ye$S#si}HeT3VC8*e)(n9nl)=`=_uGT zZ{EC2xevLa0(CCNBQ+v`4rxwA`pZO3#xhSTW4yfP9K~B+R@`plKmGJm^$Rb&u#@c< zyZipGY1^jd^Upu8mKQq+iSk$1xEJnt+qZ9T7&dH}Ys82Ve%%%XBRV=d^1JW8YtYzD zqJsuNS4zFIw0h+R@|xGJTUYhQ8*l8Bs0Xcv#zf6W`5lcaEk#8|L$r#RZDDsc)amut zUoTUBxh9+;*n5wY5u9)>vL%-eT84!D55l{L+UXez-U$CdOmQ=27hq}mSrsj~K7>zoTsk8g!e_yg>N#500U!9?I+alFyP*hK9z^5!+ zxG?+LYp>0d+)s}>%H4=zdhuonm$kqO|)p%tXV!H z{_3l*Rv31|JRacOdh4wPb}FUGb~~o#HpXw^J;>Cyr_wG@NdpM3I3wY4p(#XWN$#_wN${k7I=t7xxx z1l($dIz9N{gT+RDj&?ws?>qdCM#cOVW!oH8z;DAaZ^{OomvOCZ!vrr&Iu<*C@QbWc zw0QC2{8Oh+b&I>TL#HJb@7yXqw8i@-2D6hQd@4z#+rYEJ(q0ncGFGd&xHunh?F_P3 zE1!A>-+JwjxwKQEof9HiyC_~Br;nebv_^wfU9``Hj)zpRC0122cOZwc3fo~-5A2I! zW8~1)8UR^&GWS(eQ{!Vx6`0$uqF}*$k!s(8inR+}$9MYVy!ikGQ|7^Y@*8mcEzR_) zI$hL3VtX=%xs9DKH+Jk;pT)*#BWKnvK>&0d3F6HxUgKm zBU0A7?(+o;7Gzs*y!`UZyO09w^+4x*Fa5iC6JL!H}ORE0t%>eHNpRn$!Rn>s|^=uFI>Ch(jvVL~E4j&a@J z5kFBP1mu8@(RfAAXMcp3`r}d+MpD%FKLI z7wJ)Qu)wLEc3V$+g4Gfu{+dZ1M>?5c*NDg&Ae091vONsUH72A%6P*}`(XYPxs%rW2 zZwxgg`7KUFm9 z&^FZZP-A}yGgdH}fL#IzVfd$Em=`H}EfV500&V#O0?A-Lm?Kd-fvDA|GPnKgv(GA4 zty)!WzSh&Rqn zy7%6D$7pwBjGwrX|+>Nr*`J+jHe7`p%Q2#&DZUI>$Tx#r9yZ$Z?mX7 zX^+0mma&bN*rxbXGdg8=0As1ibyyH zNx`@pX%AMlZ~+O#LvN0!uZMn<16!dnKM=WhR?U)9ri;zmMy|(D1!BzUzS(i>YjEJ9 zx5i`6eBYrid50P-+{FwKPT)o@Z%r5~&;38mfiHzTUkPp0q`MtrGeCf`N!0r3r=Q}C z^;nANXdo5l%4byK84n)}x{DPc0<`r=(fal4y}ah`78l?T=IW82^_renX2S{))88OE z`u_XxS1a!u*8V%4_4lHbawl^YpZGq^-K*FE1So5?)OD_0xw7&?RyF3Pn5~MrGG~#G zKp3917iv1eaZHf6oX+=F@}3g|Igi#3`ujOfp>~UF)~;QPFlrt*P(iYQ!-}=g2J$st9|G!(#ASMIJ2?`w58x#sa)JKvI38eALMgImsd{WdOzL$qNYr)Ua3z0sqz$({H`sM4iaenZH2=_)_&R^`8qsQmU33BL!yvM zPXJ;7M72Z|r^r7IyQE}W)X0$|6VA6ZAvJRTY6MQDd>#123B=EFT*`INvGhj7o~PdV z7;U(6$1!{<#K$m!lK+kz_3%c2{BslYREX&=7xBGSJV5bL3_$74_0xS7reJ_&TTbiG zOzQPn#1T(Kj?@s96L|W>R=O5a=?w`o4;Z79S)$n@Y2Dd>ol*)nUGZG6{lOAj!>maB z!IJ2hK6UqP${pJh0c3idK(~v5tn}ONzruCSdsfLx_DVsiS!}*TZ?!Z_ITbV z)y{}J2C_;S(m}zd0Ek{DaQ{V@HX@HHJ~aN<%pDG?8p}3mQh@5!(pLbPndD2NDI$Q% z5ygqz1ql;SFPx#1ZP1_ zK>z@;j|==^1pojBI7vi7RCodHT&s5LIuPCIDhMnrG%PF(Gz=^(3_S3_`w15wcwk^) zV4-1PVW44PU|Fvw9_1>^%vgTJd3CSlWln12}IjQIZkesZU=JN!As zmd~5fX!M0MVK9Om8AQN~JD%Nq+=-3PD&7y@`{R>4E>^X$0sVXwm1<^ zLXaaSbEgR^Qc}I73y7%V6h!q(5EGN5e{V@e??m-N5QkEZ%4;qGy%E)!AV&`MFK-wo zl$wCZA(B4P0e`Itx#yr;;XoW~NjC>;N|^W4bu z8aD{v)5f^wfFKJ}A$^EwJ1N)FVgk9hkLAjXkX9P`ca8TL{!kzhlqvbXY79OJX*q-e zfRRJ4TNqNI&63Z4s1ETW*s(n5fFKJ}Y=28Fx~Q46P#+?NC227$Wf0Ij^)v3P`1(0t zo1yZ&5N-O)q!2sTqn>lwJwS>FNfrGP(xMVtm)d&YmjigCa0Gg-7;UaZ{b=cOd>k2OSNvM;r7Y)}$u;1>dK_bWsyB#M!#DBI% zMu{M64v~s|pP_*ljFhLfY7n3h(lR4|vIk}1>XtyOYnMh|)W&PPy@j%zh;32$EO6ZE zdc4FTg zq=%>=4M&ef0{1VG4$AviA;&8M6MtS>AhJgu`xng`r9{;ju`F9BE${0$3NE4%z?vZ+ zC~c9!I$5(sHFx<`u8;Q}sb1E=-bz~Z^7X%9hu41FUPuu2C-1P4BAA7-O|4xfh+Z=s z54k2u9qi?(R~6@8#S96e3jTw7^dh;kP4a{~E$Ki+?`SVanhyT&k>pAVu77|M_4-cE zG2D6|a>E_6Q?|G2XzvYaqi$(E_Mr+-kp@-P)W8*;z>rHXz}_;nF%k;=jb@eK#XYLY zqxK*#jb-<OpKkTXi=v;tdS(=($gOG}11^1ZlBKp3sG$ zAxJruy&_IHk~?^KD{+7Llz#>RO%Ez?e<-9xks$V>UgjQG0(A;uDT)R9kr^%>yXk}W zPn94Z>Xx{De2k1;Bc>)DJng(y6xxE;BSo|?U`rv_icQLzvX&rrKN722t%EKUbT5mP zjLGkdUGa-_F>3c6g=qRh-L;d{h#bPtE15O8mzR1=D4VkC(CNMT1b-d-5-|L0;UT`; z?|VKq$Xk}9t~+GW0~+o_9s&g_&*{8W>igp+=O&7@tjqhjNsNJsA}=9gR(%rVF~kR! zyf&PnKlm?F5i#pNLP^8WpXl;py5GK%DwTRd=%B^rVBa-6_eb9R#)C1AwPn8#@oOkD de$WE{0cbMv-flsp_6z_3002ovPDHLkV1hQR9Z&!O diff --git a/icon/icon_mac.png b/icon/icon_mac.png index 0f6605b33192aadba058efa50a1bbf9475a92b1e..24dd8ae1b82cd2753eaea0eec1e8a25629d214ac 100644 GIT binary patch literal 898 zcmV-|1AY97P)O)CMDk2itgNc^dFGo!g$6qr#jt_eu@4kEP z+jIH>mC{eW>% zuS2EZx8ukFHV2|l*q_Lc!lgv;c2s(I07nHM#>gbSBk^@vM{0*HXq<8 z{4dnQhbjfTMA)JN?@M?mi}t$EH0seSsvA*flr^%+Tk{GSum8Mv58G6?;t_aFnDuIn zY4@Ye^C|_}ikE~eKgjgEF{yC=RSky)-w?LoW*wcJdo;d`wx;Rn7+_UH#XTxL=Milg z#sD_v;DrAE`!Il?7RJAtG#P&mA@~(x@U2VJ49#SGQ5a52(JbL(Vz9t}Q{tN-r?J?e z|G3r+cjIF`*(`WUbFfo$Q}bPXp~R|N8Yv_+Nf;(x7JC1)LN$*P`u=6%a`_Q^akY%o Yhrg44st;2MF6BH(Z4af$tLE8z^4Z;RaCx8u9`QlJTu}wlg@a}ZMA1Tk4 zB{>Ap5r`PkBQ(uR5Cl1l2_g`aBqR#m$Vd((3m5`qI3(GUoUuI=$rAd4Uge!c`Xy#| zWsm)14{c${WH=nO?XV4@A<2|To01vAO)l(jky+vRsHBE~k)ImsI()QfIR z*ud%mWWc<0T{id*DX0%d8*9SVJ~aSuX)C- zPlx3@lS?^=jI0@%4|>c@^Tg(Uk!+Z~a?TG3OrVYnw8NSG4%lyB@eG}Fu$#+1E%wp| zE}NOTGTlU_5ss7@KcXAg5Xb7F))A&WdWp+EUzIcvvoX24v*`;30VVnpo1Vurm9Uq} z3hRkcyKsiL6JsP?=+aZ-od>Ce7E;bTFc$t-cj&Fqen*e>I4`a`T5OS#LlK@Q)7C|D z3H~T*tCv%8ol53Ad>pPj`V<#5zB|{%Xl`s97#}k%_)MQchS1O-iYd1F zP#oBO&D`W6<+=m6g+k9=drV@L+SfauG(gIaA6NGzw;$6J@h;f6kiQn;^u+q>9?7>H3 z^`pQooWZd&cbp(j9|@dlNK$kRHxl9H^lcrd@o$>^Em1*_i1NJ)|A=CA zBYn%b*GwkLSQ61$!-qIf{Cf&di!}N|RJAk0^tXj8PvY4^W_McLbND=2Zn>CuqMin2 zET;QhA9;zHq+DIZ$7*{1pdi1FPYam?!u*7rGWOPW{YaRIZcMD<0)D{v!pty@*9*Br zX_bVzzZGry8{L@5bC%t)+3Z{0X5agU@Ll;{g)+MH{y-w{^v&JV0Gnx0F27SEz%B`2 z@5S*7!e#tgykAJ;r-d7iix&KTL3lacCkwgzbz$a=xpZGlBvrU3g0Lf+*JOI07rvJi z`J^CU!k_86tU2w52&$Y36Cw_7;bNM2m*^Qc@ssdxM_BEYC`?y`$|y$b>;M3pkfG`q|bL z%or1KFf6%5JV>UKI3Ji~MRc+!g$3dI9-o}|h&}v>uqvu5dbea9k*~ADd^>@=qSZgB zJ^j1lb&=Bt^+x$9(8g!F8=Oi7h^MXvOi(v{*0AKBog@~vJ#1`e6q5Ro!cgCI-Sm=e7$>4Ps?Edok+ zs+2x<*PL}s{Vf@Hht_fmK5uW7^NVo9L0vWvu&qRC2Cs&>u>x%wsNC}oZQh!STs>6# z+&E=a?jUlCbcoQ&kXa)fTO3=s_gf*bm#?p-9mx@nm5lG*yvC*Oxl|&`VIm4F&O#8Xd%CftK!s*u^8IAvlcnV#>$Z?L?J&wt<88U zMD8qi&CHxr%GE)rmem-Cq4}|PWjZwHBcPD%X{FMP^=gjbZ2KEpN>WIQ)@|&g=rWFF zR!;7{IGY4|;FTyZ;rZADUBaEx_};|g9^Ebd+atq%NK-{8-H?mA%qmDV=(rou4M?Jv zF}uZcUVN4wXNxv|dUD#F$ph-e|u|U)a}nj=c2UI#!8fK&<*6hwYq#T^h7OEF=dvAM zOR7Yh(R+xV?IZorBN%^_wutn=V-fAOZziO8fEaf#H%bvY%im4N5KGZ!+&PAi+>E~x nZF^E;1V$6`;kUq#{-yU1dk$})2fCbg00000NkvXXu0mjfv$Bk{ diff --git a/icon/icon_mac_light.png b/icon/icon_mac_light.png deleted file mode 100644 index 9cc820e02dd8e8aeb4bdb2e2edb76c4ad3dffe42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)71Kj{R0dCOd9>ktU5(Gi|-}~=LE_eRi zB^Q|Cb|}Mn{rhBC;Lgy7sbOyT7fb^sxg zTl4^lIgB8N@3A>LU`#QV8Lq?_W$InN_>N*My{&<2nol4ohi5;nClF(qSP?TOh?FXa z(8BQ3@M!pGxG-FL=DPgy`Z?rBSI!e3h~Q48h95E9CGP8Y;j?!HRm@H`ey*K(y=e|_ z5wgF8{G_Oq3zB_DG1~^st7FUlz&6objJf%J2oEbNnC)!-y&SA_r=eI z?Hqs)Ej$%?= ziGTGOL>T)+F+;}>MT;@YcXgS3h%wCRqZk?kB1S)9^6ncP8r3Zw+GAu((IX=>+zut4 b3*3NTjx4HFu$1Wu00000NkvXXu0mjfVvQC; diff --git a/icon/icon_mac_light_hiber.png b/icon/icon_mac_light_hiber.png deleted file mode 100644 index 4280fd33348096177acb7a33393ec87ae409d3cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 905 zcmV;419tq0P)yt(aiRi&h(uIG zoIoI&_cHTjvg`)JNBTa`9Les^?CgB)BM=x!9B`)JGOKb%9o*`~K=c!%R}!A?n8n zCWEa)v`!oKgL@A2#isKhz`**!YD?2LML=1VcKH&safpw5FZiHo&xI3@zc%%MPs@M+v7$Spc?WPXDLte`Klfx}AO<_X+eJTVF>9#On^ zw01Xpnaemfboc;IO={q<2iCZWQQl0^C37QKh5vA5esPppA}=TIC7x)OG0>Vu zc#OQ#5|Lq|MW0gog*?R{M22P^e`)=$hwr!9XN=+jS6Zp*5}Q$4U-YEhw1fPsVrPU- zPz+?(LQ#NkilWPSh`Cy5FDHaipeF*hGEado@(h{(jI0VPS`HsPe0@1Y3q>%K6WhXm zg+DViz_;dfeH?H4tMG9xgTK&I5AlEcA%e;Ann1P=G5QnKj|3*0twQwsBkIS(zPLR# z+Xni$i+Vt>JlO%?)j=z5aeKt@cqH^)_9vxxI84oJD#LoU$B7DY;R?5LAKmm59%afD zQn2x27O)Z@t2@U)Ikd{EY*Cf}4~3fZV_^0!k@rTpmO_dMnQ|S3zyFyOF|x}!Mg^Rs fkPF{u(AoG0Rg1?>C^DO%00000NkvXXu0mjf2q>Cf diff --git a/icon/icon_win.ico b/icon/icon_win.ico index f62cfde8365e304da1599224b9a8c90a9c2348dd..de577ec75246dc8066b1b5bdec796bca5a867621 100644 GIT binary patch literal 109203 zcmeF42VBnE|G>+xLWkg0rMku2alC7+kQO31p zr00L$U(dJybGwZv;&OjJuh*xZ=lguW=X}OFpYu7N^Ev0Mp`odfO#{%>D6LVxyoQFU z_&j^|=kJw%)6`fZt~F_*{N7AM!%I(7qehL--*<@LZcPwRmR5exr=el9N>d}B_)mEw zvuJ2k-KMFrsM8-NxpNlJDT>bBrge)h{0jaie%E+wHR!2^M!6?#S~Truar5b&QOkxu z?5*=W{Hc}II_KEf*h^#AE;sOQRH3NoJJng9$cEWSF|B|V_AD?gSHOkV|((>7@JMW)2-tIHu z@r9?8t=28S@ZLJ+*0hFk>*Ho#_;@trt#y?Fu`wEshYK8Sp4a=Z_LFNiYxQ0Po!v5_ z+iL9*dCmtYVqdr$RyeBRJT+&*#@U@;$8VW%bjYQN$2)F1{k~;ojjSe5XKZXzqUc4N z>hWD{c}u`SEn9U1-GghHb|)->2;dLrl1v!<^t^uct&5WIPOrba`xbxUOrpHyH<$ebgVZ@W9$Z`XZLqtr(mpY^BnZ`8O_WJ{36 z;PIJi+aC|>k?Tm&vG#`>2KL<4wW8(NY&PDTLdNfFQ?ZI=)X5?PEse4aI;p+Q-o~rd zr9vi;FKrDnbt!JW^32=0K^EHG0>j?#zMpkrm#n{Q7de}A*_~xKVoz3R=vQJ~J?n=( z4L6-?IjEC$qh?Dx4BA`8`}B&5ZUf8%OWxkSxNUr=1CjIHFZ8vXT=?p#@hgii^|@E} zl+#3`qFQxoW|<%TqP&;WZ4zdp-wMr6pmf?YKhkH-jB3`6Y}3O^H{fU z*y^XUG_FdUW@$O;|*(l znsm4G&e?NaexE%zI^J#e=t?)kGg+PL;nOX5|DY2-hr9T1I%reRCrfw7*})!{?rLX$ zd^_UGMu#agv)Bbjm#J-W;!}jeGDq!z6|IWau{~lFv1Vb-gep#pPK~R7A-uxA0=q)4 z4f4I=ziUaS?#=hkj4;ezZEU8HdWOyKSr#8~XK>+L+L_mRMh4s6e9}C&_f7w8o$F61 zH5aLs@Xci2!gc(JUS^rkXjiiAzOVA#n=aXHJYptXif!f?`iEEO5dA}U{hiEzKRQf% z^5Djg?5p|~%hj?|?7dcdvzGA99(pg2nMr*Mt0KPB?f>ZaH2aBLxwc%6*gv!U-~jFU zGc;$MJhj8>$cyGdu@;UU=X5M~D|GVFeG_&RcR7zSuKS_gIvc4Wm;<6%xS!N zRY_8#bN!DeETDxC1}z(dch@vCy8SdPjyGJi6zimX)9Pp;rUlmduyhHcoB;5Q96zBwK29W^DvC}u#l@x2Y6#Wi`jYjkXgO;GEm?;l1? z%v)`i*Z2Z6&J?U)aC5+vrf!*XN_@Tv%lzcE<@3fqHJl9k_B6RRSNFMP_R^~pqJjqN z?Rjr<;>zISI3V+z;^dGwZA=yp_TWvje z{r>iWmCtO64A1SnbWlux(;9bbu5yiTc;duw+P?crW$JXa@7@-f+iF&-fBj~z_+`5f zRe3q+MBVT_39I^E%pbO~{MtzO-nSq6&b2CgqrTbpz=;*?9@S}fIMeUiTQz>y9y2^^ zzXCn(=zSPo{?>q9MXZh%>9?(K{`JRpHQiG7(A7Ab{Q5&~*NzR&{Gq0{_ld5ZmmP2G zzDh&;x7~`r-d{E8H?Cs!xD#)54)@HlqUXJ{r5jmZx>DacN0XPk?OH^R@ z?CKe$lj)#Ey_l|%wI*cs9cer|GN{_6>hrI?a1YNGx2=wK^|EI+z9`gdcjrSNjQo0B z^z9XQBPytg>omt+#V*@Vu41vTY`r4|Y;Ni3`nLVE%BF~3?{h9IG__x$5WnH04~=#X z+I{+wM}yHO1G3Z(dtg1nZpMd(`!6@SbT(_moBS`V!lR0WkFGub^_7R?4h@(YdVfT; z@5dTzbND?zRjqwkvw?5IR+T)aw0tHXt86-#J7VVX36cIcTCIxHFW%`?WJ!jr(9`n$;J+Sz!$MgG79bBo^hr>_qw~G!o zs5)+M%+{Qh>fh|GS-@mSPuIQvyPZo_&olmlmhF_kt}W?f_j+>;t%BvC(CB0qUZTC2IyZwIhzR=Q@Jjz&%v3q}K&=JE`liJKW(Yw);j;~5>FR6LR z@X^OH)oQ#dZ#?Bv+lC>=)wS}xHqi1a>9IO|^x~=Yv$qpv-s`PtI5)S)h>0^5+Xgil zb9dg})0Vo?VeQvjZMPX)&9tI!$Bn(5&8sif7`rr+_d&f1(+=y7jz3##=_{MRI{8>@ zB;3~7>R8b6)7Wki2{SJiJkUh$3D>KXt}`~YnAX|GF^e0`dt7$fF)^sEwSBzhR6z5f ztcUbXpJ;BcX5c<@@%=2DGTStLbaU15Ws{aw*SDCdu$^n5v(J-cc~^oY4(ZSt%h`5sh9Ujz(D*k-zaP8`E@;}dhDa2DVIP0c!-nP@cX5H$) z^{sEj^2?gFbUNI2Kj0L+$27cB_a-Mi%(KQUykPG(v}KX8lS;bhF4J;R?k3hdW*6yF z@Z=t+;0`;T#+)zEr;5ggDxvu=`Bxbmr@1g;L;316p4gAwo&9K*nKjonG#^s^Xuuq~ z)3xjFmwjwNi7QdzJ>7YQ~HgBOD!KOZD|I>YcB99dnbc&s*&`a~>VF+uin)=U+y@-^f+l ze)QC!YwpHJh6HrU-O1Dp4_ZBh0^+1v*! z4R4d_VzJy6CpZKiv`NUleOu7B_@NQ|w)^RBt6B2oom?f$cv=m8WS!}W*3AVo$CN$O z+v~x!LzxzQTKf8>{hn2qa#uIpSirUw?$)+R+4^Pq%X3{@ldT04gs-}%|Fw?o8`|4F zwY*&9#3GA2HP`>qYU0pcvtsKM(rOnosL?iC0~fcC1J+$URz3dSsR}h8Oz>NoXYPbK z9-YRvu??T_^ZjSy<~!fXTes!q3k}~4+E_2p)xG+Qx0_3AwcdQ^aO~mU+V*Sb zI9|>&tjhL^e~w(=bH$Ql1J3RAvL4Y~w{c{CyKDzLd_0rw&FL+^#rD|ec;_(1pm0U| zA@vXSe)cM6u|usQ9bC4T*i)hT#>RH7>>rNyx7avp{i3k-?FxpKs9mz*DOyBW&WnYj zddzX?<=ka>=-J`J&Q}Z2&OE|y#Wjz;H9cp>)pYU9neD^%)3eqrnmj9LU)EO#jxW}A zE)nZEe`xS4FLK zh}dVG&E?g(yOz;?jI+$DGHFeZ1-gxMB%IfE${pfwxkZ0!U7h`T8_o#X>G0NRWA^a& z^`Z{>_yxw77lyJCBbcX=--9!8J3KFbnz_|I+{C8+>%B*3dupOL8qGxJ& zXl5vyQLp-yXT%TtCKO;kjda)$8olI6r?~oR_oTzU=kh z#cv;a@OAlp`ZKaRx_8pBbU9Md^r&v0D~?8bokwDKuQto_p={@^nX}pC-Sf%F&)UGw zB)<2$@LPlR5B1odwRWY=rLO(8)NszIrS}>?DiU?Mi}BXHKEZRV9&V6lSM+$_91iX0nCP(qmc!#T3DrdgabHj?^LHh&l_FB~C_Lwo9od4?4vZr@T|C7$~ zqjjAet}c0~>oxfOvh(KEyyNQ6Ieuo%g#9@@&&K-Jof~-SmSdpVu|iLB7Mkj|*4EiMr7D%al8P{YC2&GE^qm66pa*jCIvv~RB-eJ4-e-(zT9FV~xvFB8VMt36O_%i#@c zG+a+^`n|-3jn1!EEI2WuPr2rGq9#q4cX7geNj(eqwDf)A^J8tZ=G8{yAy3~6KHp7#n5B5%^!R`bz;W2qib^= zkB__3q~H5zb8VLQem!A*fQ42|%L*4152HT3DrfI{>CRJ)ZAQ)m8Z9$DUiid=3u7%B z9_X2AMYb_z3mok;{cOXl7Yo%*cpJKQ|I$A39ZL8c4H|RwX4_?#>rSZk`eTbzRs~-? zGIywNU3}-9clTGBJ{_jl`0~_=)dKWaP1;|;C9M9H7x(*WR%=@4t;Q?IOU=b#xzx_6 zZ1>)wdrYjlY?vCV-_p5#ZMP>2OD4Rjeqwbm%^t-^_F23?Prv+HFCVrabkx84tO^(2 z9qwh`HS~V0#er3k2b=3y-pMxL)}Wnx3LmRkWx~Y5*>xv+_g*}9_2B8{E+`({_PsP= zLCdP)+YDay);&9HzRyY1n`d3xR9?|>zuDNS0sfzyZdHqUexRA*+i8LO<2}n9z1U1+ zTa;Z~K!kI)xPV=|&FnuFeLlF_us3^hdk1ETUu@X8;ETZJ6>^TM+v>xdGqGp&H9q#U z&mT9;czOf5GmnlumFs}@fu=V{XI(xzdcepRi#9a=ZT$W~%S-2{%)kF~%%gXUm(H!& z=W5K%6E~KJWz*GjFp9W!qN8Qz(fM`9O?hbWFnj1~U7u;&8yu~CxxVrBvYQ`xbegPl z!Kjtv+Tl$bj1QjS8|!{@)UmL_Psd%nT-n=G;nVza++N+_ex}{F<_=!|er@FBp_LB$ z)Vp=6-|7bKR=1oyYj&gMwyrl0wyJ;lnuY!TV-|5YPd4ir+hc{iZvwhu0eD>sZ9a*&)!-FzWcM zq2o_^G;CFEy4HxbRXi>2W?1g^YM^y*h0ELJ3!~4(PkMDU!lTdefbs8Z&B+rOW$o%e zV!(Et8}6R_HqY$$>|oUGjA(i)CeOymXMxc#L!+&h z56@b!W80E>4y-$>*}GNu$1dYNc3c|Kanh*ON=Il%ovGFre6!cT|9-gfD^th(jkcCp zG`iXiC)64UhUhA zo0RL}#J$@`Mr&TG379f|z}u0rl~#@`XfjN@>Bqh^D%>yG)8)^o=*al~rFwpt zXx2Q>DZN+os=uw;__D#ScR|@a?^Ij+ZhqmwN zy@q5pf8d=dU{aQ@UA(Oym-OE_`;zyfo_Dnk>V9t2q{ zRB=-K-XroXJvnf&Tb|%)4WA9XWqZQ8)d% zM=eXgp1R9yeE1gMT_!i{_8jPIh}G$ zx_m$Pi9Qa$2i}W!-+#Wx;oNpva<`v#dzsJih_M#u@{}-LGk538ofeJP_U^Z)c`?^& zr`^h%OfO)!wyBBJfExz;m)u;nYRG=S%2QV7I8wf0)uk0S)``CVNA%631&?QX^L(7X zj^feT<%Vmuj~-Z^>3PS(Gd)XcpV8A8ak7P#;R3fcJM^4$P2GH_L6*`}y5G6KxaD4> z;^xIxmeCmHdiVOER}U*!YxAbZ?!)sgd%QYb^|8H&zf+v-ksj!@IDd(?26O(>{xGwr zL*udoC+56$%*%g70spoiBO@9e-5A&*@^NRIjRS)k6$`i6P|W`gD^7)fXg|#0K(j9Mrni6jr%5B)2lQvUA?E`=1iVO8b#|>2>0BlXObh<#`$EOOLoJeYZTjdMaS~$q$)d# z)f)QF_i@0RZcy?o%rvX`=6Yj($W$&A}OX7use zKBw2F>3t^c>}OQ4dg!X_G2S-Cyy`#AG3;35zAo3^cl7Uk`O-_1s-BPT9m`!JBHpck z!Oj;9Z$`zBdA0k+%ORc~J5?;6srN!vji+PP0$ddvOT@W=(13@g91-Lbl3pE0{fMHSdK zG?R63j`eSEdxjq>zwmB$zdLSAhIF-SH7dY*V#RDOSNC@}(2veP+Bf=a?QJi%jyw>y z_;AeXY=M(XX}=Ek4{WqjI~P-QJkQaaH~Dn6^*{JJU+!!#%Utqp?_X=WXPbZy0TW;4 z7X5Cy8^P=j+ zI}@5V*17$%elfR7zT=9T^m#JaaLDZe&z_D;2pGJycZ)(+wSs5pReBoW+0$oaRm;^+ zE*cGXSUzw}~DNgUzkAG>a~N zW?f;=$K1WDY8GAk_?<~bJp+fa^Bs!DZfG!iOY!BFD?%nz3%q>Zk=A_PFW=!Ki{BoJ zuaM*H&2k48_X}=i-ZP?y_OS-YXNPxD_%FxsjmXYFe+% z{kPS)F{EVB-G&7(tW9_~E8*Vxv94DtEj``c^>J$l_a2LOt;spkciLB_iyQba8NlW~?4t{KH;B2)1m6cDt&c1`W@2?!c#QM<{r*l&^ z6~WspcW)BOWV`c{;`5_NZD?(DKcMX1nWgI)U%y_u%d8Ow4)Fn=;q`x?Z}PH0o>p-m zx@`K`A5e7rR)x94<3lIL=gL;5-z@!TbM2YcZpDSm)faej}znzj5Pr z)bYSPPd1MDIAFl$^1Bj_-PLORsDbvPZ7ZhlYcyrR$Iv2e4jBLG^85B;t%lTfsWqv> ze9QgqbLwsWefCLRulcQ9tlv-VK7VNCj}C=OnfuhUd06s9SdA$Gle-?+qwN+L_%`O* z$MHTjLZ=Q4&oyDcj>(Xb&Qo$u9#^~A{-t)EBMN5@E#z|ea!jnndDC7cy#~)}Sz<+d zjaJ&3_Ff5Ews)>h|HzJ}z5S>h-f3 z=jQetV$?bJ-qU#xY1>RJRn@=sc@Z3XRP)NjVsbb2oE^S(b6v&NJUchnd1kI_*mM2S znuD`NcaBWxSt{_5Z~rS=t>@pGGG5boOWt)4nr|C(>Hg3PWo;L1@b7J{alBaL*9V&R zEP7k#;({C5Tuzp{bK$FkOnhYilVtk9*96JziBSJT-r-rn83 zTm$`&H*Br-^#=F;)B0d=Ous7wcg_ztn$qK$!_d7>gFGs4v0kEAcWB=y{p;?1*|Ur1 zjOzil9!wnX96#vNyH%B{)yltaVTY(gZOqS4Ia#K!$JR1+Z#4F-=6xe<-lBz>98RD7 zpk25?tw(y3EJrt;x_)(But(QF8V6>MEdRLw%_1XmFE1R`)?jS7w&t#a6YIo!8;)xA z*lvsa$a3vkw`scXY5v^D2I#+?SM1PDpW2moHxF~#)~Z5u%_{}Nc2rpJuXODzkQ4JqyDbCF9nfHgBid`rxU%?@QO|SFq7G-Q&V0+o=RXZuC zXG7hN96eWhKy<^%@$1ZHws0}L*}8yHy`3JX?mWo$yh075fs2inST=Vvt@Cn0SA)F; z+$tI^zv0v1!Z?@ZVFqsJCU|=_7?bBp1 zepaIJst=80dau5`wR)l1D<3_uGOA#7aPPQ0zCCuFeo)bCT!~kGS7@}a_xjw0w!#yf zTrW@WTW?I?Hwb&b)Zj_h%kQVT_ttXi(Yp5PNA?dwBJHB;k%S-HN{?d%a;C%(&+98aTcmp+KsIB@%uQ;#KXhl0Bvytl?SYvex1YwPt3 z&F;7(VrI~h;=6a6mCLC=p}*tVgjPolEvLAz*BLat*3#IlY}{&X&C|L3MZmwUCyTCLFRVND!b76>U6 z+h(VKZ$*2j0%L4yziMMKsEX-i_ugUCh^s!BNRRZ-^rR5p?hr}KOJ=2rO=^pQ*#rC(TlY5=XE-5Q>^8z6|-$>uG_wDri*M< zCKp;(-q(0&ZOeiU9~n8H@*cU{dHblYi|kLfANi@HVasmu(VHd~%NpOH&%yQWG%ha~ zcyZ~RavFIpezO|VF0^w_zpV4ZoL2d0dyG6d?ewUl7xVS&FD)|>_uuWZvcI9(U{okyUY6S!(&@7YIJ6&_2ttcaShhg z8os$x%i?&J0EhmTlP?n1wj z+dGvnbflklw}{SnoEGbbKel;j)gtG7!!7Gu0^4Ah6>g z=aHp{YwIj(balAV((*kPS=zl`Ui7_Rr}JmK`MA%b`Q04RZJmA8tD%cV)oN)I;1b?q z$kn^rt|Q7{FA!)KVQ%-j(Tj5@ENTb0z2)xwRLifM!I?*SO%GaU53$JhI`&lXthY0k zUf-2(<5Znij$NK6}Zb?Z4S2{oS?I~-pXc{9V=^$nZ3MdaK++%`{*oP zZarg)i9R7@%OOvP&B~SiQ?HFVYj<8^ely?bt<%hGi}nbNEgIY_{$W(?^DbutR}J1h z^6~N7H@n2&8!~?XvjYVkO{QBen))Jt$7lRDd1^HYy1rN4BgO=AKCk@^*7vPq zcXH#z*pqu*=jXWP@*-;0@a~ai8|l2)Hh$>ZGI#A-YY+bZ!e{b<0lub*^SYUq)l5G< zjJs*ubb@W{qp{hy4_#oj;oJ$IPAx8YtZ99>%~h@5;U}(Cs9C$jtZ@C}Cp`iZo{d@Z zCjac{##-~o`9JP5;-TC4l6DK4`2=-eHmv!G$Sj*m)iGLh>*0%l4+(bH9$s5}JJ*oXW1RbkEPmf* zro!=4MYEHC4j*~9#}cu!S*_o=59_Yp3G**ft58RW*o;7a9_CvWMgBlAH4lXrQO- zIG}#}2AX*q*i_Ct_o3JQ8ur087n~^4KElIdO6J0+?R9Q-_)BBjJgrUBUaZT0)oerF z*$0caxL;^Y*$YmmIvL!JpSM8o>f2!5mR8Sl4msHIe#L3MOUMgFp%#TM4sIA)tivPg z5>MJpJmuUr>$)giEA!~G&$89?DO%Fo`C*wcwpUCih8~M}^~aF2ou99mcz(^9Av1z< zy(?7X_wI!&-mnf2UuYkirS6crZ(D4SI@q!KvOH@wqMOc|+AX(Lzs!4TJ#9A7^O31p z-ODb=BP%^>S7PdtCGC688aU%cqs~?Pg+})ta>wIE)h6@pVrz6>JKVOsUJnhEyG7Q{5-PqOPROh-4_Be!{Utgk*t!1~@ z#szf@L)xz^vUt&*5nAsSjyn|EVbhU!@rK!aUr%S+?x#q?-de%6lbr9bx0d0~HptGa_GUo974 z^XHqar<`)Qj5nyZ+R-np({K7){jDvlkIPZYJX=LwqX+Y9wr}||WcsZ*{gUsrGKZPD z_8R5Ay@Xfvm22dEuh!)vd16lI>1orT@4m`)7ke4%wVtuH>07T0>)dKp zJa^V;NUjk!CE{x84>oK&X|U*!eu2Uk0Oao7B|EsB=#%ICO8qjIyAGp6ZI+#j?r zYIU!%y>HEXZE;;Yz{Y>#nPPUQdsaU)Y=PGByvwp@&$T5y#HQVr2j(OC1-2U4rh;pb ztyQ)4g>>rJZ9Y)tPCsk8m06T`o2_XS)3(*-;Gq86)(35?v^H&0_>bE=O*hA0o2z;8 z$=MQb%q`n@aD3Ex>&(keS!+jF#Js=sZe87+d0T}zUm^V_YE?On;N@>8IUbSngj$AO z8ep`;zxqDiJ>D*{tF~7TY4l3U6FNCYvA?U+^9Ij{9m-y}{tTb%vLSw<(5(DK%Pgn% z{Z}IWNuy26KU(Z*HfU}o@p(2EL~azxQ=dUoqkxu%gvty5g@2g^69ojC2plPJxxoDb z{RQ3=_(;vr-j_>Y z34t{4ngVMJY$&jmKr?}h1iA@4E%35H^!H34`ur$R)_qF)m)ijM@(j;X24ztuWm5-r zQKz9mXn+=If;MP`)?bjZ5}=RQ6=)^UOW-Ym4+WxAFlm4O*5BoNp#fT;3EH3$T7SWp zO8~n{A3~N*1!8lj2wW=ATi`W;j|ILIn4qbtnUEz*7DcXHxfF#97gkiRTv<`8RxL%F zHf-Me>*djIt4lOiD@ zK|(&$7CwCVAl>u&^=s)Fo}~=RqD;!B4(g&#>K-v-go3sKP0$97&;JkvV5d-afi40)1l|+) zMBrP2%)u0S^5l{1?UX4~6f0M*l=|V_yLTlUjlHH%({JPBoW&9vlpbZ*#?%b(Zym+yqPMtcEO@J48 zf;Xk#fZqtu@Qw_S1v2?xXa@#@&jA9j3Zy^C{X+&m_@}@qf$y_t&#w6W_umyw znlw>#@7`VV+vz{}Tl6P!zwMXkHF0WBLqq@oYJLB zD<)5#tZ;UAmSSbZ*ndIt5!iTM zHp^I#?tj6TNdVa)Lsgk7WsIy#3;YoPdqkT=_jd#;N|r3Cs9LqEV$GU0()#O{asTTn z)~=BuvP7oHRw-j-jm&?9v4AlNyCl=6Xxg-?lt1zG>C<0I{7MNRL-JRUsj7^XGDr6R z78r|)@k#OZA_Pip6gt+aFG*~d z*eTj7^!|d3l>jnDw#Zmj=1Lu)i|+-*BN=xB1u{34d{q1t#wzU9uYRAgx~DW`ifoZF zvSv*g*(-H`F3<_O`Iew53a=@UxFoTu1m>vn91nlx7kpa@AYaW!$Q;?{ z&6`)!1v*jc1|6ZRjDl>UAOnHqrl5Q5jO2q5qabx&<_t~xqUi4me3bcC+Z z8M^ygATN>m#h(J@@kUz1WgYJq{JRoB2kb*o)s0eD=nUO`4bXl{3cM;XN}!@jl`4|o zaqir?Uu(GkuIi=Q83Tw7kVB%9M})4>8M^x#8^9V35kdQ}2E*Uyf>I$8qJ9PM^;36LM6{sLrm6!uLYxo}j#-0ncgz-Ok6S_br=ms4r z^NMK)=nfsG7ucJYRiKAJ_9;l^HfYd5v1QAapFS`9zt%+LJacq|j#OfU=nfsC%k=Cw zWPc)aNcJfaUy}0keSLkUJl+4A{QfKakVB1**h_)Vl)6KQ=n|c(3&fJyr}%{ZO62JG z?AcSwRU}vK7yOtKKsWdT)kvJoJ*nYv!Ap!Q!vELBgp+luE(J8t` z$0-3m!fyh13Y7NW<4d4>_OShepF;xZ3Z1F=f#?#QqTAH`z`EjhaymG(LTW#prNbW9 z@3BXRHEwdmA3l62`I-1L_wL=3u6>XCGfKPA3Lnr84qBJIz_kW zI3;K*ejvB>mO$w|6XHGWW6r2OI+R0s(8$>doSPtC%PPt0&Ye4ot5>foh%E*L1W3p} zV6Jf<5AuwOiBUXx@x1KK}ulpbZ+K6`G-4<^!I%29MkW&+rZp zoMVxZe8@6JcbrLsE|oe(x9B(}7%6^;75Gk|l!Lxx$&w5eEjcWlue5vjZpFrp8>P7l z=OnO}$hk_?n;hbYa*u(5fud8VPLfZ;o+*4@Wca<|!Gi}9AMjvrZ!ggVZAtd;{DT*G zmsk z;?$g-v})BVDTjsg*2rfoSFW5wOG`^NZY9&4_#a=Ed&-tAE6I-eC}%(+yS;n&N_~s- znphX3{bw}DeVzUbADcF9lK6m!0Rsj|G(j6QD*f(6+J#ILKNFkd9(aa#`5Y_wU@Zq5 zK_7vSueEFF4jrOPbc$}3I!4#3en2kqopE8QKxy8{IYyji!+9oO1IUg3zJLFI#lV3B zrS&7~$S9;Q;iFg!f0x`S`q8&okERX7hm(_�N2vjN*az0w3h}!UydOKEAdcqdRnn zE|swWXhz5A8lB5fLVU0i=q*qhGw>Za&**Dx(#4AxrE?uPzo}opeva-JwHtsp1EqV|0zqWvC=RaDFLgSW0Kvah@6e$=3k$P}Zi&Rm{l# z0*%QbGNd03A3i*Bo$71o=UI7O1v?KP$~kqi^(RNumt13ffR7CuHYg4qI`ma6phI-Y z`GiVZSQqvbh|XmoZ}gTx&M}qRAAZS~`c=n{9h3Gja&9UzLofJml>IG{euORM3|Q*5 zu&_vM2XS$6>6RmVE^KUUq_T<@Eh_PWE&Y}}P`1p6uCA`+@3J2hnSKeNLv)EvQPPc$ z(KR}kfitWh3VbP0I#-jk6`7ZO2_%U>$@PBs|J}NElXzh)W&BPra1I&g1|ySy3$Zu& z1jzJD03D)BV!}!u&@sA3=K%3QLxJRwN^5=CZ04}|Zs`H$y3oq_D9TbBv3E6U)KD~T z+*q1NaV|5m2WQNfA+=q`-7m4f*d5BIOxgkCc}l=<+{3**lU|#}7{_ziTjr=%R#u68 z;5*O<8#QW_XcN;TBV>wfk#Twe9imH>95Hl^uF*NV&o8i*z)xb1Af3U;*|wZfq;8G} z_YvFj^z@X@&Ms4?Oq#l9eF}MTrZVS$F^3v8YLsHyv}uyP!uEpfcfkhZ4|VC%MUo$~ zz@Jgar(irNU%tGePoF*te}8`|7Kcn!=T>~?8gV-A;a;9eZ5}7&CGiLi+S=L@ALt!E z=xgx7TtVjJ&p-c^_~3kT_#jsYKJZ=D@hOlg=aMsz!j`E!H$XS&5}h)xpks8c)H%90 z5ojh*;upV`Il8KR(rRz$-dC(U<0DayI!J$}KQN~vHlQxBzDZrIM>3yOr!MZnpQ3NB zUAtE5gpexNiHD1R`ce~Q{)3%N;@a+#rib;fjJd2qy4B0%xP%@ z*c!$)%A(&= zDc_gUe|V&>0|yTLtqi%WFZnOqPueE7CpEuAt{?l69zdt)79A^jL+9vzzrfR6BaTKM zDRBpNfw(2(Gx}A@JCy5?VvqcW-?LG~%7cP}q_{#x#psydVt??D>A&cP`rs!yWV~i< zx3ja8o?$%YZ1J?(4|1n{Or1JadX6=m^w{9k9Nqg1yv#M)2fi=ki@K2390^-So5sG;=Q66_tJ3!+<2Sb3TKLn% z$5rM=vTXkGAKQt|-?3xIKl}$(TE6BpZ2;L*4>C(_9Kh#b4MJU@Ty%?$(X~?N=>DF- zM_l85IlS+LcN?e+_`WJOMJ_w>KYl)OEaDgFNnO8H-TLMGD3>vqxeoC^)>cxpqx3Jv z@lvHqDT)*+l1MLdP(}J1IkotktntcgwQ{}5{U`29JI6-I>;F8P7Qh3x09!`R74)gn zqWYQjBVu~$0y;&v=vY|}I+u0-jBC8_hWc-@>=bn{LGnBlOejFG-*;=q-FT;*k0NI<2p2?Mq_fnp)YGp7llk2SQpo_EsouXUfkIM4UxvYCB?vIVa z)~Pc$BYs0nJ2l#vBVWFJIaSiGT)CpSbm@{bMlw#Si;QRZd#M3AkgR{RHghA@8PU*bck-UH9@o*H0dnP02Ymh>}c1+zYw z7T_E4?n9LrtsDpDzodWOfyp?bjz7ViUu8`(SsKY@N^8Ey7=n!;Hjo}fevI*H0rk@# z(=!ghm%8iUjK8N(pZ*)|ZQHh$#(c&RdH#z(pvoUS!+UCg{P3NV>Rk0Z;}f)|1?ZHv zjE+VjZ+4+KD=`f8t=gTUVwdx&P{no%qJ+CAsHQyO!Sg z2V)U+r8cK#zQy`add@Y$wy5}2YV$!HhPIy;Aj8z;fUUw7rv>N~-J;`^%1e*_8AqT$ zrLwsGv+19K&_wtN7aWH&PXi=pdoiL8z|I6_o{7=<; z;2GXi1MFv7^H+8CpNjv-JW%rgvFXeaXm@FWI`co)9Mj5QX8uHe3bCp5Ap57(ng3yf z*ek-EF13E7`dfPDf6xFesZmh>}oaCDIt zpwkrQe{u{U!{a~1u)j8cIW4|Y`Sx;1NhIZ|Db!~ znAqU7)=yGv2mki^4?Y92k<@6+fb}2N0HyU`=JV{KOV9c*GD>OvpYacWnpoHOJU@b% zIq_E3Zc|!6O--iqZ#>KSy3C7+AE^t(gIOPi=Pz0R#pfgTkL-}4OpogS3|#+}a{#2= z0OHN*$^Re+fm{St+EhO?juIndPK^($PHa(KIji1BxvX)KXF;w8{U#;ZK_6`c+EQEp z=RWdAnX4^Wut4%RiOHqK12o`!sG_?0AIOMYP39larz%U;&*X!XQr^q=`r6IY`_y+h+>c($~3o$PwW=~zz znbCl3kP&tt-KUoSMa&V})dj{0cupq&>#OoV@ju9)#Ai;fzrh3X5OTw5D;b^t$ym=k z3VVsKNzO-VdC1sv+6OdalX!0N;>FT6eoL;ca19=ejg6&ubJ7MFBdI$hK+gX}Hpqxv zSvh``lpbWvZ^V4D)#^ej`JX>^{x|(aj_s$WcUg|rs#TM01Th;K_>A4)H~GGl{?m4d z?J%#U?u-EXJ+UG7P+(`!Z%Xyc`QNM!V~5m*RPw*SdjALcNBBso?PFm+#aK)K#J;g+ zO+R8hRVUv>=94j=mHDCJ}2{ z(8%6T_+am<%m-}*KA4+u4|`tW10GWI^JPAeDY9kX8@g8~H-WaueQE6f%&`66%ysce znU~0PtMi}!M&CrY%oB)dQw~Ue6Lx}FBKN4HbJaSrr96l4OCL?mW+GSmBs4G%({@zL zO6xPUQ5WM8WiT(2`LMLKl=x`hzP)r$dTb2!B2&srZybfbna2KaQM_~(0A~VZ*!d68 z%2)>N{}$38$;CtO>G9R&_#rW*wBm2ynm1&KESaZ#3BU_BNG0zx>G=G?0L=Pz2cNZR|Slyh?Dzi<{%hM)fg-Rxsxd`qvr`Gea^X$R;YKA3}0*Vo3F({cV| z7C~PDfqy&ymH9Apx~~D|p2&{*F8d#tzYyazH8quD9`Kx=^IsX)+y$GAUa=|CK#A@WEJvPY+Gd#yFSSyg`oN%ICkr19L+12$`cJBV~Vx9XoJSo;&<@KJ@Cvk@IW3bd=Nv)NJz)|&!4sb z`E2kN;tO*DDaJw$1#LgAHBWWvrcF~8?Hm6L|3p6jom@d;sj7$%!9Ez~u&nd2x0+}0 zYvsPKZY)Gy8r8W^<^vvR2hap<(8!pr%7f}>c;p`W{C9YuPh_NwkuT-Z#)xB~OQlZH zZEEMgb1pFN2)Hazn!kU~_dlRh)irZIBP(Q_p4h57`umpmB)9%A^97IJ8juzBe8Kx4 z@B@AmxKrRq+5kQ&;}ZSw7yKL&Kv(EYWv+!T(J8t`$0-4^VBQhLyMhwm|MWHSr=LS& z|1B!fy~_D9>3RQ?+%C+;2kHH9__Ej$;^)8M=a2yN3HG}y{m{2cU7}NUp^><;uR!Vj zkF1F^&tZKGU*{M6m=ZuY>@i`#3-JkM%>7H=|CmqczNkQQL#4ez%vCsV4nO7>{Fo9z zH{=GOE1@?K-JwHtiB8o8d<6Ue4}sGApMU@TcWKSq#l=PP#WQL?_+v`)=b{Q-;PYqT z`=8}@lKB32);+K(tc4K!_&4Uf-ozLh6b>TA=+H2%I4BzQET4rS*LFxwAf=p1kL8DvbZ3!jU<$M+f9qpcAET&=I;q zXJ6a*MG=Y6OnmYeNcoBT=deHc9>3uGN&uN7d)5-!lYmZ?x}h&mg_;Ci?GbE8{t0j?ex|a?Dg^uG9g#_}*YFD(o!qhQJ7c3LPCC zDc78wHrjwX=g4Ker2bnaB13dfPCMshvY!T7D`k%C(E+;nw_v`gc(Xv6E~yP*2N(-} z!PiLun@_(-_o^~h${gAM+rYTfN8m|;cLYjyfc+-;1HXL2FV{b^W4y=atMq$hjI5D4 zvi}jFv><}qQs_!-r}!!Os=wgNB!KKxVtcY&kukC^E$~MH)|g5Qq)jpwLk3uUK))Z2{RJBjRcDSuiSoJ~BnN$hfpXWd5T8_J}bFzeH-U%u$I`5UV0yncDvQ zlqK`O@e8s+M#NM(_cO_U7-WiUe-xW9NJ$a!NtqimHzhtH#VLtZvtGfP6@31J&k{fu z$OPFW**}ErkRh@}rauc93qqNb1_~rL^@$iY>lBP?q}NDlTkJcp5dLm9db8R zWuuf8GDCJhgS{7ICJSZ7)tUlXmtftHwPW~__R!a@TUW|iBX5!1)&GUua(IMS@@UDW zBxg${ZwJ{RBV>ilkR3AonL$$!&zcnLlB`X`Ut)X5zvYY_a?2SH{_B9fCr6v}zmhpa z0NEfTWQEL--G2dCk1Q&%nZOAG{}dP{@IASzv;lI~*|)&n75ThyY~;`E8_0RtoY}?s zO`K!KJ{ou>pI&*E%zLFQkO{IuM#$=0t>KEI|5Y#$wd2oR6-bV1qAj35uy2XEB5i;@ ztn6d{SpnMN0bZ=d`Gwed-VLbAvr-1g0+}G2|2kw743d{vQXpfSuR!*gB(PtJd=}0; z!zOUf4(AVWjsY^{Jd+>USA;fbaIp-O1)&jmWX93g4{*ApT)JfgY04>l2 zZP3WMIh>tRym)a%?%cWM{ti#@29NLx&+v{6{+IMF*!>4&6;~MZ*mKIh<4A$h`2*s= zBtOou;XGFQ6X%)XJ9Bn2=Ynv)Dd%x~?Rh!sj5BgQ)Jff(!456Zgnh?`L90x+@;|)5 z6THDAyu$M@_$&eT8?rx#38v zu}#ndP0*&){Re1P(hd*s0#EP;kMIi5zaV)D&^LY)NZgaPu2_N31t#rR(s$Ygv2xZ( z8FTyh?=PKK;Ogosjm6Blcn=^pn)x^F0bQeWS?~C16Qxg7I;k{=a{|}m>~LG0=^Yv zZPB7d6`WawuG+L|qxj>GKcxH#&dw$$h4a%n#}V6sUO_%{jo-M3bNz`;@+@Ug7G?6z zC1re;evS_ZLIbqm!$TW1LMt>wJ3PP(JpF<%mp}pWD6+H?$XT_F3l9YnCkIpOkKf`q zxn5|17EgiD2941A3o=#$^r2h=O9-qakl1K#frbKG2{aS9NT8d*(*iFGd?fIhK*r;b z0@0b=Zo52|62PwJ7ic07o4Z`# zeu4f1?+HYI#Msa$b1=CLB&UCV;~wti8J?vK%A!olrVi?&&Y#|M#sbmSY7exEJbOIP-;;ii`1~w?v-A7x|Nky=kmS2c@e)BvzbA4>F~$l-((j4f^1I;JkN+|Vnfu9~ z`LD)z)!QK`$@jmJr=ek;)^`=@P?Ao1zeoJN{_J1-efHnW)6D4ae=q*mxBqnsWOVzA z_`5)}f9?15_Q$06r`7+H{+`sH{NuZyDuZg+tEBfQwTDUVWzz3|BT$&@q~FuB-wG8C zNcKMIcNK~0i1Jk{uukr~ibVKX)dGM1p2%Se<69z!#-Hz(IY?>zlt(ZfEaiI~7>eMaf~xBG*ij2~4@UC0x5&CDDy`KO+j29fmH-{6-Z1tMxYeKApcKC?4#mcl;nnRhI9S; z^(7>>#WjB89_}UX!L!OTD2p;Fn>wiLM*(OlD6oY2kKDfq_9{KG?i@^Q1i^ zVPRoXJdRi_Yb_w_YwU;NeVy!$;9lZ1yg!fkZc!FxQns=V>Y~nnTMn${_YlbZAwuXZ zf%E@)ry1`mC${`GXTNja^vRParLubU>LtC8POO#CCL)w|Qun`=Pf%IZJy&2fYrCxP z^L{+^$GQC(ncqQK#OygwpLYQhlc!GVR?+}1-wTj;AAv^%zGWTL&dyFc7oHgOw_K~D zZ0ZOQXX&$cPD~UUl(az8w{8nXMIGooQeeEXcyBT}Fr0P&y@5KB12jO3k|t<_#%}@T zM4>JM->^=AjiOC{OMRy$Q|g8W-btz4Q}9MfBeZ4|WD*7G2|P%jGc+`m-e2@@tj(t+ z4`}ffxp(B0DDA>QCC$+OwE*wO$mt@V_eVZ2AKIW%nSXXn&<*Wh1GJ-qGViBPpH4{y zKg@M#RFMJg;7j`gcEpADM0r00@3InP87TV#HY>e0k#PiD`iB1gBe!{(=cNCk8QS4N z$xC|1M#j=eY%1?+`&j|nmE!{AH9V;U_)_>b@r-dllATYl9-ti_;6=$(T7IJ3?%(o0 zcE;A99pFLfBjG2~r&H<&%%zx5MDuPT{JMYBx5+5E!vnl1-Vd9)B1!Fy?u*MAL|D==?_M4om&~!! z1I$l}VemdH;u;w__m%0OOv;wunU&r;;0fN8@dInYFFeaYTcIxbwe zAmu|d@0asyMvNFC<;bpHy;^#=@z=bo6`KA1{S}l&-YsPh6*)ZAMV;hg(^l2ldyXA| zH+Y0sf$$7u5!jXZQt#fq)3o{Im=WV3Z;bf{`#qGgI?9!h@8lHG-k_H~!0ON_>l)c^ z-@aYJd&KP>r$xSHTEIQzYn3TeCaqk&#Jcfu$m4>x)ZSwPZ}14O@GKDC zi7&?xt4z($C2q++-kdpe%DJG4^^51z{EQsf8^-&KQ#vbyw%n{)GwJ+4p`$d*RIQi$ zp^d#((3%p!BfP@1KzJv{p1@fS$;B$^H{?UBoJpBT7jiFEs+6KbhYr%aG94To6tiZ{ zlHQw2&Zf%wwTaIVv)U-$uZk^`fzMo1#GRPe*OA&Y3xbbUscQJH`*q7+DQTW==bBsjZ<8@bSdf2 zlFx?yS1q5s;fD_&{^MTCf@gRa_>r}@RV@5!uiDrM@xkg|UrTl4_aqXZj;; z;qv9n$&SIkBEHGm5`BaBh$jcE6)A0dVjcKANdaEr8QujZu>P3b{yXF?)5rfILx%k0 zd>822zkh$S$Q}z-U_Q>i8pd|ja`}v%WPK-Tyn%K@`L?#Uk{`r-xUI#WORiD3D&XHR z{;8JDnL9}VyNKT;?qdv))?ky?%QN^as%1@_IPo823N{*@B!~E|NdbQtpHQ{kGmg@( zlk*X0%$OmSO0WXQC#DNqtf3rHxmpP~mShLNC{nYyXr%*_^qEPlevuhsZVRRt0BF6e*&ZIdi5Y16BVWp9dbnr2Y@I96o$l9@7)cYTv$nQZY*3 zllVWW`oD}Zs(bsfRm6tX^?#X%;LFl)RrSq$72lY7JD*j5!`=-TFhH$yQ;-F;;FBly zfAQUugCzcMs`DRWFiFQ0dHzE=DaA>dvoLpId{njd@X1_<_y&F}$X+~E8FLSPfoJg- zlC#b5g}q}A##}6EJc8>f_0uHtpET#c_=~h9RUPpeUj#pzxhZxQe(8hc|3Fhxf1hWP zoBuMVu-756}#m-NOa z-~;{On|gYB{-ggw8||1mF?mGF_3OX!L>Z}}y73SCn{vJ>$3N7Lf6)%Gzsa??lxV|W z(bm?M^p{$EN!AZ@1pI7tn{-Z}QXR+^|C#v@F}jq1F*up{S7Q8=c1!M7Y9Ply2M!!4 z=_;l8C-#omCGB*_jvXoX#pLRu-(nx|<(bn`R#KmV@6?U&${2-Bhqlxph4`lss}u{q zLO-LN}7{qmCW;(c1|;z>6}z zoZ9*~GDysSz%R#M{_Fq`@FI9iEB^uhf&bdKjAO^tnh{TPsl*-2XBaZ zsN=W&XflH4ugHHx28sEPty{PL;<)#}A(srue}sRaoWO(3c~~?2(%Ap^l!45q$ozM?9ncqC1paXQABcx2 z;~?K+|AWjw|FMbWP(})jCk}{BNGS&PE&DxnQn%8#`5yaU1j`aIHj+zBj__OjN@5Do z!W`>c`plF~9n8;|qu{4QgOV0#g0}Ak_=&WIXyz5nt(ZHr-iptek#k_mA}&L0;s@CO zrYc|L&76rjm9+nn_yRd*vp456B{}$hn15j+yu_=Bo~j{mkif)qB7~=x!RJI^ z8*~J6zLu%L?E=FE#tGzXE~o?f%r$=Fp5X#{Mn~YkVe7Jqda-AV#QIW@80TNG=EwRE zxpm~i@%}r`D+c+@HP$1zhkJR3XDLHj7G-{GV9wH3psQFzdR3-OnNO@IlV^%=!q`JR z9lt`=U*j{^_>Ft+-Mc5P&GM{R=ln!jl&LJ6Ix-s2v9`eZVw``*8W?$Byhn+3;x7f( zYVbuUiyRutrVeFY8P%?S6XnrXL&dt(C-QGupHA;OMQS`!R!mHcV$Pg7tbNf}LX~w= z_tyY^+$4c9=HIIl>YNQ+j~-)lYWO5WuL|_L1S{jxG`VsY5K%D z+&>y%mz1`Z@gcb}t}WvS@3Q%pHu6j50!`4S9OLi-Q~}?^Rrmub?pyiNdNcAl#yG}l zXcegHFIB+@VH{US_T&XJw@xmvIKA{z24$&}_Xus!sPvcc9|8LFBK)Y7V(9o^L-qBwo@}1Z;?>r}m4c{^);5X!l|0l+!WXlq^Udn%G?@w}L z4>Urnp!tlTLr0(qzBoQ`Qb4D~XOi20rpkl-89tEbwQJXs7NrOmduGUaN-i%?eqQxI z`K}8WE=;yvK`S(i`x&c-!*kL#dDDCn6gYM53y0BMp7O;x*(n;^evS|?j`T=AV)rFpQVqH3&s9j`F`3O z`_WVZTA>-*1%@-POUfhfe1mq7{6^YtN_~p5$>~Ct+1)M%H>h8Fgvu-{a!TP}xd z^d(jMOkc!58z^!HRe6Gz_3PIs_7&DFu~{h7PniX#XB_(MXX zBk3sp=<*RPrEm)1i$u`SP|)Xfh!22lM1z$k4HY%SWlE~FF*Ty1i4;LHzxB;!e7Spn z{QQTkbiR9cyF0VHGqbZZvup9937_w)?)9>70x#C9>UreVg9i^z$rfWF*17hx|1E-s z$SwZ|MjU?K*WuZ|u*9S4G;oD8+v;bBd46hlIOn$^{!gAf>Awx}M~ir)UgUmFVpS{to`>

$XF@A}*Nfc9ghtQ`nn~DW^rMXZ z59BBrgXbz8`bKVL9cVh!fPO~#H)EyoueMhH$a;o%yopCE|0aCz_|}H}EADy7zhH^a zPg%BtfB#@J8_Lg0d*tyd`AL3|jbtR8$;>-g@{)~@uToW!@ffE^GAIR7qX)q;pZ4D@|zD>T!y3|ca zr>mo*F&n~&{@m6tY{~4gV+l{G3msZxkju{Sr7P1R$qMs(l`UiScqb2E|G~jQD{Jkd zE_JHg8i{P3l6NEPmuUWMqxB{TC-KIPuwB zng0m=hCSn~{-bPzap?Vb)}R+DTh)Dz{<~}gerWzvz5z1$qWq`ko^$q}W*f*QvbFiI z&4K1|y2zN#bX~qxmd>TF3-n)S8{Extef+?DK0j0Z0R5f)neCC@*y%GD89z|l;F-Qe ze>xSvA&!t;j6G$|_zgDX%Z%R$aHkTw+KH>#f#crnk#WDY_!)6TKZQmozKG>gywMH! zMNG!-fs8*V;YKG1?#}j3{#i22qgWI?Iec?=GDx4s{byME1n?)v?^$TpAbhq(GUt#8j9r*%E5naA}g zc=G44t-X(R>|fUNF3;ZiCQp}FnQc?_+-xt_qrcp~efyKx2{tQd*;vb&S6rUGvtD%O zPRO56$|xI`I?j@AMWOvT_v=sR5|K?)YsV^=(@x|pr?3GV#{Ia|wMp6yf9&sJ2l+B~ z&RB)F>{(fLs4IZ)u8F|Cm`^{hyRUs2eBbnkxnG?D|K185cIC5&{k)SpI~=C^;g)`? z_W1M0LEYV04Cw)l?mv9^FuLo@d4uiiQ#X15E3V2Hd+2-{TI+$VcmM;efR8t&>v(nS z?60hfKC_8_D(^D=32%1tp~*G!f(@)Db|-!}el|W3Hh2CXKEI)TRXO%N=jvF~$*YXA z>`}vh1q;k*`#i2k&B=b@65TzxMTvPx6nCW6XyfGP%`NeU)H=2{xHs z{WS01y=!(+u$?o+Kk{pwTfy%4W1J(AzEr+T{xkbb@(e*f7q(lngKwB$z&T~=Vr%7( z%>-u7C1iIdd!)44nKZSH`TfnCH_c8d4?Cf=LOnY(*j`4-_^021Kj!Y;yDg8i#4>@I z^O*jV_*V26U-g)+H_N_#`?j}R%O7&3hb<4k6&rabx;URl@P6-)2Q%l;q;0VY+QP=4 z_F?Ni{qAzEhh+Tt)xmaopY+2|!*8$Ot+6Hc$n+J!T>>-b?}SfA4&gheh+n~#JPMYv zP57P@K6^b_Z2#E@co9FSoByN2*9W!#^$}V@hf~Qo>vQ$FJlpq^2|fwiJ2rafMUC}8 z8mRQgZmdo*3uE*LHd@O(nO~nL4rnjwPaW*g@}t8{Nq^CYr})o%?Z-3D9OYldOK1ac z;W2gLIXVe{vV7k8_W1GRb_NVQ$vHfn{8wo@`7g@-NB)49e5>Ai@ijQt`oo70*_5{K z=A+>wsChkuO_tSj0np0*`}gH-x+2|9TWTVI(GnSoo>KmjvB?`XzjtH}6c58H5--|C*w zKj6^xFZ0Yrr6u|o_|k5~SACp12X7m^*3dssFbEwP4sbn>u~3IT?R4K&`gh{c)*tlI zq3*ItA1G_QJDqn*?@pM*I~}=Sf8p76`a>SFgzW3|OuFt+-yXu6`b|gP!>jbQRqIbO zm5xZBb^N^-<*S}O1!vX!3tNBxy|~s)HDPD4_ipDntS)igI11~;B5-%j&X}_NQPg!D zb;k7#GX+@9OcAizDZ(rRhL6)+uj?$4r~x zoZqZL#`wXzx;{}R`%2ry1JfgR;v7n60J3SCugsrxO6TYKCVod=Wul*7>RYhsGUj^m zlhzbs*_;E&J}TCVpIvNuK(z`;yUPtzUkxazo5yN+m0V1+=hNSBHoIAvkrJH;~(ETy6tJdE8E|a fCX+UT_8R}9HQ)M--NSL%NRQZkH;_j1Dx>T_ajb}9 literal 9662 zcmeH}F>WJA5Jg*Hpum7dz<{F#b^;r4$Z#{y4OTZ0Zy?=(v+x0=8&IJ$`UXv(fJbQE zfC@J-R(_wF<`&CM4k?q;EU+bfR(I8}>R&xWP$8W0HyQ;#tMKQqA^aRd_ze&WW1#rT zehJ~HAD;0X`2Lx1;OXh92G?K)B1jI3O@TOdu6s)_9pD};!J(#_DR}i+ICBgVIF>~k zU7h+_a7G0ZIF&^j>uY;-qi=I6(S^P@#~Og%Ll6sRoI0d4hyP~|>QDW?blt&18eTGk zW(NtpwP}Wfp93}Vt%aNOXNNok>h4T!UzW{2Ga$C^i{OHes%r*nVxg`tp|ndsBFB9Z zxv>&Vl&99)wzQ0#dfFF{yl;ncT_CM zRldgV$q&H+{In7xHyJliV)tw)8I7$djlA7t=j=S%OgII@aSt!Cxk? z@255Yenp$?SU0(^_tcfNeXt=l(zP_x=L!1R#H({X>k9aKalCD4Cn;T{ z+((}M6m(gFP~|$-rTL~N-xM0IpO1Lz2NngMLJ3TAKf_mCs9f%v*tYv9@k{5f-%)y% z<|F*n*mJdRxp(+!iz|F(dD?>nvLzOtGbE-trY+R-()Q7snBpa?Ew@ByV~yo?t*P_L8EHQP1XbRT`UE34VB z5ubWIK=gY39_^zZ>#x1u(jNVj9?r1w`&iO#W9VP>Xok-B#%k9Z?G;Epm_ZtL{$6

2>>x103{SE$J=A&|ia7eyYTr`Nt3MF3v*uG=KMD@Co1icyosTqd9*#`x_qy^Lpjan)!xr z<1H`OKlHLL#d&(oj7q4QWuc2`v$!h)NG3*_)(9 z_RK6J{^#BId4B(X{gfyA`mR2&*XilA?mgq)bI&>V-1}h|79+yoU@`KHN-u`7q5s+J z-_Lu9v6yhWrmM?6AHguWsw`%}fZxxP6&dE?GI~>bW3;IQQ^Mn{ieFuy2 zpEN;VvRQ{_RJ5eQn2}R(7a&IWnfI<%&l#p?rNPMI#!fe%#})=Fm^hYrILt2ayEXr1 z%99PndV|Be`gU43aND{;0dXuFt^L+wgS94#NaV3MeeU1BeB0(K8;*~>E_~918@S(f!mXv} z4?bL(Uux^i(v4MO#zp9k@`ySj(x(G+qX&m0!Z~`&VWW3@wx7fpf96pO!ItJsx;We0 z^`lWc_A>`*&Yid}6_R02**)6Cl@6eP4VlRFHv1SSW9F^(%gMrVo&tR=*e++&Ig=7a zOK)xzkSG#3d8Oa|iGeb4ayFX7GF&GMn00#3D);vclVaRNm~@ud+obVRx^xIjVy=}P z_7pF*5*!@PM9l8Mp8Iy`jm_GeeVv6*l^e2cv$k^LhTe@-KWgneKKQAZ%=$it?<;NN zSAXuw^c~EI`8j?rGGbp6lIfHnAk%5$gASYv{cZ|t#hqx!XpE9%MB`=^DsfC6usTe; z%+jzN*hV8|zJT%gIqY=>1!3;jCJ){G;`NieeT1ioh;tktDTi3^7{)o2+eRR}NWgEs zu2NMCc9#lPWki<&r6Np0=p)r(g$tODqW0;fPp^1xxztOKWo*b^bKi^^R5YbDIZC*+ z=Nz`@!3CxIk3TOKR~#)8A2~-rA#%HXL3VpiMvM?AB*S;R{@$(qFA8$Hu2Oc@o)pDi zRb~*$lBk+>E{+NB$($=)wdAY_XJP7HPunwvjO4h)590>0*YsTQ$tOV~O`?dIQ^Ai{8MirRPFiBd-P87c|ai|Jseu%*2n+pUglUmD_zw2RFCb&JQx6MSK;Z9So zF?l`TF7ITusU4F%Yn82EvSsY_WcIchiv`YP&3c#m?3LEZNiKU>7o@JcvDMYRWNuyz z9LAY0GuBx5u9#e!ly|nG=z2q^g4x4u1)2p-VKocNpDW-a@_rCA!J#dCh>YREq`AzD zP1}n~qmq7OCr(v4qI=h6qiSIOCq_U;*r4sW9z!O0D!duU4!)Vw{^p%vb>?Pg9ib_m z2WF@KcKpCQ+b);al)maOptw=zyey+7F<{YoR>X>qQce$+wBZcgsXXFdR@W7?W$*S{ zV-(e4uj-AUp)F0vI?Amb+B2kJnDDSKWrtVv7_WQB;q^dv*L7O+otV7|M%#zHKIc02 zNc!>;!HB&(l#C6Hg_L|M+HW zY)__2!%+V03sGi;$m4mb*b7bumw&f4#D{OyQ z>1)mnwy$UL`F11MJ>9tWeY$9AVF^>JJe7Up;)n6(-s~gFF86}mw1)NXZ{{y}*J&;@ zxxbO}!b2KX8f}Cxq|aAk_jbrRpSQ%Lo2k#*ytRD=6$_I+Lr;w{c%Wx#*S_<%o*E^d zn@XTHvL3lR{^ne$oinrFndSHInvruOSZ&Ff}%|BFIXm)kJ?&QEYIO|gs-)VS}mdfzA4Ei(mTD(=}uNlm%&#Ij}4 z*P(84XV0@|F1p*Y%t?kbQ-mEJA)1%2&0c!;a+k~p0Rx#{y_MzIQ3B<+oTaU_-?q-2 zGhgNReXso|w7WJj7 ztEY}m@dV~ezVhbxT@9}vlmF~zu6xW?-}(3w5$?;UnkU0t)7^)Fk*jF zpY|I~!bGfOtSjEC9vN)Y#pB6iBSFD5$(}3SmiIeV>i%`^BKFz-A&lS)0sFFfGI6}7acBJNag4=- zsqE$h6UF;q^?0YoiFw|hJ$ZiNk&qE0!(G&w$~T%OLqifPR&RLJd6z(^Ydy8Hmv8)7 zxkkY`I&qHf@tuXt#$Ka5+V>d1nW7pMbY(=(*a?<}0c{@ZUhgs4y3s~E=wDF)r% zy=hmWRmY4=#X71HC&I+bKOSvo^k~$}6|DXJS3hLE9cvYk;T4;+(x7>D|1U_IpRmtu zMmtgaJKZ=PFWa4AX^nZqq6BaUd&V>(Z3@5zKjG zmQ5#z&!^5Fp6#2+iQd0jZ|11X(>q+0ZYa&(s?;{L2m2_KGUdUYGh>|h^dS9!HCoL| z?K`l;4+^z;WB!J*-0Zrz8K=@>{UI&Mknk5zn={Lob{EKeJwHNV;82IR=PJkFVvcW+tlW_xYj$6W$%=^Ktfm+g>PF>EJxVy=g8sC3Yc<#;{ zp>-D?Kgo3#DP3W=awzk_sWV%8`RP-|`p=xZB=q)ZBNE~A&~n4++$5pIJ7!GcJqMkz z2VH1LIP&U|guLCs-ewPW&F+yLy|fLJbmp_iSSwk{#}lm2-VDhsnli9-{^J*__kw$| z#hll)W1=LBRvkZeT#0SAi`mr5_{^y0r7H&ww6a>1%Wy=8PMl}5;1o|T!BOnyH#oA7 z-@MB>Xx7eVkwd=;N5vocZtgqZNX#yA`=+)!3KOc_G@0Hh=Nv389~&1hy_zCy?iq5* z-lx4^rPD(@xv7k_sQsM27nUVT_#@H99 zrZGXbk<6tzHwH|&sby^~tJ_~_%q0zBzk9g`cHZLie3-<;vsJ_ry9O=`9(-}{{NuVI z5hA(|5(hbj&3HXoxKdz{ee~tQoTXRn8tzDqa&PXc}h%gg0T{6*x zH6v!9;efzXD($`HC#d>`R;V*CBwu`D)I}NhZlUhV2Kz3y9jNE-tRA8)x0A_CoGXy6 zx~O-=_Lx`!`_w#H?=|aKSe{m#C~4I}e{xmm zoLTQoL=U)@Dt~pYvU+HsdU0Kbj8)&8AMDOw|14B`*Lc*X2kk?wCkqT;nIl*}<6)lQ z@@FUgRM}(tw_c&+yThXOxx|3w>^07r2PU@lXtQ*Sfc?HTEbHl){Cnua%DN*F=Xgl8 z*&Rk>r{gi(sNpe=bM^*Q39ah>wuj>k0~_{YnS@CyijH%lPqf^*eV<`W*6@4zEtHld zRGMzm8$Gv0MK>ltU3EZufYYS*QD-i93R*p8x~R8LvjO>vOeYD`o!KhQCuv(tl;^#B z-eRzqPG<896SvMTn)unN{1sC=@fx#fx7z|%>4MXNr|z6D4lX$;UA|(0+&lS%)^hLH zek$v)&ZIo}+>28YKDXDT1Dm5YZxk-GP5Q8;b!pjqWs%bIZp?KvPwFULAWXg1rK+MA z(j}YQJacYW8n-{GUCC2{&&y_OvuE5*VhWB-aAbC_wp%1{Bjt{6@gcS5Rvny8gd(L3 zEsGy{UkJEeC}8@k>aF#fZd=pa2xcEN8#MD=%enU3XJ}p+w$;{f2s3EkR;G6guWkih zrDfuds_CAcrlhtrab&V|WxCg+(7~LE=DqVTymHqXyzQ(QXUh2I8*`dpW=@^S+FB4Y z;H9hifsYpgJxa6-KLx8gw7PvuM8n9;o|V{3)QFjLr7v@RnT)l~07>?Y&Ks2CO5yyZ zrSHBFR+9U$W03fp4PFnJs@p|g?H9lMVtusj=;rTd375_q|50l2ijj(!47FZ%%t;m7 z+Q&oaMSfp)%7@E+*>YNM&ZxE5=zjEAto+$hm!~U+37bkP2Ts?r+$TBDbX-5q+I>sg zv{5h+nf!5aN2@_MIt$*C>wUzdN~U!4`*T-0`@R$u7Q84>o3F&#`^iFb>%E8Pnewi4 z<{oH8jPBBQIivMT)TYz*RX2|*3>bbZnAw$~sj|?!ELh{W$bGEC8p4wXJsqrjd9p~v ziF4h;?nJFT*g+x0y1z6tttz91RrYW{qnQ^!r(F%?Ozz*8N&aoZ%*3TFZ{HScW%_tr zdjEnu!Z{^j4$-@rGbUlI{fpmES6T7mfuh;Q;p_XlFhw)fMKUjm%p0|1cK)*mapAgo zAEz*r_9*qeVmowPKOz73pS9LyC%CewDvr>4>C#s1nL(XDQCj`)v{^I9D2F2bwvQ+0q$(8w($6;mO6rIrQ;8>9Z$WE?lkA5 z)a?ZUyJG|@AK0>ccl2DQ#7iG2g zJ8W-O{(N;i8&=yCX6)QP4?TjmNPZ2R%i3S{j>Y-(4G85Hc#+dZ51JZ>`d;KkElo z>_2?jpzQ6b0fC*(SYs6|$@$E?6fH14SaHb3NZr2H<4Xb+t~%^4Fp|Aw^610I5yDzV z7V&v=4r+PJ1om;VjAc3PxSv!SY&b}N{+ zy;L)++LwC0FN$?AaoNBB-iWiU@~=+OH#=TdxJj}+_KmHG+#>(e*T)ar5n`*<-7U3y zm$~l3$v5|B9<21Zo4P}%_RM%|IB|Sp8xMzeR?A1;&Cjl?n!_IW?&F@R zCweQ|Jauh%Nn-K-&?4r#XpY z$!BKQAot?#BF`<#MCY=;RKEBkKIppZbFos*^Y=P;&rg%^8^2vxEdRdd3 zDJ~wfSZ=oIl_7VJ&QBDWv?pkH!O08Tquw(^x7_2b9m~48=8cc*BE7M5=2{H-)6vHe>lk|WoL&V6|JYmb)g`Wj9l-}u(! z(KGTdPEnmDxx;q&`sZ^_-tBY6LWt>Qa&+6Cvc+Mo3d~yxExxukzI92=*M<}+RT=f8hDBZ7iB=da~DwDoD}t7ZE1>+X)! zH;Yt^uWS`8k3N6Dvu{-Q+?BTbY+i(i-82{~&Q6|wc31H7T?ywdk8lZye-Xzbvrr30 z>f7l9qD@zubK6 z-0sPHr~H>r_KDLcr^yDTj0+hVV|4YEl5Vi%-OJwl$CO-J$~o4og`(G<#a9;I4->uG z+UBM6Bbk2c>t#}Y^KUuw;DXRFDWA=|`(Kq))|pv6VXuR~ZLyfuP>;e5UDKy;ELdmE z4tF}W<*9(rx#8|p&o7BLoPKIbS@L;nbIpk%*6Kd3Und_hS|@AO>(2c(YDNW4H$I9v zSLo+<&s+2%c4EjQ>8#DY+!VAFCJuP=W&E5S4lnkN>H4)?J0!j9(Q6CXDFYv#47oqm zbAprW!l4hAJU5(e;ZiVNT7H7EqD6ThgC3DfD!vBVm-j5Qj1{hY<7%?xTIFxA5APF7 zi`mx6Xn&rUQ_}G4>!E9J7k_m0DBUmTzIR!Nogqh_1@1emu=?Z4thPPR+%skQwU_Dk zxUXp6SFKi$rl^Ill<>qCB0dF9DKe+iu4q&|e)*CmWZ*I4?uOGwM`ebd5)$iVbYo<= zdGBHILz5QU8JaaSb-eGV6@JyTQWJUC#R53>qfOyj`y#n6T8p zpUGUuV{PWfo-l3wB!9civS4e4*!&RP?8Le%Fa4*EwQ#ggS*Isxnabo+@?sx_gAR{q9d$2UsEpO=Pc&=C0^iYP@`p zNTN#0)v^(iR_-Rbd5Le_J6iQ_=5*uKhu2ri&AM8;U%VFA?#RcJXLb}elL$DYueaFV z)S^SaSadJfMZY~{ugiNe(l#t;_BEYz)~~|UyfhX}Y;V(Ludsq`RAB23Gu&l0+cnqw zvPE=A^N&RaPyG`jOCDu6A2hQ|{-lx8pOJ|D(j?YFvyE?&*X*YlO=5mhW_O!NNj>iVO>K&N7wQPA=zRsbt9+?(8 zI>P!_**2{#3O~kazWCB^!2t1nvwdQI`bZqB^Pcydf8J#@rt_m|7QJdxsjicNKjG3&VeYsYn}@{d1XT+X(f zG2@g${$A5hM-N;&hOr2W#g4lh=Gl{C`eBs@$z^{QLaXpv)L;ZNiG zuRow5ACWLryXfS}hsLIBIuAdYv%@PPC8PDz_IZ2MrWXbFInC%CE)<=oTo%56+Y6mj zC*wkIJrNW-SSA)U$V7Oag68UQk1cJJin{809IG<-5%N@a=sQrpqtB|#sxlU z3YZZ;bn6Do)CohF)El?2n~6_xIQBq$=Fy>2n?elr_YM{@Xx8y?`}E17U&9nbb4Nbj zzqRV6PJzN{kJEN`>9F=Q%Z#w%4}I6hHX1M^xsWFAwh-u1X!g{zy{M zrTI%`mR>x4w*T1&+B@XWY?Tnn3#>T&|Hj;Enck0jF4Z(tO^*DadBx2^O8#8QQ)c0b z%^6wSgLYIEKe@W7{ES_UNb-=9bsDRmYO^=I@a@YEc5!cZN37^&%I@<_w#o{JWU-d$%1+-Zx9bB=MPxAjuEaYj z>U^BsUv^`t;NdYPBO)HXb&uQ}F<&*s^p##x=b4)qJm2#!{PD?;S4$SjCGNB|Wi)!2 zRBmhW@r`DV$1MTV;1he?%umQlQ@3=_cYGhC>~{D}OYc4ADk`R<_X?+3{I>D)rtXv3 z8XF!~7QVL;x+pfi_v*FF@?Nya%<;lLyF{OEtTzLMM`@V9={dqYqdQ}c#=vt zLDl!0^?kC%s!W%>>lL;BQp|uM12;spnJI7~_}-Aaeda7%;xp^S#+K)`t)zEl_RcCD zKIM@%v+;h>)Y}1`rw+!%MCAF1htGYe&HnoN#h0CTE(y<8tep5#Ap2UTsbJ-ofvRhr zmrQ5Yzjf?bYNOw)%;W2f5>4&jY^M*H?eV6MRthsWdWvL^vpw|>t}{@2oBH*+h&tmw zTfDUJ!F@CKXvN*l7JeGBuVU^2)?(?B^Mz7NZ+@vbe|p2~VHIAzeO7pN9&)1dx|O_n zi7g#(gmX#{y_`PD#MwyCH`(;Ak zg29HGZ(EO1jr^#dH|?CEPJW9iVRq*>Z};5x=GBUcS5Jl5<>tsFrd|3JFo+#Epi@?d zRuwDyW|pu_UmFS zEmG|hq=$D~pQy7;aFns2gV2Ey%AQ88vjzwCRDZkBC`v!rgniY1x&FiRGv7QiYIB)= zC?hTJxc}wU7NwyjHg7M8JoHV7*MI!x@+B>o-7R*_^h@5f`84}bm1A=&O{x4B%&98r zB9pOi=AD=6clh#*Ild7$Cx_^UeKB-deIhh5Wm84G^V{LwrJt8?lAgTvw=bUm={EUk z{o?vgIGeR=rrzbXtM&Rtt2LkEQnb6`+*PY(`2oeI0oRVH-d9+1+Sf8NdjHHLo%gy0 zuef+@yPNwLopXYpAH6>$ZGK1Y_IcOiuVU9K=SQB>F&A-KG}C=y&vP?Qwy@nLOwodX zN*T7JS-VLvxP!N3wYebR*UIpb^79r}r%n}1y0z2#G^=&#jxVFds_xB~whHN#zEs~` z;}m1_e6AMTWNws{ajLZu;QG67oY>!UI~4_S}80uhXQAd&8vGXtc3) zyels}Yn|Gm87aI#{sp0hk7DBNCV2)v8cXBqsBUJWef_gELg%zd>VHPS!p!oqUdWgG zCngVLTfZA->AHtieq!tFRjIcG7e~HWol)ug{+SA^Q?02I3 zs7trH+?zk@S*0lreX}(LB`W+}+PAP?Fo-R`?&f~4AzpeC<{Eunf>!l-XT%=ftAO{J;%&yj^+cKZ5Ecw&*_ z*DWCLkg?`v#$HPOO0fLNR&lL!Zwr@Sf6Qoq)budo8Uke(jn4!-$PX#D6v({TF@Dm( z&8Lfp&D09(+S}s#`WdnhI}A8uDy(yktyWafF~uja^|C>mUbrUdXzxl43hFuG!JDPb z`9wPf=BtHi+e)y)O^b$w<>jcqcIh8EKvU{8K6s`qMZ<((5{Pl;op88J)cbUrW__1gh$G2#cV7u)8H2)fU zplx*fJh2j$Nn$bbQs<=Y)y5b|un!#A^nrH4y z8s_`k(P5j#LIat&Xo)HEGPZYLX5^ToZN5A(^y-~eVG@^&-#=eJd*b6h4r*ft_EmZO z_0^;(S1UW=8+ZFMGmfr)ch7eP>&tyv@w?L#x@qkRX%+J6h+K)V>C0Av9j8aRs;Y-^ zBX>87gsg{Z-y1y4J4162yQ8*5+S&lolu5lET4i1h9GH2vXyYdR1CLox>7}R_G;N`E z;!|Y{!`oRx_B-s_mqsNBXdTQPSl&9b?CISNQ)xP+WkMg`ti@>kiV_j4$Z?EEXR|J6 ziY#M<%h#SVI$-eW!>IlncHYy;+}CormTqQ|$I)U3{fz^4k4)~Rdqm}?kYCw=kddqI z9Zwg?xwow?=R?W>=M5d+I(2{w|a9T)E1)4Fr)N0s)L#o_uam(QK#EoO<_EYw-Z zWX_-Paq0%oJNav_Fs2o^ZwfscIlS3I|6`8=P1vu6`&G}7zE*Jdz9mrF%)Et$jWHf!PrtEOmCaLh)U&C`JtSH_`Jr-Oc4_AkR-?xC5se(*MY#P7iILtRU9aZ2KT+27 zn3BRNm^JTKLW)a>pRt&@r{68LbWp5R@TTY}V{s?^W|v!gSn)5;TnjWD7bCOPcud8# zk4&nkP1W?{qL0NQq(ggfmJee+St(oEYx79v_H?0$y<>$n%-*&td|lOhrp1%_H@~iU zq}uYp#Gd=Bt?=2cT8GSH+}y=l9PW}MR{lwyH6zw#Q5UO^m66k%1<5$%-Y#*P+p+yd zSIg`Eo86`;sj@=bxLWIWn@EQ zaYQ(SBf)%a+r_c!qjdO!!I|?@`gGS`vQXK*SRBq6!H&?H>W1gf~H1E{K;M#ar$@Hv3-vJxCoGDnoSnyH$`SQ5A zI++4OhaR8o%T808aA!l1-{*jyx>Gld^UUjh_0w+kPcPHEUfg+V;p4uy&)qpUgZf2T z`A)eh%Q~H0Y&?IPyrFALU85UXfm2RP`N*jHy_@G_yMB1o6SrKemrGt6I2aFh@o&zo zl$O>qib(rfeB5YiT43RNiwC+l)^3w{QStSYG827Ko+U!LH0qfvWUlwHJXbA)0bwO%ni^SrtzvcIp zAKIZvXXJ+oZL3pv@>{1YqC|`pk)kqEoQk#-?H-hSn2DRfcK!T#c*=s$U);}5ES>gp z;vBpF3c}YEMFX<*=TxlN8aAT3GdXCf9GVoal&#-7x!LhEiw=adlOA+t%O>4nt~A@V zDn}-+&8-U7up94x1yxeZvfPjO=8i<3$19s>elC&5ET;{lCQZ0Mi0$lp zN~H3OEqm08gUyaxb!#{J<;0#k|1G?_;?19JRJf<^MPCihm~ z^jI-)qS*Fb^Xxjl4!%@0tRK5{Mfb4@yIk~MzVp?5`pHdu*5mj&T|&2!-H~q)Ki_(K zuzCSw{zQDeS+2PKw&nx;L|SsTuTkZw>}b2vJ>AH}?)XdrTSpzHGCoU{@e^gt^s`)$ zR+2X&Yj%FY+~?C{1WVg&61Hj?w|MNh6iZ9T@ew;L77CaaKJ2<(qvQ0d_oHcotXOM* zndsUQ=DOORqExSGm7QcZhllSx#)8svc)fIIS68nq~3z^Bx(I zha{&yT`9;p6Cdy{bYa_L^OVg(ShpU%pZ)0g%SD1aMT&*iFUx5jaw}-g>#yRBVCV>|{o01^Smg#vr zwAp9p$={Qlb>H>lhnG+Ex`cMOK$mzm_u1+F`9u3LOM9G*NoJ)z&hII4*N3vPPBW`B z{Wk8>TzPBXs`Sf-13wf68_63c6uvlgJ8(qcH;`pPA3p6v})mSm__J z>Z-i(QTGL%<;@J-ICF*Bi&n~C9ez81|BKs!`MF{;625wE$M`q~%}NQmc1ejded>c9 z<}BS&2C)~H4q_`-tnEapJzAGHuD;tf+&^;h;l9Tf=2(a5t}m8krhTkfNlq~{vxCHn zVXTisJu0NM<92t9*s9vHh(E))cJC&%u(RURC+cIm`A@SE7%8qBA~B0S!@5IA z{M~LRMof&8yL2J+$fSoAQL=AERw}hy^G-ruR-*XiMEQbyV~2M$ITt@x=i;5t2DhGR z`#lwR{n~o1@*K$!(WwhL4-}aP5h53|h1$OFA{vp%3X0mtvbe0u(Y+=Ww6`LnYVc77 zFL~QhOpaQCe8ET8Aq(>oC8nelURvq)vNda+HQwd*@zN0Q#y&aG=;Yl=O3OC4AM>tR z?(Tyw3UNDztiPdf|IV7yo}A0^jH});({19MR!WmDZnjBd1&A<%_bP>5U6p*fg}>Ap zAHDO^Y$=r%w&!!kGYW@><)*e)->iFm@#{OiC!2;fn`Hml7qHNTGxtWE!NTq!iYxSFa7Ks;Uth8X8gB+S<{hM~~h# zX3Ut)HDTDWVKI27d-v|49Xoamp|%o;GHRF0Jx85v0^k5#&@O-*a0ISR$B%OW{Res- z{YsXgFTo&!Q3S>WmLeh|_S8q0w{PD*Ku%6B2yz=TWJuJA5hG#@4GlL>o;-Prxw(1# zj2ScHZEbCn=g*&?ym;~A6bA=~9ZQ!k-LYcDic}{jr(HE+*|KFj@yxt=^OCHstrLFx z?YDT8fwE90%0?Zi3w5Gy-~e2J69M!Na0ITv8MuQ6(9)z6hzWci(4j&E;GqV=90CUd zKZ5FhPC9)p>FPkp0{wQ*oH;2=mMq!j>FJrie*OBasHmvJ@$vCT5)u-QY~Q|}!-JHR z6i$7>dk(*N7iFLxY2kPSK3g7@-czAJf1g^jtxPu1J0-BnRZ*u^BLzn<#X>Wqj z1nB3sEEa1q@s}+tE9*zH4o5$YI59CXm&gA9y&0eUeWN)W(j8bkeLD*0KS#SjC$?Mjw%Ov~m5PU7@%DVXWPr1&u7db@t0r-$s zR#r)*54Lvh+<6_vqE`{0cx?bY1Mk4Yzw3eV4Dor;1l!&pvWJi4?d_d`n94szu0Ki# zc)(_}_aTmjHUJ)Rc?F(DIgfm5bT+3M`>%05)iIhM z<=a2yJ+cjR$!E-g9;8^(F7ODv0?)X-v!Y+{55v(A9PV-k*Rt_V5zdaxz zVE^C6m-|(13}XU#0^Wc};1zhrjj zpMU3i&=x3mbO7Gs8V5=gAp+KNVK8*wUw|;{M5022+*N-LL zc97zC|N60>pLPlPZ``=?;M%oo_tPA8EO-cBf~Vjum&f2Wc>Y&8fR8$XIe{P9v4QaI z{QUg(6D`^N(B1UR|ISN-cibI92g;XNJAC-?Xj4kNw)thTYh)~-hqeUC3p(ng2&)Bm*;fNd^pYR&LtCXe^3>4K&@9Z0 z@Iz4_$5BDPtZ1@r_fe`FF&+3J;Q(7;I@G*@EE)X z&%t}H3?PeNbs!#zn3NU43iv0mQDLWW}n3`XlC!#i?B09Ig}P zvxHy{8*#m+*v=m(=eqh3cn;nphoDoZPKXU)er+OGMvzrwAIM8U`DkbUn5RIj8sie6 zE6&1m-K6Kbqn@e~dgE+D|YJP%cHzs#UAfjg5`B zLPp$tLMyK9e#RDr{y>iQ5{fsu!rn*D7TF%i!EYM#zq6LCp|bqZ=aEB#JR;>sEjcL)%hF9We*ApY8vzZB66?YULYIDs7C$>WCs~G^nlJlyBSR}o~f8~ z7&K^51g*K-MY&s))!6U<*P0C(ShmVcmOhaB!2}|BLqf+U*_djIh=W z>kT18t}G$b?;RK;5I@G4F;8AzK4{>;fe~cy=QPdj{58h-+Oq!EIo6sXHjFi=+;zwE zxH5%oA>+CZ*nEf?7!$1Q+qdtA5hF&#V*TPjX+7Szc=k`a23bL7Sa(cw#6gfHSEi6{ zef}WwNcs}k68MqLmqdCb^;gCB32*G#f_Y@@<8cr`>!=Un8rd~}o17Bh3Y>vEj}Fj; zYoPI0v^B^K>*ukD0%XaRDP&t;t`KsGG{|pQOyE!ZS?q9ib=}jL_;PI&?3aM`KRLAa zC5zw?ctzt(Ce3YU(A?%evN!hf0M{ZTBM;yiJWKJeEbx*b2j%^$_F0n;R44YA$psC- z132;M0ItB9hd+Kn6Rv?q9vz?^@1l%9f(FPAGK4H4Q^=M8GOp`D`e+~g;T>F4c0RM0hfdl!De%LdQ+AI3nPv!8UT|++5f9L}wckI8GKzb>b z{K{yGRRwhI+SQ-%^P-qVoqU5Yi)Y9t^#|{0&T}K}%N7CN(OQ|E=v(Ml=#zg$U*h$3 z>c7Z$+2`Wok_4FMf!U!db> z+cDm!F(w=9t+6i|;fpo^8AH~PIqyKeNKXRT{r=RRksTR3 zVZwxP$e!W}jm9^^m5ul$`8cb|PYt4+xDC)N?(Xg>sJAg}EtG+>P$uXge<&1mP;8~n zu?l!K1SrN{O$X^+U(hjW(xeE`0lR_nJ%4Jxh1$_!>`R8d=?Ev}h+vOO$Qm-|9hl=A zMqo+cPjn_={UMDG!_iE$OSRqcM< z&~uc5vY_Wdhm@3*ckOx``yAr~=%5^%WZGkJS3_~G`8;F@Swg0SC*%(qW3O7soOi${ zFr%@_p6XtUy%k|Q{HXq+yu{tKmOZIYpFV5BGsvYrn~3UWHwK^|L6?$l_CdWfXU^ON z*+F;zh;2puPolkJx1g+c?b`W(j{3&-#-IUZ5FMVV2Q~t1O7IdqttnT2|A!1AOUM+m zB^e_>$dsU_ABfoSOrmc&Y(?y=Nj&@ESU>G&u><4Sujnh_S6yIWV6cJm<6ni_OTn7(<2YAZEt0BLTKV%7+LbfF1WrVjC0dMUf>_F^e&Zc(07I{R} z*3y5Z?_<0It_`*Epzok7)Ya9o2V59rhH?P34>R_1j-Yiaz)O z4{Zg{;+=--EZBs2k9fEabj+STdozy?*bbnB)@=lX4(Jl_oL>M>Q5JaI5c%U-$P#`fjs*gGKcIj&)bb)73C5KlMS_r?468;$e*6grExNw?C(_c7uvrBb|$+%z+U^{ z7sZ&7TM!H%%EZJZigH-0bvAS!fb>=(bTI58S`Qxv{(%?d&-n6VgHtY)C(-3Ue*E}w z%8%HCc-*)A16;#BJcDQP4&JSg2HXP<9XfRI1s#w(=zu>5I^Zkt=zy;XI;KsV76m#e zcRmnwknM_Z4tRa99`F>rg&zf72A=cV4j@bPY3x}|KftE~&l+Nm<9WIvc- z41quSwlSFNr?UUUo9~qkKEgl7mg67~}B_+6me{bjJ6}=I1`jLcjf9{XCrL z`yU|~-_c)r<)i(gAERyZo~!E@G@>r(;hJUe%KDLCp8iDJgx^=6-NCCL`lBIrL8g!` zWK6U{{*XCjKav130e{2@kVi^wneVs{;+FKij4hDwx8k=n@4&`AjN6EnQ#^Vv<~?fa z--ggp`&pC)`N2L$|AlN&AJN1979b9Rv7O>u+wczL2wn8O_5;47ePCS2d+2`+)xouK z=beKWpo99+9{8&&Dk?#s0lceC1229|-zrH&+vk<>yAJ{^? zY|y@Zuu1Flk>Hb~O+&w-ztq&b-@}>T`#&;%183k4enTJB=5y_Hj0@2D6w^up4UN@) zYto1|fUzC*fM?)cZ9I7A@Ga1vYQA6J|I}7{P$?UGtlXnkAj{6;N99d*FL9mtLKyvH^mqa{JzCgTtjS# z)_cb!J60f{y{$vBj3x4s$TqnjPjCJtW z>31L6CBN^ZufV3kSXCGP=yRAafE)ndD;x5MY{`F!$2ZZaZ(z@W*#t|7PcE46#dos4 z*S2}}@cb8gpIsNA-$3v4-uYF((4!b@FkXX4b>a8D>v)&^r6B10hK%(XS1`8^TOKh4 z*cR}O8%jU;_dWd4ugJFNt8GEHkTGNpnG^lU4PQoWd?nWMFI>2g9^r2-H*9`dbGEZS z9zyo8X&XxS&pr=%p$#Ao103qZ@mu%M=P-8QUDyVYJ#-7dcr}*%F%L*{!gc!8z#TaQ z&@cSp2HDbFU^0yx8}L0$dLOZ1XVM3ri2ITqyn|o)!w!P&^ez7Ju941+$5_S>Zhyox z78u!>#t}}rf&B=S~ z>FLE{j)C8oo?J0Q>{rYnNC19QC6=He?(CUFcWelRfIf_=`D%nz-}ksxbER z{9nYKYCZ#+L3?d{Yo3FDu$^o2wD$iPpMY!4_v-r}Iv%>7bUyMiJP7bD5J1cnIi&T`ihHOZIvl(wAJ+$dUu_=p&Jp)VY=~l7 zDX`(chdatgehYX}6L*vY+m9E&fewH#SMwRtx1kh^*;pU`@FQW{@$mcBFX9+9rf;pU zoSOGYSES#84DAT5 z*2m+Y=>NzAskQ;g{_|<5{2R;ugZ+ejXUt_Z1ZZ5`&!_!Yoxce_)yK!0_wX#g_8)Kn zE;Vt-`xr-H|MTKMus>@)1DZj5ee#F?{GR{%qw zI{16@C-w36&z}E5+r=DEeK^8~pfQ&3`5&@X6NoO% zO(FJ+`JdU;KNitEeGttJ66+c^{|g?~HUE$C5B4j>$8n{kH)cWu&*(9i@sbR z|LVJkcQJNAk6^tgzc|7sME?NI0K|PU_VfEb-T}|RJMi#ZIR5DTFU`lr6HS3+m+KD24oALzrL6tazW7#X>OEEz29>@zefXbfbCHe_{{&P{>B4xTQRN!zqcX?8{fmA9z05Dp{62?vg>qpBAts5Ole+NX zUFXHk`HkNoE(Bi-dBUg*b@GcJzt5pu@CfY&pKcNj&-C{7={) zlvkVpo0lf_=u^sre zsJkYQfAoLS%hl^=kQ)y=Am6&`2aR|J{#QeEDfN-M^1rbL;HTDqz_vlmqrP=4@WIf( z&_AKy;M<}fVa#qwZVjHtIE*zHh>buGLUt&dpY@#?Gn3q6W^Z?pU?egk72X3ef;}Ph9j^fb)9|<_1ZQ+^v#`tg50bdVg zVXSFLzsIwXKaEp$t^cO#nCkr>$meiGY=~^)J*1QW_WM6zZkclNA{sizU_8P*h#`G1 z{`M_dHRd(g1CTrXl!nTkCwm%ea!3!Q(mc<%_J4rs;!> zhqr!#VnYGYkI05k+osMxEdrE;0$fb6DjeU-I31pABDdNE2!i(Q))Ry_#|4E!^=t*Eq zP`wTqdxnt?zVzek5YrbHAqTQk1hV=Pw;g4&u z7vO6n4;ysA#zS58?Gf;!^zm|puvZ>zAk_Q49Fe;4=3S@udzj`!c9P8*2iX!J)(2Tb z=Db6Y{`t@Tk2G%x0?%Mv$2;gF@P*+kqCAuh z{|$BhEZ@GxbCij)Q3vWmya@Gz2Hu{KzzsOo=Qr}=x1bqxfClX80y-$4aRiz&^vg z2SN4z@7U`U{%vi*IvB*5iJpV#8+ZqH8LzKXc|WBme}w0t0RS4%4uBJI1CCgmRGS9g zIcUT)pc(Ig2J{K&7nJuSxYYFy>6BgM!z5DRz{ zVlJ;HfLGvgW7u+a)!W$DF`rPAhMNC_#>TGiTjfD!8)?^`LB45e3t6(zmQ!LOEG4w(Zf1V$P}`LjO#jJ2f`N^ zO)!t3`cLjYHUzFNb265i~b}{K0u#nL@UZ@%N72^nfk_ zY_33xL+m76tCPt{&5`nqR4}D;>r>-<@Z1=0Q162;LE}nq_|ofVgXeC z-)0>Ax3vMt1~P)IATw?p0y*B0C1lF)fiVJh!f5gxrc%rzfYwAsz!xO{<(K=~|28@P zD81x&HrDr_dF^Bf{WFH3Ivz;AU@FC@8YSoLM`>(&uWtLI5x@V=lRtC-<_57x+)C&a z%Ew5?KBD9k{_>bhlkC4Od&mMZq5S70%<)tF5o^1k_aQsT@JA1f0}=#QWCz+IH-P5A z;wgroK{1XW&JSpkr#({FwtWgRTU6 z1b&zo!rUN@H3wm9{0PoX?=+tLAp?xbSijl1b7$-oh*%$F1(`v1KYKubv?5R;u%j`+ z8*PB*Ep}5LYQ1awo8;Vha;}S)kOAd8?1Jpc-(Lk8ab*RW{fzFX*Z=G2KxY#PP`*Fq zMQtTpfYi^Q^Znhr`0;PK&f_~|09imLT-iWIkX2(J$QS8EfbyLvE*yeAV-aVh`Hf#P zr}1x*EkAS;-?I>xr#a^^%GbbmD-h>_Y#^hWxjl5+C}bub4{S}?oyZg5 z2j`||8gD$HG5;Xtgko<%^m{MJgaEREjDFVUqax}&TGE{^6c<`Zxv;A!KNa?1EX~np zW8R@j#*HWAZ}Ad52Cr#9*;vZ24kKA$%*R^(E(DOxAAK~V3Se7U5v-s&;$T{@8bRxT z_aiol7$nA~Z{gl_?Z?{&cuKs@1&_gN@Ep8{47jp@Ody+Ib)dZ|5%^Gi*blKGTHg{+ z<5GjZAJfz(_-hlC8+Mp-fwL%Ia2t3Ho`d&X89)}l`am8D^2KZ^-sC{OM$iMuXSjIe5>N0c7!K9sQ|dJpw=Ag~Wnry-!Zv)^RcnF=3 zeh=Bx`Xlsvb1u)p`@h10IRbS8;8m>$&{komz*enKzct;fyM2In;30Sk-3s1vc?@2I z=YN$0J}2;j9?-+s1p5RwD*P1qs)$!K*#mXUn%57&BgE6F-(&r8EO-cBa>sj&v*0m! z4W9qi4(KC{Nw7U=MyS*9`Fm` z8?Hc%2ysHhiV>^Ed;kp$)*NAzhb@oHgVv{#)Y4(Dk4dejV~Qzyst|LH1`p{2!lB1R6mra;cF|3*QcTb>ImBPxjyy zc=k^@Fdr#SfV>110zKrYkx%0aTZi^S!=7J>Xa`ukg186Pu>DiU1ki%@b67)#bu`G& zM?O9JJo0LhTM3?Uc>^ASSAXOjE*1Z$9T?BL5?B!|A@E0B3;Am_Cg7V+>F|HZF8W9K z2+;SS1^zGA(P1qW`aJpc*arn;J$PV60G|Av$9h7auLC)0LIj9mAU}Bw`G`}ouM)Kb zUy5@DVcp^gTDwa6AdT``(`gMj_I3YT%qQ`DIa=p^l&j-+VhuIc(PAwn*3)5K4%XFx zb}kRV3-AQI`L`UeyH0ct^6M$CG+;sfT0knUtPsAEktW!qcFeb1i`7b6LiB0_Uqy2KCu#XwpiU~9} zq>_G3qi>{Tz=x#qwR(<$Y)9RKyeIk+ z^eFZVtM(t!->6M&AwN0=_5yu#Fq7g5(7}gktf<}xgV$I2(GxYFCAl9#87K>J8rY^Z z55Eg_(Y)3s#Ic~8fC~>VE{?zzI0JXk09rs()4?AH&^MqT5%Wac8$29DFp2>C7h012 zY)3ZZGKwVykq;RH|AF>@jDlRS_MOIxEwm4J!tB|z6KNluWZExmJMD+G1AP@S=x+hO zjfig`@&Mn%!uN7e7W(#x5hJkAR}|`^J;j4*k50_TF9R;XiHjR>1g^jtxPu1J($wFH z2|sZN)4S3HJqhr=3R40r0ye=af@-}`^A~exojP?2f$f0#C-hg^e>)aB<6D65VnVh& zAe$|Se3HPLW!Cr~b+QSp2!IQ40&c(&xHcV)%K`Ks=umM2_>JgSZ3wV;eK&%E1dzcP z0_X@c>YKK--`*n9&n_fKeCO7a{7Y|q@0fnq5Ul0G8eF6MUZl_2wCDCp0vC!;Eut~p z7G-hEMA@hVb)inw4IF?AZ~|_?v8k^U6MoSFUc;WocTAKC1`~`V7)Jn|JevUi)-nQT z0{9gk1l|NbT)_XhhI@Dh&*B}ti!x9a%0$_y19hR!zrCEl;`l<8FxCJ4{)dBe!T-Nd z>%0=T8AguxK<#sO^=*d5yI<@4^Y6E5Qt0;w%6aF~-#+Kv=Al^Yyc+r6uX&(=+UH#C z@Pr)h*FG=({aySO#eMewpI1{*>%2zs)d$J)<-um9J+Ut6F2&pD?ifqdwz+RxY4hqd)(?eqUakkobU^Y7{JuQeo4 zt?z4}*Wj2Om0z<0k8hpV;0SKl)WE-=|A)dl#<%}asPp^tJPPU>KY1gV9QX16IsbhO zseAnXouuF2?m^8T>=!c628gP4vtof5Vr2)pg{nhN`Hj zY@}F2G-92|lc9Zm5-FCEhvlhLx{RiC%5iDt6#t` z)}%S!g|tUWAbs~?3(e{7p*fSE{=NZ^_L{$F8x*h2qVH;^p)S;kx`6`$aQRgS_^m)- zPBDg6gv&PiW+~>ae)^j#HR-MEfAka7g*xdQ6`P?)feRO>Ke{cT&tZ*SL|aBZvuZK@^pH6zOLL|$Jq=Iehoo!_euePTAv2>?gn3Y`D1x_j%ftGMz2-cClK z1fdM`K%_vhQRV?2Mxe|CD1bmClW0iZCh?3QNFxDCB!(oDD8qn*I0oOi+6K%$F(lj# z1eoFei{;&By z^nvU*yh$IgM9W4!M;jW^isoS(BwO|GJZ%YHzDxebX6C)x9F1rlwgEXO|w_s`%Ll#{1dO@5OuNXhwVZpcBnm^XLNe`>(cd-~OU^Fc!?S zEk}F4EB+i_lJGRkk1cge_FfN(**)8M?$etXl8^9$r=*qaL^5&>n=0P`doS_58$Q4H z`I+~B_5mAdXeY9jr;UScS)bo!Up({aXY=CPtmW~NZ$H13xy*WDThh269l1T{S`X#C z-Us8>sGF6)mFU8Y^@24M9+Sq+2j9+q>Mz7KZbtiVB_3CL&OWqm9Il=DD%u~P%C+K6 zcJJQ({=9v!e8yS#{kyFBt$){DZ-5DQ{3G2rvsOc+^*J8}UXxls(gl1g`IhS+X8j&e z;-{Qt7B}^3{8)e3v17;cIsfpS+&4}WbMu;S8%Kw(+Fr(M^!G8az-)2A33ukGpwP$>WJH*b|+(D=-F?0)JQhReO9V zTbm?yZLW5}cl;duJ%{7_dJHTu3%(pqxP5QX_iGa`d2FTm3UB;Kd})EfM~Qd7)$eCL z|8&;0A59xazGay2&K*f?*25V`OXvxV!MGH^?gNpzhqS{i-@H{OzR?%r=h`2AJrj=j zkROQ8^kK9mmh+QoJn*IQC*nB??_W>b{+zEeeLK-#m-x_+eCs$m@`3oM2dOt#(hfNf zbs*KiTIQzWAy4C-&+|-^z^N^OeLnP~yP$YO8)7_|aVO`#HZd-+JoVU-$>UcK+smIsZq`eeQel zEe^6DpVLF`$HpG}-IVmfhlw}*)3~vM?!=rPB?ppkfxFkoarxz!KZ4)P$75}=_{l#= z9OH|jW!YHC8u;b5ja%OEif6nh-Dtmo&%G^E*RdPkP5jjEqKzIRqjcINIj*|$=#=C1 zSjNo~S;#rL19ZFRITIqzc2FtuxZC%4r}bgsK!b0BXW!)UR!5>4>?+shc*S$@-54En zOUC6h_8rSWZIR_)W^BC}n9KO5@9C|Ahc@5mH3zovR=Q@Z z1gpT&-t~->F7T0S^n2&=C_dvLd9W8;5fj&5P6-XGgC zb#4DOveNBA+k>t9Z63McI~i2UyYF6XpSz}`^~t!Db@wv3bh37Av49hJ^(xM zs}Dw34b1c8+C93drAOPD4~kwnUDB4RYkSYZ+wH$k;@@~}VU6RTKFpbzJ>wF)z3^3z z$3Fks!o6|)XRba1Hr->4Xam>o-EhMVPZV4^xkh74GrOcMQ`dMN^1sXed);sIzWkF1 z>z=lZdEPo`TpFjt$v9bWX>>hF{=on{du^}htkgdJZr$S^+$}9^5jwwxjfb{OUE`VD z(SOmoGwHvpuDa?#-fc0~PAa&Qa(zR$(Q)lOU9_HQ{U_dn{u|DJzn?V!wR1MPqfgj` zllYu;pDr}FwewT)Ub$!auJiNsSRao0ll?ns{zDVm&{*)M&3|G|(&k;f4O?K6{nM8x zw%WY*4;iM1TH4TPE@T50y>e@S==UT2HZXshdnDIw`}m&?c-du_J<`G=Yi+r@#%tL> zDL>WzHOI8}Z)9dyeCmg0Z38weTh_R3X|rBsOIWwNZl9Uw;;(#`-B>hF%JGgCHhDX) z(9CupSFg2ygLmrsM|=0@lv@8}&G_;pThN-t+Qs~+e9ND;4*v$bRmxe*H`_K=)>z;_ ziM{aFq;(8^XANd8*2m%gq;c9?|E#$FrDw@f%Y*B@|Lnn>729uZO3&ig7&K1WAw%pQIJA4#@Q1Cv>F|PGIa;T!oqFrvuV)VUdF;U>EBQY{ zLubFQ#{Z#z*rxHFz0)7RWYj%t;=DWM(bhI9o>t1y#5cqKvsM@<_wLyj6jRptKh6p4 z@AC=q4Na=&J~^O&^=)6?Ceg=-^{sDxYoGp`v>t77S|gYz;;Ub_rk{iZE$j#DA8WQ2 zUjI5Ye8ks>=OnyuN%~IqiudL{CP&TF{W|Uc#ykHf{iLrZ`9JA9bA`3Pu}+V)aHd@= zs}B3qnii~9w}sx3|C0~actg`9T~xRtV<-4{GY0v7%Kw?mg$ptUZnH;}d1r}zS9SY2 zTh-ja7UP>{ze?r*HlFGBdH5cO!#W47*s&uV@W5GiApOy=JMMq+bI#GGEpNj!#)rRd z|HIyZJ%W{FpbtCcM{~12@PEI|TK}gXv}L7vao{O>|9Ip{tXO~lLo<9kxg~StlbI{0 z&ZUK8Gv~2sK8oDad9%d7;NS1>le+k)*h^=v42XXk#>LJP|Ac?zpo@QtzxypV<7V#T zakQa%4e@WH?}hg-=_)cG8|GioJfuC@y8OgZ{~+t6 zfw66yb-K^LR67_C z?1NkEpNSRCI`{+Yi!;#F<0_4P4g$t+CE_L%kfR|&+t)Lr^7kK zeJ1-nD98Tjh0*y}{v|#(aaQry9`z2%_zw9l<~si>CJPL{N&Y!Ls^HIylj8T=H}uo; zRe}k28@HN&H|38^@~w99b;-LptIW$?yiNL1+(mo-eV2QY>tBk=N%GE<$1xv33=W{AWMa=`2Xkk|8?>H z^~1L=Y^}Tl6F?^ypPzeTG5>1igT?>1^z+5rXV2e0{q_HeMHWW4x zhwXcRwR5%msR00arNl{j`lb4*tC)VPe(WlwUv*sf3W;FYdg|0=sdZ)2zb9?!RCz8k zyPt;lL>LPfC;em6k1`f+&;Hmw;yAKD@@Qfk9*d6KlX3Cio+*>`-6VC?-H6{;g7kun z$!oGFbw~Cnf0ysJJ)J$ESAP53-@X%n^0CD8zVDr}-dCG_*!Q!C^`2+SD4RMv)dd5r zBrwm!&$rxf%3Snd_5+_sQ}%|O9q3|Cr`c+r@wY3RdFxYkufP8KXR|LYF8QVqf5~ZN zz?%EI?0fFaKHUrKyv&ZIW2T!?C~bgfnTaGG)HHB6ID3nTsPQW8;lywb^DVm;LF_d`lKixRcPZn%_C; z%WE&a^wL%BUCl!4q%y`y;uHQ1HyT2`Ie(sCs%^P8V{}jS#xY}V60XyAA5OT@Fyvv@ zejsyK;9dP``s8%cUU1iS*ILEV|W<%yCgQt?{c>7gUv#7 zpAPS@H^+tez8rleeBBhE%}blXch{%8{x`>&r_mZ7+Od2=)`h!gZF^%%Jc3w_g1y=t z46tU^73OHRSLkQ+b-(a)O=6ax<13p)hxmq^i#eWo`1fLl;@5mK{?@0Q@!Pp`=bN5q zoUJ%dC?h^j9F4kQfCVPlVpG!26X`%BTG2ctU!2$--mgB6c5NfJE9>{iQ|^J-aJy1( zP$~Zp#3_l<6vGxD-m)0if-7EBj9dD8pE~Lm968w0F%KsG{RwfO;bUz7vRm2Ssne}J z*ze?Ot0Z zKD|f9G-VI{Rj~5yn?I5zFw#;%k3b zJGEu<-GGDeN%8qTMt0lh{cEzSEu){i_8aniFzc%)ikA4a_lSvY+rYIk*1{7XEWWnz zi$iUnqtzG)j@yIpp7h8>rc8yi*p$ngCiL)IL4*16x<^@)sD_( zh#72oLLb?z7*=|te_qQPo1Y+idV90au;koV?4_f{J2`0U>IY-7P1z$G*&Et2e)Q+H zf5FK0F0sySJ4c6pMuv=?(6Eo3wSDZG+!YMx@Y;6cAK>HQ-^g!?zMu!I9-Yz3me_b_ zyW8aKT?<=`Z^rsaXOUt2wq@d9-xB{!`>d58 zbn5GRPFDQiCVHculM%8)W(xN>`B8_Ah?Uhp##}3h{ujeqFtUz0S~%or<`>I6aBuYD zlCy{E8Z+t|zhdQE8EWCQ*T$wXYOEIC%H4BrS(&PnG5aMOV%+$J6K?g#jo}iK-b^&_m54w?#gpjs9xKHCXz^`L*KRxsKvlj@Htj zDKl~Yf)5P+kB-=W%g*?dQ+mXlM3#$o=T{)?Kd!Nl{ETN%bRG$9+w6Wj5&K4z4^}NlaC%!QDC)v+r8%=bGb0FlR zt>0dg>-4ET;{DpT#zoOhPK{N#$Web>6fCxW%H5HAo&P=cu1);-3)B3uV39*>40^fN zFKkHTHv06_R<{(cey)tQPTK1=b-|Iq1lt7n^n1K zIeElSUoNNBne+^td0?dt|B~@Vua4G_x$f5Q*2c!hBwQPPKkfBp&Sd-{ZQozN>w`<8 z+jd58Og(F}kvvTCpP+vsuC;6|ia9-x1J2Q?po&V6D zz;ItA&BtpVS#P?{o8}(+n+}9C3GVg!otM76&K?0jJ3g}B8|$B(hc`AC zyT#mZ{xk=L;FWabT6pT>2Qs$z#O`{IEl94kpE1{8leD~eri`-cuzA^yY_GHpo1nih zu@*X~)zzl!~Jj_Cfx5Q#7PhWw;xqvV4qTzL@s zlVaT$_x>useqo`DW7@i~uo#xKuyE4-L@ri-!v9}gTvXEB1OGRc-_fS889`u~Lc z;p3#d;jj3vcBpo#cB*z8wPOHu?ON?TY5+mdcb8pUb-?W*In!okA%k&`R4X5Nu8 z{_FTb9*W-Ovpbx1zL?El=h;tE#(w(w9oqa^hu=k!(Vt}R=CQ;Hzm+)Q59zj6pSX6< zv-qOkjIMq(I`1dJebE~5e=T<9P0>S78RzrNE%cZ=+4p!d7Yuf+un|ur=*elR*p>pw=uN&^7 z3rw)5w8Pi3e*Vw(ew z#3$qYNsY}dX_Fo1(@8MY$rzv6wo`T*FUBUF5*j+aMzieDGqN9Sp)2Z}Y!I7sej@kE)?K4Q3CCOf9_GX{S ze*4ImV9&rFN9~KXbu#9Yb@*FMKtB*ZZMPkcLHy(P=G?^iijOQs(^V$;bNo8cec8hmzgWzjSQ1Z41vmvTe`NK7~5!(qCY; zW$EAa1$jI_X^XkQoY0nOuZ07iL`T71KEl&T5{`V1IT5 zM5k^=!+P4G+BAB07W=!SK|8R8*Sh{7YhcW?{wM;He~p~5OQSpHIvWA6@oY?yYp@!) z^Il$*xn@V=Yr6Gk=8}(NZ!Pg>nak;Ob`-mcJ{#JXW#i6^vtPc}-&e4e^FHL?uv=m~ z9IiQ(En_Z;{LHofJ~i0VxoYBPaQ1HN$;GpF=bngnVi4UZEv)ia^-l!W$+#(!zQIia zSLdb(ZhnfmB^I_NjrG8)BkAz^!@AS#1^|J`?3>td%;ph*%n4@+Mmu+w}mmJV zY@BhlSH1R`xm;Ui9Np@EI^rpR%pRF0fJ9f?}KCWIw^j#%060 zX0w^Q^=;-2^*>=7sjn{Hlw;#a)2UYv}N^aQ`}9NI`(b=3VoQQkrl literal 9662 zcmeHKyN)9_5Tu}B1sL!OFkmP+;279|!U>g`;f50`WT;S~veUsov|yXZASc3x)*1`H9dZWH{W2l#GLvvi576x=s9k!v`d)zcIAQ(!zB7RC zYQoy(42s{=&_0FF8_`+v*)xE4f5Yq}FafqsczXVx+?p@*kRR+Hx9 z*>!$1Dtt~m>v3Om$T~9D)XrhsdcfBiF5TY}@f?TL6yG^7fkJHW#sFhPzKcW0i1=$6oG^ z5__I=p~g8z4#c+xvsc_!e|ry*Q<*%EXZEDcY9pVny}iw>q2o5&z`iloc_vS-m71~H&%vIYbdST&j!_l?NM^iXHcl2&u42e zdj7E#V|~PITx#chd-p`Uc<|UeznJbJ_r2Gho|Z+jz`XCD8s=K0%vTaV8j z?c{*1E-aT_^-k$;K zrGOzmXxz0m@Jkr=>RMd?qlX)~LWYN22b+t%Z2?Psgn65zpAo0-Qay6ecxQ-N=v=!- zoLmtmdDgdgUvhz6_uwU;oIG=4eKNTN)F!xVp4b{zB@WFMZ{YEwTYKc~Z^*r-ZS43? zYu0OM=RC%)e=mQfHQV*X&mda8_8IzD6FviP_2!RrG02$ z!lv+fL=C;)7ZdJ*+B?5ZN?J?%>>U zk%mO)Ug@8|`4gX?oD<*hdG1{Ev6+8?KYn_B{!0J4`S3h*?sM~DGye>K{Bb{n|NZ!M zn*9my=1n;J*|F*Pw4ZR2Cp^O2q&iZ!feh+6(JOsczw~AMl{sJ}=ee|VI;FYE9A&O= K$IG14-2Vn+*rcEU diff --git a/icon/iconwin.go b/icon/icon_windows.go similarity index 95% rename from icon/iconwin.go rename to icon/icon_windows.go index 1225ba03b..2cf75b5e3 100644 --- a/icon/iconwin.go +++ b/icon/icon_windows.go @@ -1,5 +1,3 @@ -//go:build windows - package icon import _ "embed" // import embed to embed the icon diff --git a/icon/icondarwin.go b/icon/icondarwin.go deleted file mode 100644 index a53dfcdf0..000000000 --- a/icon/icondarwin.go +++ /dev/null @@ -1,52 +0,0 @@ -//go:build darwin - -package icon - -import ( - _ "embed" // import embed to embed the icon - "os/exec" - "strings" -) - -// isDarkMode will return if the system is in darkmode -func isDarkMode() bool { - cmd := exec.Command("defaults", "read", "-g", "AppleInterfaceStyle") - output, _ := cmd.Output() - return strings.Contains(string(output), "Dark") -} - -// GetIcon will return the icon -func GetIcon() []byte { - if isDarkMode() { - return data - } - return dataLight -} - -// GetIconHiber will return the hibernated icon -func GetIconHiber() []byte { - if isDarkMode() { - return dataDarkHibernate - } - return dataLightHibernate -} - -// dataLight represents the icon -// -//go:embed icon_mac_light.png -var dataLight []byte - -// dataLightHibernate represents the light icon hibernated -// -//go:embed icon_mac_light_hiber.png -var dataLightHibernate []byte - -// data represents the icon -// -//go:embed icon_mac.png -var data []byte - -// dataDarkHibernate represents the dark icon hibernated -// -//go:embed icon_mac_hiber.png -var dataDarkHibernate []byte diff --git a/systray/systray_real.go b/systray/systray_real.go index 20db97118..1c94c7ab1 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -50,7 +50,7 @@ func (s *Systray) Quit() { // start creates a systray icon with menu options to go to arduino create, open debug, pause/quit the agent func (s *Systray) start() { - systray.SetIcon(icon.GetIcon()) + systray.SetTemplateIcon(icon.GetIcon(), icon.GetIcon()) // Add version menuVer := systray.AddMenuItem("Agent version "+s.Version, "") @@ -136,7 +136,7 @@ func RemoveCrashes() { // starthibernate creates a systray icon with menu options to resume/quit the agent func (s *Systray) startHibernate() { - systray.SetIcon(icon.GetIconHiber()) + systray.SetTemplateIcon(icon.GetIconHiber(), icon.GetIconHiber()) mResume := systray.AddMenuItem("Resume Agent", "") systray.AddSeparator() From d4c453787561de7886d9224c97b315ea1185f89e Mon Sep 17 00:00:00 2001 From: per1234 Date: Thu, 23 Nov 2023 08:25:13 -0800 Subject: [PATCH 140/233] Correct message re: enabling logging If the `v` key is not set to `true` in the configuration file, Arduino Create Agent prints a helpful message to the terminal. Previously this message instructed the user to enable logging via a `-v` command line flag. However, Arduino Create Agent doesn't have a `-v` flag. The sole mechanism for controlling logging is the `v` key of the configuration file. The instructions in the message are hereby corrected to specify the use of the configuration file. --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 0350f0f4a..9122ecf96 100755 --- a/main.go +++ b/main.go @@ -320,7 +320,7 @@ func loop() { } if !*verbose { - log.Println("You can enter verbose mode to see all logging by starting with the -v command line switch.") + log.Println("You can enter verbose mode to see all logging by setting the v key in the configuration file to true.") log.SetOutput(io.Discard) } From fc09ed5cf9bfee7c44bfdd7b6f3c7b5bf2110d39 Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Thu, 30 Nov 2023 10:58:55 +0100 Subject: [PATCH 141/233] input sanitization (#862) --- home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home.html b/home.html index bad500a47..7f4ffb6b9 100644 --- a/home.html +++ b/home.html @@ -44,7 +44,7 @@ if (messages.length > MESSAGES_MAX_COUNT) { messages.shift(); } - log.innerHTML = messages.join('

'); + log.textContent = messages.join('

'); if (autoscroll.checked) { log.scrollTop = log.scrollHeight - log.clientHeight; } From e7d9a69093e7ae61362e259e0c4e867f11ba0dd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 00:50:25 +0000 Subject: [PATCH 142/233] Bump actions/setup-go from 4 to 5 Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-go-dependencies-task.yml | 4 ++-- .github/workflows/check-go-task.yml | 10 +++++----- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index d07fae92b..956dc37b7 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -79,7 +79,7 @@ jobs: version: 3.x - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} @@ -129,7 +129,7 @@ jobs: version: 3.x - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 4bb6869ca..74b246ccc 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -71,7 +71,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} @@ -108,7 +108,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} @@ -145,7 +145,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} @@ -182,7 +182,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} @@ -219,7 +219,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 0d2c78ff1..c32165a6b 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -88,7 +88,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 551756e95..a9e10ad6e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,7 +67,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 6de9f37e8..60f24c93c 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -75,7 +75,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 79712584a..0fa572f18 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -81,7 +81,7 @@ jobs: uses: actions/checkout@v4 - name: Install Go - uses: actions/setup-go@v4 + uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} From ddea2cdf90322f29a14ca9daaa6350433045e61c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 04:08:46 +0000 Subject: [PATCH 143/233] Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/test-go-integration-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 60f24c93c..294ab00f4 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -80,7 +80,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} From ba3283ccfaee1350c667046077b70d34ca8b6c24 Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Mon, 11 Dec 2023 10:30:44 +0100 Subject: [PATCH 144/233] Fix regression showing escaped charaters (#871) --- home.html | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/home.html b/home.html index 7f4ffb6b9..61cade73d 100644 --- a/home.html +++ b/home.html @@ -33,18 +33,27 @@ if (jsonMsg.Ports) { const validKeys = ['Name', 'SerialNumber', 'IsOpen', 'VendorID', 'ProductID']; if (jsonMsg.Network) { - printMsg = "Network Ports:
"+JSON.stringify(jsonMsg.Ports, validKeys, 2); + printMsg = "Network Ports:\n"+JSON.stringify(jsonMsg.Ports, validKeys, 2); } else { - printMsg = "Serial Ports:
"+JSON.stringify(jsonMsg.Ports, validKeys, 2); + printMsg = "Serial Ports:\n"+JSON.stringify(jsonMsg.Ports, validKeys, 2); } } else if (Object.keys(jsonMsg).length !== 0) { printMsg = JSON.stringify(jsonMsg, undefined, 2); } + + // when parsing JSON we're escaping some html charaters like "&<>", we want to show their + // original value in the log + function decode(str) { + let txt = new DOMParser().parseFromString(str, "text/html"); + return txt.documentElement.textContent; + } + printMsg = decode(printMsg); + messages.push(printMsg); if (messages.length > MESSAGES_MAX_COUNT) { messages.shift(); } - log.textContent = messages.join('

'); + log.textContent = messages.join('\n\n'); if (autoscroll.checked) { log.scrollTop = log.scrollHeight - log.clientHeight; } @@ -60,13 +69,13 @@ return false; } socket.emit('command', input.val()); + input.val(''); }); $('#export').click(function() { var link = document.createElement('a'); link.setAttribute('download', 'agent-log.txt'); - var text = log.innerHTML.replace(/
/g, '\n'); - text = text.replace(/|<\/b>/g, ''); + var text = log.textContent; link.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); link.click(); }); @@ -83,15 +92,15 @@ socket = io('http://{{$}}'); } socket.on('disconnect', function(evt) { - appendLog($('

')) + appendLog('Connection closed.') }); socket.on('message', function(evt) { appendLog(evt); }); } else { - appendLog($('
Your browser does not support WebSockets.
')) + appendLog('Your browser does not support WebSockets.') } - + $("#input").focus(); }); @@ -101,7 +110,7 @@ height: 100%; } -body { +body { margin: 0px; padding: 0px; background: #F8F9F9; @@ -111,7 +120,7 @@ #container { display: flex; - flex-direction: column; + flex-direction: column; height: 100vh; width: 100%; } @@ -126,15 +135,15 @@ overflow-y: auto; } -#footer { - display: flex; +#footer { + display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; - margin: 0px 15px 0px; + margin: 0px 15px 0px; } -#form { +#form { display: flex; flex-grow: 1; margin-bottom: 15px; @@ -145,8 +154,8 @@ } #secondary-controls div { - display: inline-block; - padding: 10px 15px; + display: inline-block; + padding: 10px 15px; } #autoscroll, @@ -169,7 +178,7 @@ box-shadow: 0 4px #95a5a6; margin-bottom: 4px; color: #000; - cursor: pointer; + cursor: pointer; font-size: 14px; letter-spacing: 1.28px; line-height: normal; @@ -181,20 +190,20 @@ } .button:hover { - box-shadow: 0 2px #95a5a6; + box-shadow: 0 2px #95a5a6; outline: none; transform: translateY(2px); } .button:active { - box-shadow: none; + box-shadow: none; transform: translateY(4px); } .textfield { background-color: #dae3e3; width: auto; - height: auto; + height: auto; padding: 10px 8px; margin-left: 8px; vertical-align: top; From 9a0e582bb8a1ff8e70d202943ddef8625ccefcc8 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:11:20 +0100 Subject: [PATCH 145/233] Remove `/certificate.crt` endpoint (#858) * remove `/certificate.crt` endpoint. It seems to be unused. Has been added in 6e1d110 and https://github.com/arduino/arduino-create-agent/pull/54 * move from `text/template` to `html/template` because it already includes built-in Output Encoding capabilities. * remove obsolete test --- certificates/certificates.go | 123 ----------------------------------- main.go | 4 +- tests/test_certs.py | 33 ---------- 3 files changed, 1 insertion(+), 159 deletions(-) delete mode 100644 tests/test_certs.py diff --git a/certificates/certificates.go b/certificates/certificates.go index a52599318..990fa2e01 100644 --- a/certificates/certificates.go +++ b/certificates/certificates.go @@ -30,13 +30,9 @@ import ( "math/big" "net" "os" - "strings" - "text/template" "time" - "github.com/arduino/arduino-create-agent/config" "github.com/arduino/go-paths-helper" - "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" ) @@ -262,23 +258,6 @@ func GenerateCertificates(certsDir *paths.Path) { } } -// CertHandler will expone the certificate (we do not know why this was required) -func CertHandler(c *gin.Context) { - if strings.Contains(c.Request.UserAgent(), "Firefox") { - c.Header("content-type", "application/x-x509-ca-cert") - c.File("ca.cert.cer") - return - } - noFirefoxTemplate.Execute(c.Writer, gin.H{ - "url": "http://" + c.Request.Host + c.Request.URL.String(), - }) -} - -// DeleteCertHandler will delete the certificates -func DeleteCertHandler(c *gin.Context) { - DeleteCertificates(config.GetCertificatesDir()) -} - // DeleteCertificates will delete the certificates func DeleteCertificates(certDir *paths.Path) { certDir.Join("ca.key.pem").Remove() @@ -288,105 +267,3 @@ func DeleteCertificates(certDir *paths.Path) { certDir.Join("cert.pem").Remove() certDir.Join("cert.cer").Remove() } - -const noFirefoxTemplateHTML = ` - - - - - - -
-

Oops, this is not Firefox

-
- -
-

You need to open this link in Firefox to trust this certificate: {{.host}}{{.url}}

-
- - -` - -var noFirefoxTemplate = template.Must(template.New("home").Parse(noFirefoxTemplateHTML)) diff --git a/main.go b/main.go index 9122ecf96..29f097112 100755 --- a/main.go +++ b/main.go @@ -22,6 +22,7 @@ import ( _ "embed" "encoding/json" "flag" + "html/template" "io" "os" "os/exec" @@ -29,7 +30,6 @@ import ( "runtime/debug" "strconv" "strings" - "text/template" "time" cors "github.com/andela/gin-cors" @@ -386,8 +386,6 @@ func loop() { r.LoadHTMLFiles("templates/nofirefox.html") r.GET("/", homeHandler) - r.GET("/certificate.crt", cert.CertHandler) - r.DELETE("/certificate.crt", cert.DeleteCertHandler) r.POST("/upload", uploadHandler) r.GET("/socket.io/", socketHandler) r.POST("/socket.io/", socketHandler) diff --git a/tests/test_certs.py b/tests/test_certs.py deleted file mode 100644 index aec25b491..000000000 --- a/tests/test_certs.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2022 Arduino SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import requests - - -def test_get_cert(base_url, agent): - - resp = requests.get(f"{base_url}/certificate.crt") - assert resp.status_code == 200 - - cert = resp.text - assert "" in cert - - -def test_del_cert(base_url, agent): - - resp = requests.delete(f"{base_url}/certificate.crt") - assert resp.status_code == 200 - - # Should rm "ca.cert.pem", "ca.cert.cer", "ca.key.pem" From a9902be38746402dde569036b2566e216e431218 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:12:43 +0100 Subject: [PATCH 146/233] Bump actions/stale from 8 to 9 (#868) Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/close-stale-issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml index 7068fc913..06850e563 100644 --- a/.github/workflows/close-stale-issues.yml +++ b/.github/workflows/close-stale-issues.yml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: stale-issue-message: 'This issue has been marked as stale because it has been open for more than 14 days with no activity. Remove stale label or comment, otherwise it will be closed in 7 days ' stale-issue-label: 'status: stale' From e52bb0070110665b1c0bb29876b183a7c068e254 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:25:06 +0100 Subject: [PATCH 147/233] Bump github.com/arduino/go-paths-helper from 1.9.2 to 1.10.1 (#869) * Bump github.com/arduino/go-paths-helper from 1.9.2 to 1.10.1 Bumps [github.com/arduino/go-paths-helper](https://github.com/arduino/go-paths-helper) from 1.9.2 to 1.10.1. - [Release notes](https://github.com/arduino/go-paths-helper/releases) - [Commits](https://github.com/arduino/go-paths-helper/compare/v1.9.2...v1.10.1) --- updated-dependencies: - dependency-name: github.com/arduino/go-paths-helper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix license --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/arduino/go-paths-helper.dep.yml | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml index 3688480ca..192c642a6 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/go-paths-helper -version: v1.9.2 +version: v1.10.1 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper diff --git a/go.mod b/go.mod index 4af2e1105..c06696b33 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e - github.com/arduino/go-paths-helper v1.9.2 + github.com/arduino/go-paths-helper v1.10.1 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 github.com/getlantern/systray v1.1.0 diff --git a/go.sum b/go.sum index b9b1103fd..264916c80 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,8 @@ github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZ github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= -github.com/arduino/go-paths-helper v1.9.2 h1:omR8DPTL4nbUCWfGey5D+e3WvWfA2zEgoM6ZBRNt7ls= -github.com/arduino/go-paths-helper v1.9.2/go.mod h1:V82BWgAAp4IbmlybxQdk9Bpkz8M4Qyx+RAFKaG9NuvU= +github.com/arduino/go-paths-helper v1.10.1 h1:j8InnhLrSeoPiOvTnZL0XMFt7l407ciTBJJJs7W9bs4= +github.com/arduino/go-paths-helper v1.10.1/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= From 9186c62f5fa9d3004c1c0176541b3bd6de2dad9d Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 14 Dec 2023 15:40:48 +0100 Subject: [PATCH 148/233] Bump GO to version 1.21 (#872) * bump go version used in workflows * bump version of go used in go mod --- .github/workflows/check-go-dependencies-task.yml | 2 +- .github/workflows/check-go-task.yml | 2 +- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- go.mod | 2 +- go.sum | 11 +++++++++++ 8 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 956dc37b7..a08539a17 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -3,7 +3,7 @@ name: Check Go Dependencies env: # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.20" + GO_VERSION: "1.21" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 74b246ccc..577b44ead 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -3,7 +3,7 @@ name: Check Go env: # See: https://github.com/actions/setup-go/tree/main#supported-version-syntax - GO_VERSION: "1.20" + GO_VERSION: "1.21" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index c32165a6b..625b5f700 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -30,7 +30,7 @@ on: repository_dispatch: env: - GO_VERSION: "1.20" + GO_VERSION: "1.21" jobs: run-determination: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a9e10ad6e..dfb9c1db0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,7 +22,7 @@ env: AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon AC_PROVIDER: ${{ secrets.AC_PROVIDER }} # used by gon # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.20" + GO_VERSION: "1.21" jobs: # The build job is responsible for: configuring the environment, testing and compiling process diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 294ab00f4..635364696 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -3,7 +3,7 @@ name: Test Integration env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.20" + GO_VERSION: "1.21" # See: https://github.com/actions/setup-python/tree/v2#available-versions-of-python PYTHON_VERSION: "3.9" diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 0fa572f18..4e8ec9872 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -3,7 +3,7 @@ name: Test Go env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.20" + GO_VERSION: "1.21" # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows on: diff --git a/go.mod b/go.mod index c06696b33..c3b48d89e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/arduino/arduino-create-agent -go 1.20 +go 1.21 require ( github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c diff --git a/go.sum b/go.sum index 264916c80..f9d62cad5 100644 --- a/go.sum +++ b/go.sum @@ -55,6 +55,7 @@ github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNIT github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= @@ -89,7 +90,9 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV github.com/juju/errors v0.0.0-20200330140219-3fe23663418f h1:MCOvExGLpaSIzLYB4iQXEHP4jYVU6vmzLNQPdMVrxnM= github.com/juju/errors v0.0.0-20200330140219-3fe23663418f/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 h1:UUHMLvzt/31azWTN/ifGWef4WUqvXk0iRqdhdy/2uzI= +github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0 h1:+WWUkhnTjV6RNOxkcwk79qrjeyHEHvBzlneueBsatX4= +github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0/go.mod h1:hpGvhGHPVbNBraRLZEhoQwFLMrjK8PSlO4D3nDjKYXo= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= @@ -105,6 +108,7 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/leonelquinteros/gotext v1.4.0 h1:2NHPCto5IoMXbrT0bldPrxj0qM5asOCwtb1aUQZ1tys= @@ -112,6 +116,7 @@ github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2s github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= +github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0ReT1eKt5QlKjwgi5AFm5mI6O1A2G4ChI0Ag= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= @@ -126,6 +131,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 h1:d291KOLbN1GthTPA1fLKyWdclX3k1ZP+CzYtun+a5Es= github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= @@ -208,6 +214,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -231,6 +238,7 @@ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -256,10 +264,13 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= From 9d362b2ffcaa066af7e36997b0b29179586fe984 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 15:56:49 +0100 Subject: [PATCH 149/233] Bump golang.org/x/sys from 0.14.0 to 0.15.0 (#861) * Bump golang.org/x/sys from 0.14.0 to 0.15.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.14.0 to 0.15.0. - [Commits](https://github.com/golang/sys/compare/v0.14.0...v0.15.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 82acb6663..86b3e4620 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.14.0 +version: v0.15.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.14.0/LICENSE +- sources: sys@v0.15.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.14.0/PATENTS +- sources: sys@v0.15.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index c3b48d89e..843a90cb8 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.14.0 - golang.org/x/sys v0.14.0 + golang.org/x/sys v0.15.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index f9d62cad5..66c228397 100644 --- a/go.sum +++ b/go.sum @@ -230,8 +230,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= From 0fd774a7dbb13109648d2a6d84ee8c0964e1c71c Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:59:14 +0100 Subject: [PATCH 150/233] remove unused endpoint (#877) --- killbrowser.go | 64 ------------------------------ killbrowser/killbrowser_darwin.go | 31 --------------- killbrowser/killbrowser_linux.go | 45 --------------------- killbrowser/killbrowser_windows.go | 35 ---------------- main.go | 1 - 5 files changed, 176 deletions(-) delete mode 100644 killbrowser.go delete mode 100644 killbrowser/killbrowser_darwin.go delete mode 100644 killbrowser/killbrowser_linux.go delete mode 100644 killbrowser/killbrowser_windows.go diff --git a/killbrowser.go b/killbrowser.go deleted file mode 100644 index a3a1dc6ee..000000000 --- a/killbrowser.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package main - -import ( - "errors" - "net/http" - - "github.com/arduino/arduino-create-agent/killbrowser" - "github.com/gin-gonic/gin" -) - -func killBrowserHandler(c *gin.Context) { - - var data struct { - Action string `json:"action"` - Process string `json:"process"` - URL string `json:"url"` - } - - c.BindJSON(&data) - - if data.Process != "chrome" && data.Process != "chrom" { - c.JSON(http.StatusBadRequest, errors.New("You can't kill the process"+data.Process)) - return - } - - command, err := browser.Find(data.Process) - - if err != nil { - c.JSON(http.StatusInternalServerError, err.Error()) - return - } - - if data.Action == "kill" || data.Action == "restart" { - _, err := browser.Kill(data.Process) - if err != nil { - c.JSON(http.StatusInternalServerError, err.Error()) - return - } - } - - if data.Action == "restart" { - _, err := browser.Start(command, data.URL) - if err != nil { - c.JSON(http.StatusInternalServerError, err.Error()) - return - } - } - -} diff --git a/killbrowser/killbrowser_darwin.go b/killbrowser/killbrowser_darwin.go deleted file mode 100644 index 2ff4c3e64..000000000 --- a/killbrowser/killbrowser_darwin.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package browser - -// Find will find the browser -func Find(process string) ([]byte, error) { - return nil, nil -} - -// Kill will kill a process -func Kill(process string) ([]byte, error) { - return nil, nil -} - -// Start will start a command -func Start(command []byte, url string) ([]byte, error) { - return nil, nil -} diff --git a/killbrowser/killbrowser_linux.go b/killbrowser/killbrowser_linux.go deleted file mode 100644 index 4e4a1e987..000000000 --- a/killbrowser/killbrowser_linux.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package browser - -import ( - "os/exec" - "strings" - - "github.com/arduino/arduino-create-agent/utilities" -) - -// Find will find the browser -func Find(process string) ([]byte, error) { - ps := exec.Command("ps", "-A", "-o", "command") - grep := exec.Command("grep", process) - head := exec.Command("head", "-n", "1") - - return utilities.PipeCommands(ps, grep, head) -} - -// Kill will kill a process -func Kill(process string) ([]byte, error) { - cmd := exec.Command("pkill", "-9", process) - return cmd.Output() -} - -// Start will start a command -func Start(command []byte, url string) ([]byte, error) { - parts := strings.Split(string(command), " ") - cmd := exec.Command(parts[0], url) - return cmd.Output() -} diff --git a/killbrowser/killbrowser_windows.go b/killbrowser/killbrowser_windows.go deleted file mode 100644 index 0f6628482..000000000 --- a/killbrowser/killbrowser_windows.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package browser - -import "os/exec" - -// Find will find the browser -func Find(process string) ([]byte, error) { - return []byte(process), nil -} - -// Kill will kill a process -func Kill(process string) ([]byte, error) { - cmd := exec.Command("Taskkill", "/F", "/IM", process+".exe") - return cmd.Output() -} - -// Start will start a command -func Start(command []byte, url string) ([]byte, error) { - cmd := exec.Command("cmd", "/C", "start", string(command), url) - return cmd.Output() -} diff --git a/main.go b/main.go index 29f097112..e48272655 100755 --- a/main.go +++ b/main.go @@ -392,7 +392,6 @@ func loop() { r.Handle("WS", "/socket.io/", socketHandler) r.Handle("WSS", "/socket.io/", socketHandler) r.GET("/info", infoHandler) - r.POST("/killbrowser", killBrowserHandler) r.POST("/pause", pauseHandler) r.POST("/update", updateHandler) From fa8874f76a098a12c8341ea6328395b51fbac14c Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:28:52 +0100 Subject: [PATCH 151/233] Use `codeclysm/extract` and remove custom implementation (#867) * replace test with a meaningful one The tools are the one coming with the cores installed in the builder * use `codeclysm/extract` and remove extract code * fix cleanup in tests * enlarge the scope of the test: verify dir tree is handled correctly * the archives are first extracted in tmp and then moved to correct place we remove the root dir if we find one. The logic is similar to: https://github.com/arduino/arduino-cli/blob/7a146635aaa740e748b84bf8fbfdccf1cc420c61/arduino/resources/install.go#L34 * fix test failing --- tools/download.go | 337 ++++----------------- tools/download_test.go | 155 ++++------ tools/testdata/test_tool_index.json | 439 ++++++++++++++++++++++++++++ utilities/utilities.go | 40 --- 4 files changed, 548 insertions(+), 423 deletions(-) diff --git a/tools/download.go b/tools/download.go index 76f4056c5..177ca3f76 100644 --- a/tools/download.go +++ b/tools/download.go @@ -16,11 +16,8 @@ package tools import ( - "archive/tar" - "archive/zip" "bytes" - "compress/bzip2" - "compress/gzip" + "context" "crypto/sha256" "encoding/hex" "encoding/json" @@ -30,14 +27,13 @@ import ( "net/http" "os" "os/exec" - "path" "path/filepath" "runtime" - "strings" - "github.com/arduino/arduino-create-agent/utilities" "github.com/arduino/arduino-create-agent/v2/pkgs" + "github.com/arduino/go-paths-helper" "github.com/blang/semver" + "github.com/codeclysm/extract/v3" ) // public vars to allow override in the tests @@ -46,10 +42,6 @@ var ( Arch = runtime.GOARCH ) -func mimeType(data []byte) (string, error) { - return http.DetectContentType(data[0:512]), nil -} - func pathExists(path string) bool { _, err := os.Stat(path) if err == nil { @@ -129,39 +121,46 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { return errors.New("checksum doesn't match") } - // Decompress - t.logger("Unpacking tool " + name) - - location := t.directory.Join(pack, correctTool.Name, correctTool.Version).String() - err = os.RemoveAll(location) - + tempPath := paths.TempDir() + // Create a temporary dir to extract package + if err := tempPath.MkdirAll(); err != nil { + return fmt.Errorf("creating temp dir for extraction: %s", err) + } + tempDir, err := tempPath.MkTempDir("package-") if err != nil { - return err + return fmt.Errorf("creating temp dir for extraction: %s", err) } + defer tempDir.RemoveAll() - srcType, err := mimeType(body) + t.logger("Unpacking tool " + name) + ctx := context.Background() + reader := bytes.NewReader(body) + // Extract into temp directory + if err := extract.Archive(ctx, reader, tempDir.String(), nil); err != nil { + return fmt.Errorf("extracting archive: %s", err) + } + + location := t.directory.Join(pack, correctTool.Name, correctTool.Version) + err = location.RemoveAll() if err != nil { return err } - switch srcType { - case "application/zip": - location, err = extractZip(t.logger, body, location) - case "application/x-bz2": - case "application/octet-stream": - location, err = extractBz2(t.logger, body, location) - case "application/x-gzip": - location, err = extractTarGz(t.logger, body, location) - default: - return errors.New("Unknown extension for file " + correctSystem.URL) + // Check package content and find package root dir + root, err := findPackageRoot(tempDir) + if err != nil { + return fmt.Errorf("searching package root dir: %s", err) } - if err != nil { - t.logger("Error extracting the archive: " + err.Error()) - return err + if err := root.Rename(location); err != nil { + if err := root.CopyDirTo(location); err != nil { + return fmt.Errorf("moving extracted archive to destination dir: %s", err) + } } - err = t.installDrivers(location) + // if the tool contains a post_install script, run it: it means it is a tool that needs to install drivers + // AFAIK this is only the case for the windows-driver tool + err = t.installDrivers(location.String()) if err != nil { return err } @@ -170,13 +169,27 @@ func (t *Tools) Download(pack, name, version, behaviour string) error { t.logger("Ensure that the files are executable") // Update the tool map - t.logger("Updating map with location " + location) + t.logger("Updating map with location " + location.String()) - t.setMapValue(name, location) - t.setMapValue(name+"-"+correctTool.Version, location) + t.setMapValue(name, location.String()) + t.setMapValue(name+"-"+correctTool.Version, location.String()) return t.writeMap() } +func findPackageRoot(parent *paths.Path) (*paths.Path, error) { + files, err := parent.ReadDir() + if err != nil { + return nil, fmt.Errorf("reading package root dir: %s", err) + } + files.FilterOutPrefix("__MACOSX") + + // if there is only one dir, it is the root dir + if len(files) == 1 && files[0].IsDir() { + return files[0], nil + } + return parent, nil +} + func findTool(pack, name, version string, data pkgs.Index) (pkgs.Tool, pkgs.System) { var correctTool pkgs.Tool correctTool.Version = "0.0" @@ -207,258 +220,6 @@ func findTool(pack, name, version string, data pkgs.Index) (pkgs.Tool, pkgs.Syst return correctTool, correctSystem } -func commonPrefix(sep byte, paths []string) string { - // Handle special cases. - switch len(paths) { - case 0: - return "" - case 1: - return path.Clean(paths[0]) - } - - c := []byte(path.Clean(paths[0])) - - // We add a trailing sep to handle: common prefix directory is included in the path list - // (e.g. /home/user1, /home/user1/foo, /home/user1/bar). - // path.Clean will have cleaned off trailing / separators with - // the exception of the root directory, "/" making it "//" - // but this will get fixed up to "/" below). - c = append(c, sep) - - // Ignore the first path since it's already in c - for _, v := range paths[1:] { - // Clean up each path before testing it - v = path.Clean(v) + string(sep) - - // Find the first non-common byte and truncate c - if len(v) < len(c) { - c = c[:len(v)] - } - for i := 0; i < len(c); i++ { - if v[i] != c[i] { - c = c[:i] - break - } - } - } - - // Remove trailing non-separator characters and the final separator - for i := len(c) - 1; i >= 0; i-- { - if c[i] == sep { - c = c[:i] - break - } - } - - return string(c) -} - -func removeStringFromSlice(s []string, r string) []string { - for i, v := range s { - if v == r { - return append(s[:i], s[i+1:]...) - } - } - return s -} - -func findBaseDir(dirList []string) string { - if len(dirList) == 1 { - return path.Dir(dirList[0]) + "/" - } - - // https://github.com/backdrop-ops/contrib/issues/55#issuecomment-73814500 - dontdiff := []string{"pax_global_header"} - for _, v := range dontdiff { - dirList = removeStringFromSlice(dirList, v) - } - - commonBaseDir := commonPrefix('/', dirList) - if commonBaseDir != "" { - commonBaseDir = commonBaseDir + "/" - } - return commonBaseDir -} - -func extractZip(log func(msg string), body []byte, location string) (string, error) { - path, _ := utilities.SaveFileonTempDir("tooldownloaded.zip", bytes.NewReader(body)) - r, err := zip.OpenReader(path) - if err != nil { - return location, err - } - - var dirList []string - - for _, f := range r.File { - dirList = append(dirList, f.Name) - } - - basedir := findBaseDir(dirList) - log(fmt.Sprintf("selected baseDir %s from Zip Archive Content: %v", basedir, dirList)) - - for _, f := range r.File { - fullname := filepath.Join(location, strings.Replace(f.Name, basedir, "", -1)) - log(fmt.Sprintf("generated fullname %s removing %s from %s", fullname, basedir, f.Name)) - if f.FileInfo().IsDir() { - os.MkdirAll(fullname, f.FileInfo().Mode().Perm()) - } else { - os.MkdirAll(filepath.Dir(fullname), 0755) - perms := f.FileInfo().Mode().Perm() - out, err := os.OpenFile(fullname, os.O_CREATE|os.O_RDWR, perms) - if err != nil { - return location, err - } - rc, err := f.Open() - if err != nil { - return location, err - } - _, err = io.CopyN(out, rc, f.FileInfo().Size()) - if err != nil { - return location, err - } - rc.Close() - out.Close() - - mtime := f.FileInfo().ModTime() - err = os.Chtimes(fullname, mtime, mtime) - if err != nil { - return location, err - } - } - } - return location, nil -} - -func extractTarGz(log func(msg string), body []byte, location string) (string, error) { - bodyCopy := make([]byte, len(body)) - copy(bodyCopy, body) - tarFile, _ := gzip.NewReader(bytes.NewReader(body)) - tarReader := tar.NewReader(tarFile) - - var dirList []string - - for { - header, err := tarReader.Next() - if err == io.EOF { - break - } - dirList = append(dirList, header.Name) - } - - basedir := findBaseDir(dirList) - log(fmt.Sprintf("selected baseDir %s from TarGz Archive Content: %v", basedir, dirList)) - - tarFile, _ = gzip.NewReader(bytes.NewReader(bodyCopy)) - tarReader = tar.NewReader(tarFile) - - for { - header, err := tarReader.Next() - if err == io.EOF { - break - } else if err != nil { - return location, err - } - - path := filepath.Join(location, strings.Replace(header.Name, basedir, "", -1)) - info := header.FileInfo() - - // Create parent folder - dirmode := info.Mode() | os.ModeDir | 0700 - if err = os.MkdirAll(filepath.Dir(path), dirmode); err != nil { - return location, err - } - - if info.IsDir() { - if err = os.MkdirAll(path, info.Mode()); err != nil { - return location, err - } - continue - } - - if header.Typeflag == tar.TypeSymlink { - _ = os.Symlink(header.Linkname, path) - continue - } - - file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, info.Mode()) - if err != nil { - continue - } - _, err = io.Copy(file, tarReader) - if err != nil { - return location, err - } - file.Close() - } - return location, nil -} - -func extractBz2(log func(msg string), body []byte, location string) (string, error) { - bodyCopy := make([]byte, len(body)) - copy(bodyCopy, body) - tarFile := bzip2.NewReader(bytes.NewReader(body)) - tarReader := tar.NewReader(tarFile) - - var dirList []string - - for { - header, err := tarReader.Next() - if err == io.EOF { - break - } - dirList = append(dirList, header.Name) - } - - basedir := findBaseDir(dirList) - log(fmt.Sprintf("selected baseDir %s from Bz2 Archive Content: %v", basedir, dirList)) - - tarFile = bzip2.NewReader(bytes.NewReader(bodyCopy)) - tarReader = tar.NewReader(tarFile) - - for { - header, err := tarReader.Next() - if err == io.EOF { - break - } else if err != nil { - continue - //return location, err - } - - path := filepath.Join(location, strings.Replace(header.Name, basedir, "", -1)) - info := header.FileInfo() - - // Create parent folder - dirmode := info.Mode() | os.ModeDir | 0700 - if err = os.MkdirAll(filepath.Dir(path), dirmode); err != nil { - return location, err - } - - if info.IsDir() { - if err = os.MkdirAll(path, info.Mode()); err != nil { - return location, err - } - continue - } - - if header.Typeflag == tar.TypeSymlink { - _ = os.Symlink(header.Linkname, path) - continue - } - - file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, info.Mode()) - if err != nil { - continue - //return location, err - } - _, err = io.Copy(file, tarReader) - if err != nil { - return location, err - } - file.Close() - } - return location, nil -} - func (t *Tools) installDrivers(location string) error { OkPressed := 6 extension := ".bat" diff --git a/tools/download_test.go b/tools/download_test.go index 0617cf306..c45914b51 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -17,16 +17,13 @@ package tools import ( "encoding/json" - "fmt" - "io" - "net/http" - "os" - "path" + "runtime" "testing" + "time" + "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/arduino/go-paths-helper" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -44,6 +41,10 @@ func TestDownloadCorrectPlatform(t *testing.T) { {"windows", "amd64", "x86_64-mingw32"}, {"linux", "arm", "arm-linux-gnueabihf"}, } + defer func() { + OS = runtime.GOOS // restore `runtime.OS` + Arch = runtime.GOARCH // restore `runtime.ARCH` + }() testIndex := paths.New("testdata", "test_tool_index.json") buf, err := testIndex.ReadFile() require.NoError(t, err) @@ -76,6 +77,10 @@ func TestDownloadFallbackPlatform(t *testing.T) { {"darwin", "arm64", "i386-apple-darwin11"}, {"windows", "amd64", "i686-mingw32"}, } + defer func() { + OS = runtime.GOOS // restore `runtime.OS` + Arch = runtime.GOARCH // restore `runtime.ARCH` + }() testIndex := paths.New("testdata", "test_tool_index.json") buf, err := testIndex.ReadFile() require.NoError(t, err) @@ -98,99 +103,59 @@ func TestDownloadFallbackPlatform(t *testing.T) { } } -func Test_findBaseDir(t *testing.T) { - cases := []struct { - dirList []string - want string +func TestDownload(t *testing.T) { + testCases := []struct { + name string + version string + filesCreated []string }{ - {[]string{"bin/bossac"}, "bin/"}, - {[]string{"bin/", "bin/bossac"}, "bin/"}, - {[]string{"bin/", "bin/bossac", "example"}, ""}, - {[]string{"avrdude/bin/", - "avrdude/bin/avrdude.exe", - "avrdude/bin/remove_giveio.bat", - "avrdude/bin/status_giveio.bat", - "avrdude/bin/giveio.sys", - "avrdude/bin/loaddrv.exe", - "avrdude/bin/libusb0.dll", - "avrdude/bin/install_giveio.bat", - "avrdude/etc/avrdude.conf"}, "avrdude/"}, - {[]string{"pax_global_header", "bin/", "bin/bossac"}, "bin/"}, + {"avrdude", "6.3.0-arduino17", []string{"bin", "etc"}}, + {"bossac", "1.6.1-arduino", []string{"bossac"}}, + {"bossac", "1.7.0-arduino3", []string{"bossac"}}, + {"bossac", "1.9.1-arduino2", []string{"bossac"}}, + {"openocd", "0.11.0-arduino2", []string{"bin", "share"}}, + {"dfu-util", "0.10.0-arduino1", []string{"dfu-prefix", "dfu-suffix", "dfu-util"}}, + {"rp2040tools", "1.0.6", []string{"elf2uf2", "picotool", "pioasm", "rp2040load"}}, + {"esptool_py", "4.5.1", []string{"esptool"}}, + {"arduino-fwuploader", "2.2.2", []string{"arduino-fwuploader"}}, + {"fwupdater", "0.1.12", []string{"firmwares", "FirmwareUploader"}}, // old legacy tool } - for _, tt := range cases { - t.Run(fmt.Sprintln(tt.dirList), func(t *testing.T) { - if got := findBaseDir(tt.dirList); got != tt.want { - t.Errorf("findBaseDir() = got %v, want %v", got, tt.want) - } - }) + // prepare the test environment + tempDir := t.TempDir() + tempDirPath := paths.New(tempDir) + testIndex := index.Resource{ + IndexFile: *paths.New("testdata", "test_tool_index.json"), + LastRefresh: time.Now(), } -} - -func TestTools_DownloadAndUnpackBehaviour(t *testing.T) { - urls := []string{ - "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", - "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", - "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2", - "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", - "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", - "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", - } - expectedDirList := []string{"bin", "etc"} - - tmpDir, err := os.MkdirTemp("", "download_test") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(tmpDir) - - for _, url := range urls { - t.Log("Downloading tool from " + url) - resp, err := http.Get(url) - if err != nil { - t.Errorf("%v", err) - } - defer resp.Body.Close() + testTools := New(tempDirPath, &testIndex, func(msg string) { t.Log(msg) }) - // Read the body - body, err := io.ReadAll(resp.Body) - if err != nil { - t.Errorf("%v", err) - } - - location := path.Join(tmpDir, "username", "arduino", "avrdude", "6.3.0-arduino14") - os.MkdirAll(location, os.ModePerm) - err = os.RemoveAll(location) - - if err != nil { - t.Errorf("%v", err) - } - - srcType, err := mimeType(body) - if err != nil { - t.Errorf("%v", err) - } - - switch srcType { - case "application/zip": - location, err = extractZip(func(msg string) { t.Log(msg) }, body, location) - case "application/x-bz2": - case "application/octet-stream": - location, err = extractBz2(func(msg string) { t.Log(msg) }, body, location) - case "application/x-gzip": - location, err = extractTarGz(func(msg string) { t.Log(msg) }, body, location) - default: - t.Errorf("no suitable type found") - } - files, err := os.ReadDir(location) - if err != nil { - t.Errorf("%v", err) - } - dirList := []string{} - for _, f := range files { - dirList = append(dirList, f.Name()) - } + for _, tc := range testCases { + t.Run(tc.name+"-"+tc.version, func(t *testing.T) { + // Download the tool + err := testTools.Download("arduino-test", tc.name, tc.version, "replace") + require.NoError(t, err) + + // Check that the tool has been downloaded + toolDir := tempDirPath.Join("arduino-test", tc.name, tc.version) + require.DirExists(t, toolDir.String()) + + // Check that the files have been created + for _, file := range tc.filesCreated { + filePath := toolDir.Join(file) + if filePath.IsDir() { + require.DirExists(t, filePath.String()) + } else { + if OS == "windows" { + require.FileExists(t, filePath.String()+".exe") + } else { + require.FileExists(t, filePath.String()) + } + } + } - assert.ElementsMatchf(t, dirList, expectedDirList, "error message %s", "formatted") + // Check that the tool has been installed + _, ok := testTools.getMapValue(tc.name + "-" + tc.version) + require.True(t, ok) + }) } - } diff --git a/tools/testdata/test_tool_index.json b/tools/testdata/test_tool_index.json index 8d5dbc652..fdee1cc9d 100644 --- a/tools/testdata/test_tool_index.json +++ b/tools/testdata/test_tool_index.json @@ -49,6 +49,390 @@ } ], "tools": [ + { + "name": "avrdude", + "version": "6.3.0-arduino17", + "systems": [ + { + "size": "219631", + "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229852", + "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279045", + "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254271", + "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244550", + "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328460", + "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "bossac", + "version": "1.6.1-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", + "size": "201341" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", + "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", + "size": "222918" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", + "size": "64587" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", + "size": "30869" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", + "size": "30320" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0-arduino3", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", + "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + "size": "3607421" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", + "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + "size": "75510" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "size": "207271" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", + "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + "size": "193577" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", + "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + "size": "193941" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + "size": "268365" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino2", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", + "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", + "size": "1260628" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", + "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", + "size": "47870" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", + "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", + "size": "399532" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", + "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", + "size": "384951" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", + "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", + "size": "361915" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", + "size": "442853" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino2", + "systems": [ + { + "size": "1902818", + "checksum": "SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1986716", + "checksum": "SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1971364", + "checksum": "SHA-256:6f4a8b77c8076aa18afb8438472526dff8c0d161a3ca68d0326163b59fcab663", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2460087", + "checksum": "SHA-256:631010980f12b1e750c4c67ce012b31c5953caabf4d30607d806e3d2b717d4b8", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip" + }, + { + "size": "1893150", + "checksum": "SHA-256:280e7234eba84e830e92d791ebc685286f71d2bc1d3347f93605ef170d54fef4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2052080", + "checksum": "SHA-256:4d19b6e3906de1434ec86841e0e3138235714c655d45f037c0fabfa5e5c0681b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "dfu-util", + "version": "0.10.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-osx.tar.bz2", + "size": "73921", + "checksum": "SHA-256:7562d128036759605828d64b8d672d42445a8d95555c4b9ba339f73a1711a640" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm.tar.bz2", + "size": "272153", + "checksum": "SHA-256:f1e550f40c235356b7fde1c59447bfbab28f768915d3c14bd858fe0576bfc5a9" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "size": "277886", + "checksum": "SHA-256:ebfbd21d3030c500da1f83b9aae5b8c597bee04c3bde1ce0a51b41abeafc9614" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "size": "77184", + "checksum": "SHA-256:13ef2ec591c1e8b0b7eb0a05da972ecd6695016e7a9607e332c7553899af9b4a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "size": "81826", + "checksum": "SHA-256:43599ec60c000e9ef016970a496d6ab2cbbe5a8b7df9d06ef3114ecf83f9d123" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-windows.tar.bz2", + "size": "464314", + "checksum": "SHA-256:90816b669273ae796d734a2459c46bb340d4790783fd7aa01eb40c0443f1a9b1" + } + ] + }, + { + "name": "rp2040tools", + "version": "1.0.6", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-darwin_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-darwin_amd64.tar.bz2", + "size": "1717967", + "checksum": "SHA-256:4e32aa4b8f36db40a17bfbdfd34d80da91710e30c3887732bf0c0bf0b02840a7" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_arm.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_arm.tar.bz2", + "size": "8702508", + "checksum": "SHA-256:084a29accf0014bc79723fbb40057b95299c7ae63876f74494a077c987014cc3" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_arm64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_arm64.tar.bz2", + "size": "9037783", + "checksum": "SHA-256:1a2a6cb1abf1f7b8198d494c8d8e838700297d748877be8232e02aaa5ca8d0df" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_amd64.tar.bz2", + "size": "6108121", + "checksum": "SHA-256:6e2ea818db1ff57f2d8e1e3010fbc5bdb5f28ff44f5a68900cae41d7d709f738" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_386.tar.bz2", + "size": "6604083", + "checksum": "SHA-256:ef339e2e0f5c7d5464b9911b612c634767daba39a6be977a1ffa41c95b9827a1" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-windows_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-windows_386.tar.bz2", + "size": "3145329", + "checksum": "SHA-256:26a5daebba68c2348dade33716a6e379ded89895ef0e49df1332964a724f6170" + } + ] + }, + { + "name": "esptool_py", + "version": "4.5.1", + "systems": [ + { + "host": "x86_64-pc-linux-gnu", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-macos.tar.gz", + "archiveFileName": "esptool-v4.5.1-macos.tar.gz", + "checksum": "SHA-256:78b52acfd51541ceb97cee893b7d4d49b8ddc284602be8c73ea47e3d849e0956", + "size": "5850888" + }, + { + "host": "x86_64-mingw32", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-win64.zip", + "archiveFileName": "esptool-v4.5.1-win64.zip", + "checksum": "SHA-256:64d0c24499d46b80d6bd7a05c98bdacc3455ab6d503cc2a99e35711310216045", + "size": "6638448" + }, + { + "host": "i686-mingw32", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-win64.zip", + "archiveFileName": "esptool-v4.5.1-win64.zip", + "checksum": "SHA-256:64d0c24499d46b80d6bd7a05c98bdacc3455ab6d503cc2a99e35711310216045", + "size": "6638448" + } + ] + }, { "name": "arduino-fwuploader", "version": "2.2.0", @@ -130,6 +514,61 @@ "size": "6829396" } ] + }, + { + "name": "fwupdater", + "version": "0.1.12", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", + "checksum": "SHA-256:2fec2bdfd20ad4950bc9ba37108dc2a7c152f569174279c0697efe1f5a0db781", + "size": "26097546" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", + "checksum": "SHA-256:ce57d0afef30cb7d3513f5da326346c99d6bf4923bbc2200634086811f3fb31e", + "size": "26073327" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.12_Windows_32bit.zip", + "checksum": "SHA-256:558568b453caa1c821def8cc6d34555d0c910eb7e7e871de3ae1c39ae6f01bdd", + "size": "25743641" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.12_Windows_64bit.zip", + "checksum": "SHA-256:ec16de33620985434280c92c3c322257b89bb67adf8fd4d5dd5f9467ea1e9e40", + "size": "25851428" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", + "checksum": "SHA-256:a470361b57f86ddfcaecd274d844af51ee1d23a71cd6c26e30fcef2152d1a03f", + "size": "25792860" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", + "checksum": "SHA-256:855fa0a9b942c3ee18906efc510bdfe30bf3334ff28ffbb476e648ff30033847", + "size": "25936245" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:691461e64fe075e9a79801347c2bd895fb72f8f2c45a7cd49056c6ad9efe8fc4", + "size": "25967430" + } + ] } ] } diff --git a/utilities/utilities.go b/utilities/utilities.go index 7372ab380..4f40aaf73 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -16,7 +16,6 @@ package utilities import ( - "archive/zip" "bytes" "crypto" "crypto/rsa" @@ -29,7 +28,6 @@ import ( "io" "os" "os/exec" - "path" "path/filepath" "strings" @@ -120,44 +118,6 @@ func call(stack []*exec.Cmd, pipes []*io.PipeWriter) (err error) { return stack[0].Wait() } -// Unzip will unzip a file to a destination -func Unzip(zippath string, destination string) (err error) { - r, err := zip.OpenReader(zippath) - if err != nil { - return err - } - for _, f := range r.File { - fullname := path.Join(destination, f.Name) - if f.FileInfo().IsDir() { - os.MkdirAll(fullname, f.FileInfo().Mode().Perm()) - } else { - os.MkdirAll(filepath.Dir(fullname), 0755) - perms := f.FileInfo().Mode().Perm() - out, err := os.OpenFile(fullname, os.O_CREATE|os.O_RDWR, perms) - if err != nil { - return err - } - rc, err := f.Open() - if err != nil { - return err - } - _, err = io.CopyN(out, rc, f.FileInfo().Size()) - if err != nil { - return err - } - rc.Close() - out.Close() - - mtime := f.FileInfo().ModTime() - err = os.Chtimes(fullname, mtime, mtime) - if err != nil { - return err - } - } - } - return -} - // SafeJoin performs a filepath.Join of 'parent' and 'subdir' but returns an error // if the resulting path points outside of 'parent'. func SafeJoin(parent, subdir string) (string, error) { From fb135b07aba7e1e3f95cfba1a67b5d74557eda4e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 18 Dec 2023 17:30:37 +0100 Subject: [PATCH 152/233] Remove network upload (#878) * remove network upload and discovery * update licenses --- .../go/github.com/kr/fs.dep.yml | 38 ---- .../go/github.com/miekg/dns.dep.yml | 54 ----- .../go/github.com/oleksandr/bonjour.dep.yml | 33 --- .../go/github.com/pkg/sftp.dep.yml | 20 -- .../internal/encoding/ssh/filexfer.dep.yml | 21 -- .../go/github.com/sfreiberg/simplessh.dep.yml | 33 --- .../go/golang.org/x/crypto/argon2.dep.yml | 6 +- .../go/golang.org/x/crypto/blake2b.dep.yml | 6 +- .../go/golang.org/x/crypto/blowfish.dep.yml | 62 ------ .../go/golang.org/x/crypto/cast5.dep.yml | 6 +- .../go/golang.org/x/crypto/curve25519.dep.yml | 63 ------ .../go/golang.org/x/crypto/ed25519.dep.yml | 62 ------ .../go/golang.org/x/crypto/sha3.dep.yml | 6 +- .../go/golang.org/x/crypto/ssh.dep.yml | 62 ------ .../go/golang.org/x/crypto/ssh/agent.dep.yml | 63 ------ .../crypto/ssh/internal/bcrypt_pbkdf.dep.yml | 62 ------ .../go/golang.org/x/net/bpf.dep.yml | 63 ------ .../go/golang.org/x/net/html.dep.yml | 6 +- .../go/golang.org/x/net/html/atom.dep.yml | 6 +- .../go/golang.org/x/net/http2.dep.yml | 6 +- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +- .../go/golang.org/x/net/internal/iana.dep.yml | 63 ------ .../golang.org/x/net/internal/socket.dep.yml | 62 ------ .../go/golang.org/x/net/ipv4.dep.yml | 63 ------ .../go/golang.org/x/net/ipv6.dep.yml | 63 ------ .../x/text/internal/language.dep.yml | 6 +- .../x/text/internal/language/compact.dep.yml | 6 +- .../go/golang.org/x/text/internal/tag.dep.yml | 6 +- .../go/golang.org/x/text/language.dep.yml | 6 +- conn.go | 4 +- discovery.go | 156 -------------- go.mod | 16 +- go.sum | 49 ++--- home.html | 6 +- hub.go | 3 +- serial.go | 49 +---- seriallist.go | 1 - serialport.go | 8 +- tests/test_ws.py | 1 - upload/README.md | 34 +-- upload/doc.go | 59 ----- upload/upload.go | 203 ------------------ upload/upload_test.go | 36 ---- 43 files changed, 68 insertions(+), 1516 deletions(-) delete mode 100644 .licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml delete mode 100644 discovery.go delete mode 100644 upload/doc.go diff --git a/.licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml b/.licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml deleted file mode 100644 index 899e45b46..000000000 --- a/.licenses/arduino-create-agent/go/github.com/kr/fs.dep.yml +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: github.com/kr/fs -version: v0.1.0 -type: go -summary: Package fs provides filesystem-related functions. -homepage: https://pkg.go.dev/github.com/kr/fs -license: bsd-3-clause -licenses: -- sources: LICENSE - text: | - Copyright (c) 2012 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml b/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml deleted file mode 100644 index 3c5d8d4ca..000000000 --- a/.licenses/arduino-create-agent/go/github.com/miekg/dns.dep.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- -name: github.com/miekg/dns -version: v1.1.35 -type: go -summary: Package dns implements a full featured interface to the Domain Name System. -homepage: https://pkg.go.dev/github.com/miekg/dns -license: bsd-3-clause -licenses: -- sources: LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - As this is fork of the official Go code the same license applies. - Extensions of the original work are copyright (c) 2011 Miek Gieben -- sources: COPYRIGHT - text: | - Copyright 2009 The Go Authors. All rights reserved. Use of this source code - is governed by a BSD-style license that can be found in the LICENSE file. - Extensions of the original work are copyright (c) 2011 Miek Gieben - - Copyright 2011 Miek Gieben. All rights reserved. Use of this source code is - governed by a BSD-style license that can be found in the LICENSE file. - - Copyright 2014 CloudFlare. All rights reserved. Use of this source code is - governed by a BSD-style license that can be found in the LICENSE file. -notices: -- sources: AUTHORS - text: Miek Gieben diff --git a/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml b/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml deleted file mode 100644 index 974494620..000000000 --- a/.licenses/arduino-create-agent/go/github.com/oleksandr/bonjour.dep.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: github.com/oleksandr/bonjour -version: v0.0.0-20210301155756-30f43c61b915 -type: go -summary: bonjour -homepage: https://pkg.go.dev/github.com/oleksandr/bonjour -license: mit -licenses: -- sources: LICENSE - text: |+ - The MIT License (MIT) - - Copyright (c) 2014 Oleksandr Lobunets - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml b/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml deleted file mode 100644 index 886a95a36..000000000 --- a/.licenses/arduino-create-agent/go/github.com/pkg/sftp.dep.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: github.com/pkg/sftp -version: v1.13.4 -type: go -summary: Package sftp implements the SSH File Transfer Protocol as described in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02 -homepage: https://pkg.go.dev/github.com/pkg/sftp -license: bsd-2-clause -licenses: -- sources: LICENSE - text: | - Copyright (c) 2013, Dave Cheney - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml b/.licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml deleted file mode 100644 index 6723aaaeb..000000000 --- a/.licenses/arduino-create-agent/go/github.com/pkg/sftp/internal/encoding/ssh/filexfer.dep.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: github.com/pkg/sftp/internal/encoding/ssh/filexfer -version: v1.13.4 -type: go -summary: Package filexfer implements the wire encoding for secsh-filexfer as described - in https://tools.ietf.org/html/draft-ietf-secsh-filexfer-02 -homepage: https://pkg.go.dev/github.com/pkg/sftp/internal/encoding/ssh/filexfer -license: bsd-2-clause -licenses: -- sources: sftp@v1.13.4/LICENSE - text: | - Copyright (c) 2013, Dave Cheney - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml b/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml deleted file mode 100644 index 6c56c1543..000000000 --- a/.licenses/arduino-create-agent/go/github.com/sfreiberg/simplessh.dep.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: github.com/sfreiberg/simplessh -version: v0.0.0-20220719182921-185eafd40485 -type: go -summary: -homepage: https://pkg.go.dev/github.com/sfreiberg/simplessh -license: mit -licenses: -- sources: LICENSE - text: |- - The MIT License (MIT) - - Copyright (c) 2014 Sam Freiberg - - Permission is hereby granted, free of charge, to any person obtaining a copy of - this software and associated documentation files (the "Software"), to deal in - the Software without restriction, including without limitation the rights to - use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - the Software, and to permit persons to whom the Software is furnished to do so, - subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: README.md - text: SimpleSSH is licensed under the MIT license. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml index 28d39dd1e..ef845bd7f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/argon2 -version: v0.14.0 +version: v0.16.0 type: go summary: Package argon2 implements the key derivation function Argon2. homepage: https://pkg.go.dev/golang.org/x/crypto/argon2 license: bsd-3-clause licenses: -- sources: crypto@v0.14.0/LICENSE +- sources: crypto@v0.16.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS +- sources: crypto@v0.16.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml index 0676e87b8..5c2284eac 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/blake2b -version: v0.14.0 +version: v0.16.0 type: go summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb. homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b license: bsd-3-clause licenses: -- sources: crypto@v0.14.0/LICENSE +- sources: crypto@v0.16.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS +- sources: crypto@v0.16.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml deleted file mode 100644 index 673b5ea27..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blowfish.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: golang.org/x/crypto/blowfish -version: v0.14.0 -type: go -summary: Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. -homepage: https://pkg.go.dev/golang.org/x/crypto/blowfish -license: bsd-3-clause -licenses: -- sources: crypto@v0.14.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index cc24bc1f5..affca44a5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.14.0 +version: v0.16.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.14.0/LICENSE +- sources: crypto@v0.16.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS +- sources: crypto@v0.16.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml deleted file mode 100644 index a3189b4d1..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/curve25519.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/crypto/curve25519 -version: v0.14.0 -type: go -summary: Package curve25519 provides an implementation of the X25519 function, which - performs scalar multiplication on the elliptic curve known as Curve25519. -homepage: https://pkg.go.dev/golang.org/x/crypto/curve25519 -license: other -licenses: -- sources: crypto@v0.14.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml deleted file mode 100644 index 114e59a21..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ed25519.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: golang.org/x/crypto/ed25519 -version: v0.14.0 -type: go -summary: Package ed25519 implements the Ed25519 signature algorithm. -homepage: https://pkg.go.dev/golang.org/x/crypto/ed25519 -license: bsd-3-clause -licenses: -- sources: crypto@v0.14.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index a402def28..f42272520 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.14.0 +version: v0.16.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.14.0/LICENSE +- sources: crypto@v0.16.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS +- sources: crypto@v0.16.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml deleted file mode 100644 index 1c44d2ffc..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: golang.org/x/crypto/ssh -version: v0.14.0 -type: go -summary: Package ssh implements an SSH client and server. -homepage: https://pkg.go.dev/golang.org/x/crypto/ssh -license: bsd-3-clause -licenses: -- sources: crypto@v0.14.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml deleted file mode 100644 index f6d974982..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/agent.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/crypto/ssh/agent -version: v0.14.0 -type: go -summary: Package agent implements the ssh-agent protocol, and provides both a client - and a server. -homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/agent -license: bsd-3-clause -licenses: -- sources: crypto@v0.14.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml deleted file mode 100644 index d1df2f193..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -version: v0.14.0 -type: go -summary: Package bcrypt_pbkdf implements bcrypt_pbkdf(3) from OpenBSD. -homepage: https://pkg.go.dev/golang.org/x/crypto/ssh/internal/bcrypt_pbkdf -license: bsd-3-clause -licenses: -- sources: crypto@v0.14.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.14.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml deleted file mode 100644 index d6c3876ff..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/bpf.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/net/bpf -version: v0.17.0 -type: go -summary: Package bpf implements marshaling and unmarshaling of programs for the Berkeley - Packet Filter virtual machine, and provides a Go implementation of the virtual machine. -homepage: https://pkg.go.dev/golang.org/x/net/bpf -license: bsd-3-clause -licenses: -- sources: net@v0.17.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml index c718a6e33..a7dd8d6f5 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/html -version: v0.17.0 +version: v0.19.0 type: go summary: Package html implements an HTML5-compliant tokenizer and parser. homepage: https://pkg.go.dev/golang.org/x/net/html license: other licenses: -- sources: net@v0.17.0/LICENSE +- sources: net@v0.19.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS +- sources: net@v0.19.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml index 67d9f044c..f7db7df75 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/net/html/atom -version: v0.17.0 +version: v0.19.0 type: go summary: 'Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and @@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed homepage: https://pkg.go.dev/golang.org/x/net/html/atom license: other licenses: -- sources: net@v0.17.0/LICENSE +- sources: net@v0.19.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS +- sources: net@v0.19.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index a6c913781..7fee7d67c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.17.0 +version: v0.19.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.17.0/LICENSE +- sources: net@v0.19.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS +- sources: net@v0.19.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 63bd19937..95f550308 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.17.0 +version: v0.19.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.17.0/LICENSE +- sources: net@v0.19.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS +- sources: net@v0.19.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml deleted file mode 100644 index 0571f7c26..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/iana.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/net/internal/iana -version: v0.17.0 -type: go -summary: Package iana provides protocol number resources managed by the Internet Assigned - Numbers Authority (IANA). -homepage: https://pkg.go.dev/golang.org/x/net/internal/iana -license: bsd-3-clause -licenses: -- sources: net@v0.17.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml deleted file mode 100644 index d9e364b00..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socket.dep.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: golang.org/x/net/internal/socket -version: v0.17.0 -type: go -summary: Package socket provides a portable interface for socket system calls. -homepage: https://pkg.go.dev/golang.org/x/net/internal/socket -license: bsd-3-clause -licenses: -- sources: net@v0.17.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml deleted file mode 100644 index 22c086349..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv4.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/net/ipv4 -version: v0.17.0 -type: go -summary: Package ipv4 implements IP-level socket options for the Internet Protocol - version 4. -homepage: https://pkg.go.dev/golang.org/x/net/ipv4 -license: bsd-3-clause -licenses: -- sources: net@v0.17.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml deleted file mode 100644 index c77916511..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/ipv6.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/net/ipv6 -version: v0.17.0 -type: go -summary: Package ipv6 implements IP-level socket options for the Internet Protocol - version 6. -homepage: https://pkg.go.dev/golang.org/x/net/ipv6 -license: bsd-3-clause -licenses: -- sources: net@v0.17.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.17.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index 9e7545d81..42b866d40 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language -version: v0.13.0 +version: v0.14.0 type: go summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: -- sources: text@v0.13.0/LICENSE +- sources: text@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.13.0/PATENTS +- sources: text@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml index 8118d81b9..8c839abc4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/language/compact -version: v0.13.0 +version: v0.14.0 type: go summary: Package compact defines a compact representation of language tags. homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact license: bsd-3-clause licenses: -- sources: text@v0.13.0/LICENSE +- sources: text@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.13.0/PATENTS +- sources: text@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml index f27cc7932..ee82cf388 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/internal/tag -version: v0.13.0 +version: v0.14.0 type: go summary: Package tag contains functionality handling tags and related data. homepage: https://pkg.go.dev/golang.org/x/text/internal/tag license: bsd-3-clause licenses: -- sources: text@v0.13.0/LICENSE +- sources: text@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.13.0/PATENTS +- sources: text@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml index f0831ea98..31167ba6c 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/text/language -version: v0.13.0 +version: v0.14.0 type: go summary: Package language implements BCP 47 language tags and related functionality. homepage: https://pkg.go.dev/golang.org/x/text/language license: bsd-3-clause licenses: -- sources: text@v0.13.0/LICENSE +- sources: text@v0.14.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: text@v0.13.0/PATENTS +- sources: text@v0.14.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/conn.go b/conn.go index 532a4b348..90b24be84 100644 --- a/conn.go +++ b/conn.go @@ -20,6 +20,7 @@ package main import ( "bytes" "encoding/json" + "errors" "fmt" "net/http" "os" @@ -170,8 +171,7 @@ func uploadHandler(c *gin.Context) { // Upload if data.Extra.Network { - send(map[string]string{uploadStatusStr: "Starting", "Cmd": "Network"}) - err = upload.Network(data.Port, data.Board, filePaths, commandline, data.Extra.Auth, l, data.Extra.SSH) + err = errors.New("network upload is not supported anymore, pease use OTA instead") } else { send(map[string]string{uploadStatusStr: "Starting", "Cmd": "Serial"}) err = upload.Serial(data.Port, commandline, data.Extra, l) diff --git a/discovery.go b/discovery.go deleted file mode 100644 index 1856ea9b5..000000000 --- a/discovery.go +++ /dev/null @@ -1,156 +0,0 @@ -// -// discovery.go -// -// Created by Martino Facchin -// Copyright (c) 2015 Arduino LLC -// -// Permission is hereby granted, free of charge, to any person -// obtaining a copy of this software and associated documentation -// files (the "Software"), to deal in the Software without -// restriction, including without limitation the rights to use, -// copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following -// conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -// OTHER DEALINGS IN THE SOFTWARE. -// - -package main - -import ( - "net" - "strings" - "time" - - "github.com/oleksandr/bonjour" - log "github.com/sirupsen/logrus" -) - -const timeoutConst = 2 - -// SavedNetworkPorts contains the ports which we know are already connected -var SavedNetworkPorts []OsSerialPort - -// enumerateNetworkPorts returns a list of Network Ports -// The research of network ports is articulated in two phases. First we add new ports coming from -// the bonjour module, then we prune the boards who don't respond to a ping -func enumerateNetworkPorts() ([]OsSerialPort, error) { - newPorts, err := getPorts() - if err != nil { - return nil, err - } - - SavedNetworkPorts = Filter(SavedNetworkPorts, func(port OsSerialPort) bool { - any := true - for _, p := range newPorts { - if p.Name == port.Name { - any = false - return any - } - } - return any - }) - - SavedNetworkPorts, err = pruneUnreachablePorts(SavedNetworkPorts) - if err != nil { - return nil, err - } - - SavedNetworkPorts = append(SavedNetworkPorts, newPorts...) - - return SavedNetworkPorts, nil -} - -func checkAvailability(ip string) bool { - timeout := time.Duration(1500 * time.Millisecond) - // Check if the port 80 is open - conn, err := net.DialTimeout("tcp", ip+":80", timeout) - if err != nil { - log.Println(err) - // Check if the port 22 is open - conn, err = net.DialTimeout("tcp", ip+":22", timeout) - if err != nil { - log.Println(err) - return false - } - conn.Close() - return true - } - conn.Close() - return true -} - -func pruneUnreachablePorts(ports []OsSerialPort) ([]OsSerialPort, error) { - times := 2 - - ports = Filter(ports, func(port OsSerialPort) bool { - any := false - for i := 0; i < times; i++ { - if checkAvailability(port.Name) { - any = true - } - } - return any - }) - - return ports, nil -} - -func getPorts() ([]OsSerialPort, error) { - resolver, err := bonjour.NewResolver(nil) - if err != nil { - log.Println("Failed to initialize resolver:", err.Error()) - return nil, err - } - - results := make(chan *bonjour.ServiceEntry) - - timeout := make(chan bool, 1) - go func(exitCh chan<- bool) { - time.Sleep(timeoutConst * time.Second) - exitCh <- true - close(results) - }(resolver.Exit) - - arrPorts := []OsSerialPort{} - go func(results chan *bonjour.ServiceEntry, exitCh chan<- bool) { - for e := range results { - log.Printf("%+v", e) - if e.AddrIPv4 != nil { - arrPorts = append(arrPorts, OsSerialPort{Name: e.AddrIPv4.String(), IDProduct: e.Instance, IDVendor: strings.Join(e.Text[:], " "), NetworkPort: true}) - } - } - timeout <- true - }(results, resolver.Exit) - - err = resolver.Browse("_arduino._tcp", "", results) - if err != nil { - log.Println("Failed to browse:", err.Error()) - return nil, err - } - // wait for some kind of timeout and return arrPorts - <-timeout - return arrPorts, nil -} - -// Filter returns a new slice containing all OsSerialPort in the slice that satisfy the predicate f. -func Filter(vs []OsSerialPort, f func(OsSerialPort) bool) []OsSerialPort { - var vsf []OsSerialPort - for _, v := range vs { - if f(v) { - vsf = append(vsf, v) - } - } - return vsf -} diff --git a/go.mod b/go.mod index 843a90cb8..1c4c2d33b 100644 --- a/go.mod +++ b/go.mod @@ -15,9 +15,7 @@ require ( github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 github.com/mattn/go-shellwords v1.0.12 github.com/mitchellh/go-homedir v1.1.0 - github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 github.com/pkg/errors v0.9.1 - github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 github.com/sirupsen/logrus v1.9.0 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.8.4 @@ -35,7 +33,6 @@ require ( github.com/cloudflare/circl v1.3.3 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/davidmz/go-pageant v1.0.2 // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect @@ -62,17 +59,14 @@ require ( github.com/klauspost/compress v1.15.13 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/kr/binarydist v0.1.0 // indirect - github.com/kr/fs v0.1.0 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/leonelquinteros/gotext v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect github.com/mattn/go-isatty v0.0.19 // indirect - github.com/miekg/dns v1.1.35 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/pkg/sftp v1.13.4 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect @@ -80,11 +74,11 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.14.0 // indirect + golang.org/x/crypto v0.16.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.16.1 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 66c228397..208702ac4 100644 --- a/go.sum +++ b/go.sum @@ -26,8 +26,6 @@ github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglD github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= -github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= @@ -102,8 +100,6 @@ github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZX github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= -github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -121,8 +117,6 @@ github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APP github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/miekg/dns v1.1.35 h1:oTfOaDH+mZkdcgdIjH6yBajRGtIwcwcaR+rt23ZSrJs= -github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -132,22 +126,16 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915 h1:d291KOLbN1GthTPA1fLKyWdclX3k1ZP+CzYtun+a5Es= -github.com/oleksandr/bonjour v0.0.0-20210301155756-30f43c61b915/go.mod h1:MGuVJ1+5TX1SCoO2Sx0eAnjpdRytYla2uC1YIZfkC9c= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.4 h1:Lb0RYJCmgUcBgZosfoi9Y9sbl6+LJgOIgk/2Y4YjMFg= -github.com/pkg/sftp v1.13.4/go.mod h1:LzqnAvaD5TWeNBsZpfKxSYn1MbjWwOsCIAFFJbpIsK8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485 h1:ZMBZ2DKX1sScUSo9ZUwGI7jCMukslPNQNfZaw9vVyfY= -github.com/sfreiberg/simplessh v0.0.0-20220719182921-185eafd40485/go.mod h1:9qeq2P58+4+LyuncL3waJDG+giOfXgowfrRZZF9XdWk= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= @@ -186,41 +174,32 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -237,26 +216,22 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff --git a/home.html b/home.html index 61cade73d..30c241f22 100644 --- a/home.html +++ b/home.html @@ -32,11 +32,7 @@ let printMsg = msg; if (jsonMsg.Ports) { const validKeys = ['Name', 'SerialNumber', 'IsOpen', 'VendorID', 'ProductID']; - if (jsonMsg.Network) { - printMsg = "Network Ports:\n"+JSON.stringify(jsonMsg.Ports, validKeys, 2); - } else { - printMsg = "Serial Ports:\n"+JSON.stringify(jsonMsg.Ports, validKeys, 2); - } + printMsg = "Serial Ports:\n"+JSON.stringify(jsonMsg.Ports, validKeys, 2); } else if (Object.keys(jsonMsg).length !== 0) { printMsg = JSON.stringify(jsonMsg, undefined, 2); } diff --git a/hub.go b/hub.go index 70b1c9dd3..a4f966fbc 100755 --- a/hub.go +++ b/hub.go @@ -177,8 +177,7 @@ func checkCmd(m []byte) { // will catch send and sendnobuf and sendraw go spWrite(s) } else if strings.HasPrefix(sl, "list") { - go spList(false) - go spList(true) + go spList() } else if strings.HasPrefix(sl, "downloadtool") { go func() { args := strings.Split(s, " ") diff --git a/serial.go b/serial.go index e1270c7c6..86124faf3 100755 --- a/serial.go +++ b/serial.go @@ -51,9 +51,8 @@ type serialhub struct { // SpPortList is the serial port list type SpPortList struct { - Ports []SpPortItem - Network bool - Mu sync.Mutex `json:"-"` + Ports []SpPortItem + Mu sync.Mutex `json:"-"` } // SpPortItem is the serial port item @@ -66,7 +65,6 @@ type SpPortItem struct { Baud int BufferAlgorithm string Ver string - NetworkPort bool VendorID string ProductID string } @@ -74,9 +72,6 @@ type SpPortItem struct { // serialPorts contains the ports attached to the machine var serialPorts SpPortList -// networkPorts contains the ports on the network -var networkPorts SpPortList - var sh = serialhub{ //write: make(chan *serport, chan []byte), write: make(chan writeRequest), @@ -126,18 +121,12 @@ func write(wr writeRequest) { } // spList broadcasts a Json representation of the ports found -func spList(network bool) { +func spList() { var ls []byte var err error - if network { - networkPorts.Mu.Lock() - ls, err = json.MarshalIndent(&networkPorts, "", "\t") - networkPorts.Mu.Unlock() - } else { - serialPorts.Mu.Lock() - ls, err = json.MarshalIndent(&serialPorts, "", "\t") - serialPorts.Mu.Unlock() - } + serialPorts.Mu.Lock() + ls, err = json.MarshalIndent(&serialPorts, "", "\t") + serialPorts.Mu.Unlock() if err != nil { //log.Println(err) h.broadcastSys <- []byte("Error creating json on port list " + @@ -150,13 +139,8 @@ func spList(network bool) { // discoverLoop periodically update the list of ports found func discoverLoop() { serialPorts.Mu.Lock() - serialPorts.Network = false serialPorts.Ports = make([]SpPortItem, 0) serialPorts.Mu.Unlock() - networkPorts.Mu.Lock() - networkPorts.Network = true - networkPorts.Ports = make([]SpPortItem, 0) - networkPorts.Mu.Unlock() go func() { for { @@ -166,12 +150,6 @@ func discoverLoop() { time.Sleep(2 * time.Second) } }() - go func() { - for { - updateNetworkPortList() - time.Sleep(2 * time.Second) - } - }() } var serialEnumeratorLock sync.Mutex @@ -194,20 +172,6 @@ func updateSerialPortList() { serialPorts.Mu.Unlock() } -func updateNetworkPortList() { - ports, err := enumerateNetworkPorts() - if err != nil { - // TODO: report error? - - // Empty port list if they can not be detected - ports = []OsSerialPort{} - } - list := spListDual(ports) - networkPorts.Mu.Lock() - networkPorts.Ports = list - networkPorts.Mu.Unlock() -} - func spListDual(list []OsSerialPort) []SpPortItem { // we have a full clean list of ports now. iterate thru them // to append the open/close state, baud rates, etc to make @@ -224,7 +188,6 @@ func spListDual(list []OsSerialPort) []SpPortItem { Baud: 0, BufferAlgorithm: "", Ver: version, - NetworkPort: item.NetworkPort, VendorID: item.IDVendor, ProductID: item.IDProduct, } diff --git a/seriallist.go b/seriallist.go index 8e86ec08f..fd1046185 100755 --- a/seriallist.go +++ b/seriallist.go @@ -35,7 +35,6 @@ type OsSerialPort struct { IDProduct string IDVendor string ISerial string - NetworkPort bool } // enumerateSerialPorts will return the OS serial port diff --git a/serialport.go b/serialport.go index 41e2c1819..104311faf 100755 --- a/serialport.go +++ b/serialport.go @@ -233,7 +233,7 @@ func (p *serport) writerNoBuf() { h.broadcastSys <- []byte(msgstr) p.portIo.Close() updateSerialPortList() - spList(false) + spList() } // this method runs as its own thread because it's instantiated @@ -328,7 +328,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { defer func() { sh.unregister <- p }() updateSerialPortList() - spList(false) + spList() // this is internally buffered thread to not send to serial port if blocked go p.writerBuffered() @@ -340,7 +340,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { p.reader(buftype) updateSerialPortList() - spList(false) + spList() } func spHandlerClose(p *serport) { @@ -353,5 +353,5 @@ func spCloseReal(p *serport) { p.bufferwatcher.Close() p.portIo.Close() updateSerialPortList() - spList(false) + spList() } diff --git a/tests/test_ws.py b/tests/test_ws.py index 109f899be..c2623da56 100644 --- a/tests/test_ws.py +++ b/tests/test_ws.py @@ -33,7 +33,6 @@ def test_list(socketio, message): print (message) assert any("list" in i for i in message) assert any("Ports" in i for i in message) - assert any("Network" in i for i in message) # NOTE run the following tests with a board connected to the PC diff --git a/upload/README.md b/upload/README.md index a958e9352..57717cdf0 100644 --- a/upload/README.md +++ b/upload/README.md @@ -1,12 +1,10 @@ -use 'godoc cmd/github.com/arduino/arduino-create-agent/upload' for documentation on the github.com/arduino/arduino-create-agent/upload command - Package upload ===================== import "github.com/arduino/arduino-create-agent/upload" Package upload allows to upload sketches into a board connected to the -computer It can do it via serial port or via network +computer It can do it via serial port **Usage for a serial upload** @@ -19,17 +17,6 @@ err := upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, nil) note that the commandline contains the path of the sketch (sketch.hex) -**Usage for a network upload** - -Make sure that you have a compiled sketch somewhere on your disk - -```go - err := upload.Network("127.0.10.120", "arduino:avr:yun, "./sketch.hex", "", upload.Auth{}, nil) -``` - -The commandline can be empty or it can contain instructions (depends on the -board) - **Resolving commandlines** If you happen to have an unresolved commandline (full of {} parameters) you can @@ -73,13 +60,6 @@ func Kill() Kill stops any upload process as soon as possible -```go -func Network(port, board, file, commandline string, auth Auth, l Logger) error -``` - -Network performs a network upload - - ```go func Resolve(port, board, file, commandline string, extra Extra, t Locater) (string, error) ``` @@ -98,21 +78,11 @@ Types ----- -```go -type Auth struct { - Username string `json:"username"` - Password string `json:"password"` -} -``` -Auth contains username and password used for a network upload - - ```go type Extra struct { Use1200bpsTouch bool `json:"use_1200bps_touch"` WaitForUploadPort bool `json:"wait_for_upload_port"` Network bool `json:"network"` - Auth Auth `json:"auth"` } ``` Extra contains some options used during the upload @@ -133,5 +103,3 @@ type Logger interface { } ``` Logger is an interface implemented by most loggers (like logrus) - - diff --git a/upload/doc.go b/upload/doc.go deleted file mode 100644 index 0cf02682d..000000000 --- a/upload/doc.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -// Package upload allows to upload sketches into a board connected to the computer -// It can do it via serial port or via network -// -// **Usage for a serial upload** -// -// Make sure that you have a compiled sketch somewhere on your disk -// -// ```go -// commandline = ``"/usr/bin/avrdude" "-C/usr/bin/avrdude.conf" -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:./sketch.hex:i"`` -// err := upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, nil) -// ``` -// -// note that the commandline contains the path of the sketch (sketch.hex) -// -// **Usage for a network upload** -// -// Make sure that you have a compiled sketch somewhere on your disk -// -// ```go -// err := upload.Network("127.0.10.120", "arduino:avr:yun, "./sketch.hex", "", upload.Auth{}, nil) -// ``` -// -// The commandline can be empty or it can contain instructions (depends on the board) -// -// **Resolving commandlines** -// -// If you happen to have an unresolved commandline (full of {} parameters) you can resolve it -// -// ```go -// t := tools.Tools{} -// commandline = upload.Resolve("/dev/ttyACM0", "arduino:avr:leonardo", "./sketch.hex", commandline, upload.Extra{}, t) -// ``` -// -// 't' must implement the locater interface (the Tools package does!) -// -// **Logging** -// If you're interested in the output of the commands, you can implement the logger interface. Here's an example: -// -// ```go -// logger := logrus.New() -// logger.Level = logrus.DebugLevel -// upload.Serial("/dev/ttyACM0", commandline, upload.Extra{}, logger) -// ``` -package upload diff --git a/upload/upload.go b/upload/upload.go index 44d138aa3..0a3b0bace 100644 --- a/upload/upload.go +++ b/upload/upload.go @@ -17,46 +17,27 @@ package upload import ( "bufio" - "bytes" - "fmt" - "io" - "log" - "mime/multipart" - "net/http" - "os" "os/exec" "path/filepath" "regexp" "runtime" - "strconv" "strings" "github.com/arduino/arduino-cli/arduino/serialutils" "github.com/arduino/arduino-create-agent/utilities" shellwords "github.com/mattn/go-shellwords" "github.com/pkg/errors" - "github.com/sfreiberg/simplessh" "go.bug.st/serial/enumerator" ) // Busy tells wether the programmer is doing something var Busy = false -// Auth contains username and password used for a network upload -type Auth struct { - Username string `json:"username"` - Password string `json:"password"` - PrivateKey string `json:"private_key"` - Port int `json:"port"` -} - // Extra contains some options used during the upload type Extra struct { Use1200bpsTouch bool `json:"use_1200bps_touch"` WaitForUploadPort bool `json:"wait_for_upload_port"` Network bool `json:"network"` - Auth Auth `json:"auth"` - SSH bool `json:"ssh,omitempty"` } // PartiallyResolve replaces some symbols in the commandline with the appropriate values @@ -64,7 +45,6 @@ type Extra struct { func PartiallyResolve(board, file, platformPath, commandline string, extra Extra, t Locater) (string, error) { commandline = strings.Replace(commandline, "{build.path}", filepath.ToSlash(filepath.Dir(file)), -1) commandline = strings.Replace(commandline, "{build.project_name}", strings.TrimSuffix(filepath.Base(file), filepath.Ext(filepath.Base(file))), -1) - commandline = strings.Replace(commandline, "{network.password}", extra.Auth.Password, -1) commandline = strings.Replace(commandline, "{runtime.platform.path}", filepath.ToSlash(platformPath), -1) // search for runtime variables and replace with values from Locater @@ -99,31 +79,6 @@ func fixupPort(port, commandline string) string { return commandline } -// Network performs a network upload -func Network(port, board string, files []string, commandline string, auth Auth, l Logger, SSH bool) error { - Busy = true - - // Defaults - if auth.Username == "" { - auth.Username = "root" - } - if auth.Password == "" { - auth.Password = "arduino" - } - - commandline = fixupPort(port, commandline) - - // try with ssh - err := ssh(port, files, commandline, auth, l, SSH) - if err != nil && !SSH { - // fallback on form - err = form(port, board, files[0], auth, l) - } - - Busy = false - return err -} - // Serial performs a serial upload func Serial(port, commandline string, extra Extra, l Logger) error { Busy = true @@ -242,161 +197,3 @@ func program(binary string, args []string, l Logger) error { } return nil } - -func form(port, board, file string, auth Auth, l Logger) error { - // Prepare a form that you will submit to that URL. - _url := "http://" + port + "/data/upload_sketch_silent" - var b bytes.Buffer - w := multipart.NewWriter(&b) - - // Add your image file - file = strings.Trim(file, "\n") - f, err := os.Open(file) - if err != nil { - return errors.Wrapf(err, "Open file %s", file) - } - fw, err := w.CreateFormFile("sketch_hex", file) - if err != nil { - return errors.Wrapf(err, "Create form file") - } - if _, err = io.Copy(fw, f); err != nil { - return errors.Wrapf(err, "Copy form file") - } - - // Add the other fields - board = strings.Replace(board, ":", "_", -1) - if fw, err = w.CreateFormField("board"); err != nil { - return errors.Wrapf(err, "Create board field") - } - if _, err = fw.Write([]byte(board)); err != nil { - return errors.Wrapf(err, "") - } - - // Don't forget to close the multipart writer. - // If you don't close it, your request will be missing the terminating boundary. - w.Close() - - // Now that you have a form, you can submit it to your handler. - req, err := http.NewRequest("POST", _url, &b) - if err != nil { - return errors.Wrapf(err, "Create POST req") - } - - // Don't forget to set the content type, this will contain the boundary. - req.Header.Set("Content-Type", w.FormDataContentType()) - if auth.Username != "" { - req.SetBasicAuth(auth.Username, auth.Password) - } - - info(l, "Network upload on ", port) - - // Submit the request - client := &http.Client{} - res, err := client.Do(req) - if err != nil { - log.Println("Error during post request") - return errors.Wrapf(err, "") - } - - // Check the response - if res.StatusCode != http.StatusOK { - body, _ := io.ReadAll(res.Body) - return errors.New("Request error:" + string(body)) - } - return nil -} - -func ssh(port string, files []string, commandline string, auth Auth, l Logger, SSH bool) error { - debug(l, "Connect via ssh ", files, commandline) - - if auth.Port == 0 { - auth.Port = 22 - } - - // Connect via ssh - var client *simplessh.Client - var err error - if auth.PrivateKey != "" { - client, err = simplessh.ConnectWithKeyFile(port+":"+strconv.Itoa(auth.Port), auth.Username, auth.PrivateKey) - } else { - client, err = simplessh.ConnectWithPassword(port+":"+strconv.Itoa(auth.Port), auth.Username, auth.Password) - } - - if err != nil { - return errors.Wrapf(err, "Connect via ssh") - } - defer client.Close() - - // Copy the sketch - for _, file := range files { - fileName := "/tmp/sketch" + filepath.Ext(file) - if SSH { - // don't rename files - fileName = "/tmp/" + filepath.Base(file) - } - err = scp(client, file, fileName) - debug(l, "Copy "+file+" to "+fileName+" ", err) - if err != nil { - return errors.Wrapf(err, "Copy sketch") - } - } - - // very special case for Yun (remove once AVR boards.txt is fixed) - if commandline == "" { - commandline = "merge-sketch-with-bootloader.lua /tmp/sketch.hex && /usr/bin/run-avrdude /tmp/sketch.hex" - } - - // Execute commandline - output, err := client.Exec(commandline) - info(l, string(output)) - debug(l, "Execute commandline ", commandline, string(output), err) - if err != nil { - return errors.Wrapf(err, "Execute commandline") - } - return nil -} - -// scp uploads sourceFile to remote machine like native scp console app. -func scp(client *simplessh.Client, sourceFile, targetFile string) error { - // open ssh session - session, err := client.SSHClient.NewSession() - if err != nil { - return errors.Wrapf(err, "open ssh session") - } - defer session.Close() - - // open file - src, err := os.Open(sourceFile) - if err != nil { - return errors.Wrapf(err, "open file %s", sourceFile) - } - - // stat file - srcStat, err := src.Stat() - if err != nil { - return errors.Wrapf(err, "stat file %s", sourceFile) - } - - // Copy over ssh - go func() { - w, _ := session.StdinPipe() - - fmt.Fprintln(w, "C0644", srcStat.Size(), filepath.Base(targetFile)) - - if srcStat.Size() > 0 { - io.Copy(w, src) - fmt.Fprint(w, "\x00") - w.Close() - } else { - fmt.Fprint(w, "\x00") - w.Close() - } - - }() - - if err := session.Run("scp -t " + targetFile); err != nil { - return errors.Wrapf(err, "Execute %s", "scp -t "+targetFile) - } - - return nil -} diff --git a/upload/upload_test.go b/upload/upload_test.go index ff38fe025..7f5f46418 100644 --- a/upload/upload_test.go +++ b/upload/upload_test.go @@ -56,42 +56,6 @@ func TestSerial(t *testing.T) { } } -var TestNetworkData = []struct { - Name string - Port string - Board string - Files []string - Commandline string - Extra upload.Extra -}{ - { - "yun", - "", - "", - []string{"filename"}, - "", - upload.Extra{ - Use1200bpsTouch: true, - WaitForUploadPort: true, - Network: true, - Auth: upload.Auth{}, - }, - }, -} - -func TestNetwork(t *testing.T) { - logger := logrus.New() - logger.Level = logrus.DebugLevel - - home, _ := homedir.Dir() - - for _, test := range TestNetworkData { - commandline := strings.Replace(test.Commandline, "$HOME", home, -1) - err := upload.Network(test.Port, test.Board, test.Files, commandline, test.Extra.Auth, logger, test.Extra.SSH) - log.Println(err) - } -} - var TestResolveData = []struct { Board string File string From ef2f8d01050ab4e5256d6131ec552e22e0188959 Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Mon, 18 Dec 2023 18:08:52 +0100 Subject: [PATCH 153/233] Add support to private network CORS (#873) --- .../cors.dep.yml} | 17 +++---- .../go-playground/validator/v10.dep.yml | 3 +- .../github.com/pelletier/go-toml/v2.dep.yml | 7 +-- .../go-toml/v2/internal/characters.dep.yml | 13 +++--- .../go-toml/v2/internal/danger.dep.yml | 13 +++--- .../go-toml/v2/internal/tracker.dep.yml | 13 +++--- .../pelletier/go-toml/v2/unstable.dep.yml | 11 ++--- go.mod | 15 ++++--- go.sum | 44 +++++++++++-------- main.go | 21 ++++----- 10 files changed, 83 insertions(+), 74 deletions(-) rename .licenses/arduino-create-agent/go/github.com/{andela/gin-cors.dep.yml => gin-contrib/cors.dep.yml} (74%) diff --git a/.licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml similarity index 74% rename from .licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml rename to .licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml index 61f0068f8..fa909a062 100644 --- a/.licenses/arduino-create-agent/go/github.com/andela/gin-cors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml @@ -1,16 +1,16 @@ --- -name: github.com/andela/gin-cors -version: v0.0.0-20160928171741-e8c3436a37e2 +name: github.com/gin-contrib/cors +version: v1.5.0 type: go -summary: This code implements the flow chart that can be found here. -homepage: https://pkg.go.dev/github.com/andela/gin-cors +summary: +homepage: https://pkg.go.dev/github.com/gin-contrib/cors license: mit licenses: - sources: LICENSE - text: |+ - The MIT License (MIT) + text: | + MIT License - Copyright (c) 2015 Jamie Stackhouse + Copyright (c) 2016 Gin-Gonic Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,4 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -- sources: README.md - text: The code is licensed under the MIT License. See LICENSE file for more details. notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml index 36f540f89..581146f15 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/validator/v10 -version: v10.14.0 +version: v10.15.5 type: go summary: Package validator implements value validations for structs and individual fields based on tags. @@ -35,4 +35,3 @@ licenses: text: Distributed under MIT License, please see license file within the code for more details. notices: [] -... diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml index 43a41d7a6..57fb6f416 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml @@ -1,16 +1,17 @@ --- name: github.com/pelletier/go-toml/v2 -version: v2.0.8 +version: v2.1.0 type: go summary: Package toml is a library to read and write TOML documents. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2 -license: mit +license: other licenses: - sources: LICENSE text: | The MIT License (MIT) - Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + go-toml v2 + Copyright (c) 2021 - 2023 Thomas Pelletier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml index 427db915d..7fa750d2d 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml @@ -1,16 +1,17 @@ --- name: github.com/pelletier/go-toml/v2/internal/characters -version: v2.0.8 +version: v2.1.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters -license: mit +license: other licenses: -- sources: v2@v2.0.8/LICENSE +- sources: v2@v2.1.0/LICENSE text: | The MIT License (MIT) - Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + go-toml v2 + Copyright (c) 2021 - 2023 Thomas Pelletier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.8/README.md +- sources: v2@v2.1.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml index 6a6cb1ac6..efe373edd 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -1,16 +1,17 @@ --- name: github.com/pelletier/go-toml/v2/internal/danger -version: v2.0.8 +version: v2.1.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger -license: mit +license: other licenses: -- sources: v2@v2.0.8/LICENSE +- sources: v2@v2.1.0/LICENSE text: | The MIT License (MIT) - Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + go-toml v2 + Copyright (c) 2021 - 2023 Thomas Pelletier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.8/README.md +- sources: v2@v2.1.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml index fbf14e62b..80f5141e3 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -1,16 +1,17 @@ --- name: github.com/pelletier/go-toml/v2/internal/tracker -version: v2.0.8 +version: v2.1.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker -license: mit +license: other licenses: -- sources: v2@v2.0.8/LICENSE +- sources: v2@v2.1.0/LICENSE text: | The MIT License (MIT) - Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + go-toml v2 + Copyright (c) 2021 - 2023 Thomas Pelletier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -29,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.8/README.md +- sources: v2@v2.1.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml index 78cda2a34..cae3f2e7d 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml @@ -1,17 +1,18 @@ --- name: github.com/pelletier/go-toml/v2/unstable -version: v2.0.8 +version: v2.1.0 type: go summary: Package unstable provides APIs that do not meet the backward compatibility guarantees yet. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable -license: mit +license: other licenses: -- sources: v2@v2.0.8/LICENSE +- sources: v2@v2.1.0/LICENSE text: | The MIT License (MIT) - Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton + go-toml v2 + Copyright (c) 2021 - 2023 Thomas Pelletier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -30,6 +31,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.0.8/README.md +- sources: v2@v2.1.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/go.mod b/go.mod index 1c4c2d33b..7eb65493b 100644 --- a/go.mod +++ b/go.mod @@ -4,12 +4,12 @@ go 1.21 require ( github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c - github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e github.com/arduino/go-paths-helper v1.10.1 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 github.com/getlantern/systray v1.1.0 + github.com/gin-contrib/cors v1.5.0 github.com/gin-gonic/gin v1.9.1 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 @@ -28,8 +28,9 @@ require ( require ( github.com/AnatolyRugalev/goregen v0.1.0 // indirect - github.com/bytedance/sonic v1.9.1 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/bytedance/sonic v1.10.1 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect + github.com/chenzhuoyu/iasm v0.9.0 // indirect github.com/cloudflare/circl v1.3.3 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -45,7 +46,7 @@ require ( github.com/go-chi/chi/v5 v5.0.10 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.14.0 // indirect + github.com/go-playground/validator/v10 v10.15.5 // indirect github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/google/go-cmp v0.5.9 // indirect @@ -57,7 +58,7 @@ require ( github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.15.13 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kr/binarydist v0.1.0 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/leonelquinteros/gotext v1.4.0 // indirect @@ -66,14 +67,14 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - golang.org/x/arch v0.3.0 // indirect + golang.org/x/arch v0.5.0 // indirect golang.org/x/crypto v0.16.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect diff --git a/go.sum b/go.sum index 208702ac4..ced581a21 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,6 @@ github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBW github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2 h1:CEix/eilscZqWgZKpY1VU0VTxOv+jV6NVgJEZ/hMBVs= -github.com/andela/gin-cors v0.0.0-20160928171741-e8c3436a37e2/go.mod h1:qLg54VlozD6sRu86y3SzM1iybe6G2eaoZGKuGdxSsdc= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= github.com/arduino/go-paths-helper v1.10.1 h1:j8InnhLrSeoPiOvTnZL0XMFt7l407ciTBJJJs7W9bs4= @@ -12,11 +10,15 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= -github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= +github.com/bytedance/sonic v1.10.1 h1:7a1wuFXL1cMy7a3f7/VFcEtriuXQnUBhtoVfOZiaysc= +github.com/bytedance/sonic v1.10.1/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= +github.com/chenzhuoyu/iasm v0.9.0 h1:9fhXjVzq5hUy2gkhhgHl95zG2cEAhw9OSGs8toWWAwo= +github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= @@ -44,6 +46,8 @@ github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f h1:wrYrQttPS8FHIRSl github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= github.com/getlantern/systray v1.1.0 h1:U0wCEqseLi2ok1fE6b88gJklzriavPJixZysZPkZd/Y= github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1yWbVabNgpCM= +github.com/gin-contrib/cors v1.5.0 h1:DgGKV7DDoOn36DFkNtbHrjoRiT5ExCe+PC9/xp7aKvk= +github.com/gin-contrib/cors v1.5.0/go.mod h1:TvU7MAZ3EwrPLI2ztzTt3tqgvBCq+wn8WpZmfADjupI= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= @@ -58,8 +62,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= -github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= +github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= @@ -96,11 +100,14 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= -github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -124,16 +131,16 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= @@ -154,7 +161,6 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= @@ -171,8 +177,8 @@ go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.14.0 h1:Ymm6hDyxWFiYclVHcMs1cl7vgSHiYLSIweHE74EusoA= goa.design/goa/v3 v3.14.0/go.mod h1:QYVl5438/92SiqcIzYpIwz10QAocAJeacQu+FO0lTXQ= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= -golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y= +golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= @@ -202,7 +208,6 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -238,8 +243,8 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= @@ -252,4 +257,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/main.go b/main.go index e48272655..0fdf2626c 100755 --- a/main.go +++ b/main.go @@ -29,10 +29,8 @@ import ( "runtime" "runtime/debug" "strconv" - "strings" "time" - cors "github.com/andela/gin-cors" cert "github.com/arduino/arduino-create-agent/certificates" "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/globals" @@ -42,6 +40,7 @@ import ( "github.com/arduino/arduino-create-agent/updater" v2 "github.com/arduino/arduino-create-agent/v2" paths "github.com/arduino/go-paths-helper" + cors "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" "github.com/go-ini/ini" log "github.com/sirupsen/logrus" @@ -373,14 +372,16 @@ func loop() { extraOrigins = append(extraOrigins, "https://127.0.0.1:"+port) } - r.Use(cors.Middleware(cors.Config{ - Origins: *origins + ", " + strings.Join(extraOrigins, ", "), - Methods: "GET, PUT, POST, DELETE", - RequestHeaders: "Origin, Authorization, Content-Type", - ExposedHeaders: "", - MaxAge: 50 * time.Second, - Credentials: true, - ValidateHeaders: false, + allowOrigings := []string{*origins} + allowOrigings = append(allowOrigings, extraOrigins...) + r.Use(cors.New(cors.Config{ + AllowOrigins: allowOrigings, + AllowMethods: []string{"PUT", "GET", "POST", "DELETE"}, + AllowHeaders: []string{"Origin", "Authorization", "Content-Type"}, + ExposeHeaders: []string{}, + AllowCredentials: true, + MaxAge: 50 * time.Second, + AllowPrivateNetwork: true, })) r.LoadHTMLFiles("templates/nofirefox.html") From c217c2ecf9d2ce234a0c293626ef7cd5c9cd6752 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 09:44:07 +0100 Subject: [PATCH 154/233] Bump golang.org/x/sys from 0.15.0 to 0.16.0 (#883) * Bump golang.org/x/sys from 0.15.0 to 0.16.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.15.0 to 0.16.0. - [Commits](https://github.com/golang/sys/compare/v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 86b3e4620..e04edef84 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.15.0 +version: v0.16.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.15.0/LICENSE +- sources: sys@v0.16.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.15.0/PATENTS +- sources: sys@v0.16.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 7eb65493b..0eeca2973 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.14.0 - golang.org/x/sys v0.15.0 + golang.org/x/sys v0.16.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index ced581a21..245cc6985 100644 --- a/go.sum +++ b/go.sum @@ -214,8 +214,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= From 5fde013934c9602730561d7cf97a2bc98b07f9bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 09:50:25 +0100 Subject: [PATCH 155/233] Bump github.com/arduino/go-paths-helper from 1.10.1 to 1.12.0 (#888) * Bump github.com/arduino/go-paths-helper from 1.10.1 to 1.12.0 Bumps [github.com/arduino/go-paths-helper](https://github.com/arduino/go-paths-helper) from 1.10.1 to 1.12.0. - [Release notes](https://github.com/arduino/go-paths-helper/releases) - [Commits](https://github.com/arduino/go-paths-helper/compare/v1.10.1...v1.12.0) --- updated-dependencies: - dependency-name: github.com/arduino/go-paths-helper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/arduino/go-paths-helper.dep.yml | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml index 192c642a6..1de189b7f 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/go-paths-helper -version: v1.10.1 +version: v1.12.0 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper diff --git a/go.mod b/go.mod index 0eeca2973..12e2b3d59 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e - github.com/arduino/go-paths-helper v1.10.1 + github.com/arduino/go-paths-helper v1.12.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 github.com/getlantern/systray v1.1.0 diff --git a/go.sum b/go.sum index 245cc6985..fdd28b25e 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= -github.com/arduino/go-paths-helper v1.10.1 h1:j8InnhLrSeoPiOvTnZL0XMFt7l407ciTBJJJs7W9bs4= -github.com/arduino/go-paths-helper v1.10.1/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= +github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= +github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= From eb2a6912490ae19be37d83ee311e7580e269d941 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:29:23 +0100 Subject: [PATCH 156/233] Bump github.com/ProtonMail/go-crypto from 0.0.0-20230923063757-afb1ddc0824c to 1.1.0-alpha.0 (#890) * Bump github.com/ProtonMail/go-crypto Bumps [github.com/ProtonMail/go-crypto](https://github.com/ProtonMail/go-crypto) from 0.0.0-20230923063757-afb1ddc0824c to 1.1.0-alpha.0. - [Release notes](https://github.com/ProtonMail/go-crypto/releases) - [Commits](https://github.com/ProtonMail/go-crypto/commits/v1.1.0-alpha.0) --- updated-dependencies: - dependency-name: github.com/ProtonMail/go-crypto dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * update licenses * update licensed file with the new licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .licensed.yml | 4 ++ .../ProtonMail/go-crypto/bitcurves.dep.yml | 6 +- .../ProtonMail/go-crypto/brainpool.dep.yml | 6 +- .../ProtonMail/go-crypto/eax.dep.yml | 6 +- .../go-crypto/internal/byteutil.dep.yml | 6 +- .../ProtonMail/go-crypto/ocb.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp.dep.yml | 6 +- .../go-crypto/openpgp/aes/keywrap.dep.yml | 6 +- .../go-crypto/openpgp/armor.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp/ecdh.dep.yml | 6 +- .../go-crypto/openpgp/ecdsa.dep.yml | 6 +- .../go-crypto/openpgp/ed25519.dep.yml | 63 +++++++++++++++++++ .../go-crypto/openpgp/ed448.dep.yml | 63 +++++++++++++++++++ .../go-crypto/openpgp/eddsa.dep.yml | 6 +- .../go-crypto/openpgp/elgamal.dep.yml | 6 +- .../go-crypto/openpgp/errors.dep.yml | 6 +- .../openpgp/internal/algorithm.dep.yml | 6 +- .../go-crypto/openpgp/internal/ecc.dep.yml | 6 +- .../openpgp/internal/encoding.dep.yml | 6 +- .../go-crypto/openpgp/packet.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp/s2k.dep.yml | 6 +- .../go-crypto/openpgp/x25519.dep.yml | 62 ++++++++++++++++++ .../ProtonMail/go-crypto/openpgp/x448.dep.yml | 62 ++++++++++++++++++ .../cloudflare/circl/dh/x25519.dep.yml | 6 +- .../cloudflare/circl/dh/x448.dep.yml | 6 +- .../cloudflare/circl/ecc/goldilocks.dep.yml | 6 +- .../cloudflare/circl/internal/conv.dep.yml | 6 +- .../cloudflare/circl/internal/sha3.dep.yml | 6 +- .../github.com/cloudflare/circl/math.dep.yml | 6 +- .../cloudflare/circl/math/fp25519.dep.yml | 6 +- .../cloudflare/circl/math/fp448.dep.yml | 6 +- .../cloudflare/circl/math/mlsbset.dep.yml | 6 +- .../github.com/cloudflare/circl/sign.dep.yml | 6 +- .../cloudflare/circl/sign/ed25519.dep.yml | 6 +- .../cloudflare/circl/sign/ed448.dep.yml | 6 +- .../go/golang.org/x/crypto/argon2.dep.yml | 6 +- .../go/golang.org/x/crypto/blake2b.dep.yml | 6 +- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +- go.mod | 6 +- go.sum | 49 ++------------- 41 files changed, 365 insertions(+), 148 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml diff --git a/.licensed.yml b/.licensed.yml index 9615eceeb..9cde9f5cf 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -20,6 +20,8 @@ reviewed: - github.com/ProtonMail/go-crypto/openpgp/armor - github.com/ProtonMail/go-crypto/openpgp/ecdh - github.com/ProtonMail/go-crypto/openpgp/ecdsa + - github.com/ProtonMail/go-crypto/openpgp/ed25519 + - github.com/ProtonMail/go-crypto/openpgp/ed448 - github.com/ProtonMail/go-crypto/openpgp/eddsa - github.com/ProtonMail/go-crypto/openpgp/elgamal - github.com/ProtonMail/go-crypto/openpgp/errors @@ -28,6 +30,8 @@ reviewed: - github.com/ProtonMail/go-crypto/openpgp/internal/encoding - github.com/ProtonMail/go-crypto/openpgp/packet - github.com/ProtonMail/go-crypto/openpgp/s2k + - github.com/ProtonMail/go-crypto/openpgp/x25519 + - github.com/ProtonMail/go-crypto/openpgp/x448 - github.com/cloudflare/circl/dh/x25519 - github.com/cloudflare/circl/dh/x448 - github.com/cloudflare/circl/ecc/goldilocks diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml index 0f98a84f9..9ff05f5a5 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/bitcurves -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/bitcurves license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml index 511c258cf..a37d0d26d 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/brainpool -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package brainpool implements Brainpool elliptic curves. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/brainpool license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml index 328cf4b87..f0d43c6a4 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/eax -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: 'Package eax provides an implementation of the EAX (encrypt-authenticate-translate) mode of operation, as described in Bellare, Rogaway, and Wagner "THE EAX MODE OF @@ -9,7 +9,7 @@ summary: 'Package eax provides an implementation of the EAX (encrypt-authenticat homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/eax license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -38,7 +38,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml index 510b54ba0..78102ff1e 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/internal/byteutil -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/internal/byteutil license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml index fbbd053c7..898ffe498 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/ocb -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: 'Package ocb provides an implementation of the OCB (offset codebook) mode of operation, as described in RFC-7253 of the IRTF and in Rogaway, Bellare, Black @@ -9,7 +9,7 @@ summary: 'Package ocb provides an implementation of the OCB (offset codebook) mo homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/ocb license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -38,7 +38,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml index c3d5e0854..09fabf560 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml index c6e958703..930bb2e60 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/aes/keywrap -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package keywrap is an implementation of the RFC 3394 AES key wrapping algorithm. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml index 62bbd00c7..7d2324655 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/armor -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/armor license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml index d61afe402..8c45634fe 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ecdh -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package ecdh implements ECDH encryption, suitable for OpenPGP, as specified in RFC 6637, section 8. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdh license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml index a8c1b87de..d3346dfe2 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ecdsa -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package ecdsa implements ECDSA signature, suitable for OpenPGP, as specified in RFC 6637, section 5. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdsa license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml new file mode 100644 index 000000000..a59bb0e5c --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/ed25519 +version: v1.1.0-alpha.0 +type: go +summary: Package ed25519 implements the ed25519 signature algorithm for OpenPGP as + defined in the Open PGP crypto refresh. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ed25519 +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml new file mode 100644 index 000000000..4733dccd3 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/ed448 +version: v1.1.0-alpha.0 +type: go +summary: Package ed448 implements the ed448 signature algorithm for OpenPGP as defined + in the Open PGP crypto refresh. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ed448 +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml index a9d71bc3e..ae036b97f 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/eddsa -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package eddsa implements EdDSA signature, suitable for OpenPGP, as specified in https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/eddsa license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml index a52334808..a6222424e 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/elgamal -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml index 261542826..ff687c4e1 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/errors -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml index 55ea28cba..e50857d96 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/algorithm -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml index f7f841205..cc6828898 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/ecc -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/ecc license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml index a347ca5ce..5db542f7f 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/encoding -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package encoding implements openpgp packet field encodings as specified in RFC 4880 and 6637. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/encoding license: other licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml index fa50425cb..ac45a2968 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/packet -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml index ae8d1f505..3c2d46e6d 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/s2k -version: v0.0.0-20230923063757-afb1ddc0824c +version: v1.1.0-alpha.0 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1, and Argon2 specified in draft-ietf-openpgp-crypto-refresh-08 @@ -8,7 +8,7 @@ summary: Package s2k implements the various OpenPGP string-to-key transforms as homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/LICENSE +- sources: go-crypto@v1.1.0-alpha.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v0.0.0-20230923063757-afb1ddc0824c/PATENTS +- sources: go-crypto@v1.1.0-alpha.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml new file mode 100644 index 000000000..7c38b0920 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/x25519 +version: v1.1.0-alpha.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/x25519 +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml new file mode 100644 index 000000000..bd8314c86 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/x448 +version: v1.1.0-alpha.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/x448 +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml index 77b9b07f0..9a3efa5ab 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x25519.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/dh/x25519 -version: v1.3.3 +version: v1.3.7 type: go summary: Package x25519 provides Diffie-Hellman functions as specified in RFC-7748. homepage: https://pkg.go.dev/github.com/cloudflare/circl/dh/x25519 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml index 77717903c..89ebbe189 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/dh/x448.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/dh/x448 -version: v1.3.3 +version: v1.3.7 type: go summary: Package x448 provides Diffie-Hellman functions as specified in RFC-7748. homepage: https://pkg.go.dev/github.com/cloudflare/circl/dh/x448 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml index 8a0c15834..e9daa0487 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/ecc/goldilocks.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/cloudflare/circl/ecc/goldilocks -version: v1.3.3 +version: v1.3.7 type: go summary: Package goldilocks provides elliptic curve operations over the goldilocks curve. homepage: https://pkg.go.dev/github.com/cloudflare/circl/ecc/goldilocks license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -66,6 +66,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml index 06a427973..02404fe46 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/conv.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/internal/conv -version: v1.3.3 +version: v1.3.7 type: go summary: homepage: https://pkg.go.dev/github.com/cloudflare/circl/internal/conv license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml index 2c8ed2788..49fa79d68 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/internal/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/cloudflare/circl/internal/sha3 -version: v1.3.3 +version: v1.3.7 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/github.com/cloudflare/circl/internal/sha3 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -66,6 +66,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml index 4eea3a9b5..efdc59bc4 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/math -version: v1.3.3 +version: v1.3.7 type: go summary: Package math provides some utility functions for big integers. homepage: https://pkg.go.dev/github.com/cloudflare/circl/math license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml index c83e3e700..20c3b2393 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp25519.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/math/fp25519 -version: v1.3.3 +version: v1.3.7 type: go summary: Package fp25519 provides prime field arithmetic over GF(2^255-19). homepage: https://pkg.go.dev/github.com/cloudflare/circl/math/fp25519 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml index b88b20cae..b65891c91 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/fp448.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/math/fp448 -version: v1.3.3 +version: v1.3.7 type: go summary: Package fp448 provides prime field arithmetic over GF(2^448-2^224-1). homepage: https://pkg.go.dev/github.com/cloudflare/circl/math/fp448 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml index e3eccd732..c837e724c 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/math/mlsbset.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/math/mlsbset -version: v1.3.3 +version: v1.3.7 type: go summary: Package mlsbset provides a constant-time exponentiation method with precomputation. homepage: https://pkg.go.dev/github.com/cloudflare/circl/math/mlsbset license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml index d1a2b2ddc..5d3285605 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/sign -version: v1.3.3 +version: v1.3.7 type: go summary: Package sign provides unified interfaces for signature schemes. homepage: https://pkg.go.dev/github.com/cloudflare/circl/sign license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml index 00dee3983..8586196a4 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed25519.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/sign/ed25519 -version: v1.3.3 +version: v1.3.7 type: go summary: Package ed25519 implements Ed25519 signature scheme as described in RFC-8032. homepage: https://pkg.go.dev/github.com/cloudflare/circl/sign/ed25519 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml index fbfdd35c6..96cace11d 100644 --- a/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/cloudflare/circl/sign/ed448.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/cloudflare/circl/sign/ed448 -version: v1.3.3 +version: v1.3.7 type: go summary: Package ed448 implements Ed448 signature scheme as described in RFC-8032. homepage: https://pkg.go.dev/github.com/cloudflare/circl/sign/ed448 license: other licenses: -- sources: circl@v1.3.3/LICENSE +- sources: circl@v1.3.7/LICENSE text: | Copyright (c) 2019 Cloudflare. All rights reserved. @@ -65,6 +65,6 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: circl@v1.3.3/README.md +- sources: circl@v1.3.7/README.md text: The project is licensed under the [BSD-3-Clause License](./LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml index ef845bd7f..1133f2e69 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/argon2 -version: v0.16.0 +version: v0.17.0 type: go summary: Package argon2 implements the key derivation function Argon2. homepage: https://pkg.go.dev/golang.org/x/crypto/argon2 license: bsd-3-clause licenses: -- sources: crypto@v0.16.0/LICENSE +- sources: crypto@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.16.0/PATENTS +- sources: crypto@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml index 5c2284eac..1129cc4b9 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/blake2b -version: v0.16.0 +version: v0.17.0 type: go summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb. homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b license: bsd-3-clause licenses: -- sources: crypto@v0.16.0/LICENSE +- sources: crypto@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.16.0/PATENTS +- sources: crypto@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index affca44a5..0c6945b79 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.16.0 +version: v0.17.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.16.0/LICENSE +- sources: crypto@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.16.0/PATENTS +- sources: crypto@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index f42272520..06aad998a 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.16.0 +version: v0.17.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.16.0/LICENSE +- sources: crypto@v0.17.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.16.0/PATENTS +- sources: crypto@v0.17.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 12e2b3d59..c4ead29f2 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/arduino/arduino-create-agent go 1.21 require ( - github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c + github.com/ProtonMail/go-crypto v1.1.0-alpha.0 github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e github.com/arduino/go-paths-helper v1.12.0 github.com/blang/semver v3.5.1+incompatible @@ -31,7 +31,7 @@ require ( github.com/bytedance/sonic v1.10.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.0 // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect @@ -75,7 +75,7 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.5.0 // indirect - golang.org/x/crypto v0.16.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect diff --git a/go.sum b/go.sum index fdd28b25e..8064b7062 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,13 @@ github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBWpuJGYfE= github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= -github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= -github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= +github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= github.com/bytedance/sonic v1.10.1 h1:7a1wuFXL1cMy7a3f7/VFcEtriuXQnUBhtoVfOZiaysc= @@ -19,8 +18,8 @@ github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= github.com/chenzhuoyu/iasm v0.9.0 h1:9fhXjVzq5hUy2gkhhgHl95zG2cEAhw9OSGs8toWWAwo= github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= -github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= -github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= @@ -171,7 +170,6 @@ github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.14.0 h1:Ymm6hDyxWFiYclVHcMs1cl7vgSHiYLSIweHE74EusoA= @@ -180,63 +178,28 @@ golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUu golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y= golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= From c34a1e228244d0e5c815cf42c06f5fa3fcb2285c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:47:14 +0100 Subject: [PATCH 157/233] Bump goa.design/goa/v3 from 3.14.0 to 3.14.6 (#887) * Bump goa.design/goa/v3 from 3.14.0 to 3.14.6 Bumps goa.design/goa/v3 from 3.14.0 to 3.14.6. --- updated-dependencies: - dependency-name: goa.design/goa/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * `goa gen github.com/arduino/arduino-create-agent/design` * update licenses * update licensed file with the new licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .licensed.yml | 2 + .../go/github.com/go-chi/chi/v5.dep.yml | 4 +- .../go/github.com/google/uuid.dep.yml | 2 +- .../go/github.com/gorilla/websocket.dep.yml | 58 +++++++---------- .../go/goa.design/goa/v3/http.dep.yml | 4 +- .../goa.design/goa/v3/http/middleware.dep.yml | 7 ++- .../go/goa.design/goa/v3/middleware.dep.yml | 4 +- .../go/goa.design/goa/v3/pkg.dep.yml | 4 +- .../go/golang.org/x/crypto/argon2.dep.yml | 6 +- .../go/golang.org/x/crypto/blake2b.dep.yml | 6 +- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +- .../go/golang.org/x/net/html.dep.yml | 6 +- .../go/golang.org/x/net/html/atom.dep.yml | 6 +- .../go/golang.org/x/net/http2.dep.yml | 6 +- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +- .../golang.org/x/net/internal/socks.dep.yml | 62 ++++++++++++++++++ .../go/golang.org/x/net/proxy.dep.yml | 63 +++++++++++++++++++ .../protobuf/encoding/protowire.dep.yml | 6 +- .../protobuf/internal/detrand.dep.yml | 6 +- .../internal/encoding/messageset.dep.yml | 6 +- .../protobuf/internal/errors.dep.yml | 6 +- .../protobuf/internal/flags.dep.yml | 6 +- .../protobuf/internal/genid.dep.yml | 6 +- .../protobuf/internal/order.dep.yml | 6 +- .../protobuf/internal/pragma.dep.yml | 6 +- .../protobuf/internal/strs.dep.yml | 6 +- .../google.golang.org/protobuf/proto.dep.yml | 6 +- .../protobuf/reflect/protoreflect.dep.yml | 6 +- .../protobuf/reflect/protoregistry.dep.yml | 6 +- .../protobuf/runtime/protoiface.dep.yml | 6 +- gen/http/cli/arduino_create_agent/cli.go | 2 +- gen/http/openapi.json | 2 +- gen/http/openapi.yaml | 2 +- gen/http/openapi3.json | 2 +- gen/http/openapi3.yaml | 2 +- gen/http/tools/client/cli.go | 2 +- gen/http/tools/client/client.go | 2 +- gen/http/tools/client/encode_decode.go | 2 +- gen/http/tools/client/paths.go | 2 +- gen/http/tools/client/types.go | 2 +- gen/http/tools/server/encode_decode.go | 2 +- gen/http/tools/server/paths.go | 2 +- gen/http/tools/server/server.go | 2 +- gen/http/tools/server/types.go | 2 +- gen/tools/client.go | 2 +- gen/tools/endpoints.go | 2 +- gen/tools/service.go | 8 ++- gen/tools/views/view.go | 2 +- go.mod | 16 ++--- go.sum | 40 ++++++------ 51 files changed, 275 insertions(+), 159 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml create mode 100644 .licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml diff --git a/.licensed.yml b/.licensed.yml index 9cde9f5cf..5b784e9be 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -47,6 +47,8 @@ reviewed: - golang.org/x/crypto/argon2 - golang.org/x/crypto/blake2b - golang.org/x/crypto/sha3 + - golang.org/x/net/internal/socks + - golang.org/x/net/proxy # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies/AGPL-3.0/.licensed.yml allowed: diff --git a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml index 1a7eefb08..57a10174e 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-chi/chi/v5 -version: v5.0.10 +version: v5.0.11 type: go summary: Package chi is a small, idiomatic and composable router for building HTTP services. @@ -35,7 +35,7 @@ licenses: Licensed under [MIT License](./LICENSE) - [GoDoc]: https://pkg.go.dev/github.com/go-chi/chi?tab=versions + [GoDoc]: https://pkg.go.dev/github.com/go-chi/chi/v5 [GoDoc Widget]: https://godoc.org/github.com/go-chi/chi?status.svg [Travis]: https://travis-ci.org/go-chi/chi [Travis Widget]: https://travis-ci.org/go-chi/chi.svg?branch=master diff --git a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml index 2cd468e55..f5f347770 100644 --- a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/google/uuid -version: v1.4.0 +version: v1.5.0 type: go summary: Package uuid generates and inspects UUIDs. homepage: https://pkg.go.dev/github.com/google/uuid diff --git a/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml b/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml index b3abb5163..0d0f4b6bb 100644 --- a/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gorilla/websocket.dep.yml @@ -1,43 +1,29 @@ --- name: github.com/gorilla/websocket -version: v1.5.0 +version: v1.5.1 type: go summary: Package websocket implements the WebSocket protocol defined in RFC 6455. homepage: https://pkg.go.dev/github.com/gorilla/websocket -license: bsd-2-clause +license: bsd-3-clause licenses: - sources: LICENSE - text: | - Copyright (c) 2013 The Gorilla WebSocket Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -notices: -- sources: AUTHORS - text: |- - # This is the official list of Gorilla WebSocket authors for copyright - # purposes. - # - # Please keep the list sorted. - - Gary Burd - Google LLC (https://opensource.google.com/) - Joachim Bauch + text: "Copyright (c) 2023 The Gorilla Authors. All rights reserved.\n\nRedistribution + and use in source and binary forms, with or without\nmodification, are permitted + provided that the following conditions are\nmet:\n\n\t * Redistributions of source + code must retain the above copyright\nnotice, this list of conditions and the + following disclaimer.\n\t * Redistributions in binary form must reproduce the + above\ncopyright notice, this list of conditions and the following disclaimer\nin + the documentation and/or other materials provided with the\ndistribution.\n\t + * Neither the name of Google Inc. nor the names of its\ncontributors may be used + to endorse or promote products derived from\nthis software without specific prior + written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" +notices: [] diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml index ebe5b2854..fb20bfd51 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http -version: v3.14.0 +version: v3.14.6 type: go summary: Package http contains HTTP specific constructs that complement the code generated by Goa. homepage: https://pkg.go.dev/goa.design/goa/v3/http license: mit licenses: -- sources: v3@v3.14.0/LICENSE +- sources: v3@v3.14.6/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml index ab7252241..b7e6310ff 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml @@ -1,13 +1,14 @@ --- name: goa.design/goa/v3/http/middleware -version: v3.14.0 +version: v3.14.6 type: go summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to - provide additional functionality. + provide ancilliary functionality such as capturing HTTP details into the request + context or printing debug information on incoming requests. homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware license: mit licenses: -- sources: v3@v3.14.0/LICENSE +- sources: v3@v3.14.6/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml index 3ffab18f0..4974138e5 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml @@ -1,12 +1,12 @@ --- name: goa.design/goa/v3/middleware -version: v3.14.0 +version: v3.14.6 type: go summary: Package middleware contains transport independent middlewares. homepage: https://pkg.go.dev/goa.design/goa/v3/middleware license: mit licenses: -- sources: v3@v3.14.0/LICENSE +- sources: v3@v3.14.6/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml index 240ad9cf7..7acdbd65d 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml @@ -1,6 +1,6 @@ --- name: goa.design/goa/v3/pkg -version: v3.14.0 +version: v3.14.6 type: go summary: Package goa implements a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client @@ -8,7 +8,7 @@ summary: Package goa implements a Go framework for writing microservices that pr homepage: https://pkg.go.dev/goa.design/goa/v3/pkg license: mit licenses: -- sources: v3@v3.14.0/LICENSE +- sources: v3@v3.14.6/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml index 1133f2e69..8991ec2a4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/argon2 -version: v0.17.0 +version: v0.18.0 type: go summary: Package argon2 implements the key derivation function Argon2. homepage: https://pkg.go.dev/golang.org/x/crypto/argon2 license: bsd-3-clause licenses: -- sources: crypto@v0.17.0/LICENSE +- sources: crypto@v0.18.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.17.0/PATENTS +- sources: crypto@v0.18.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml index 1129cc4b9..aac455e02 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/blake2b -version: v0.17.0 +version: v0.18.0 type: go summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb. homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b license: bsd-3-clause licenses: -- sources: crypto@v0.17.0/LICENSE +- sources: crypto@v0.18.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.17.0/PATENTS +- sources: crypto@v0.18.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index 0c6945b79..bcdeb0258 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.17.0 +version: v0.18.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.17.0/LICENSE +- sources: crypto@v0.18.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.17.0/PATENTS +- sources: crypto@v0.18.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 06aad998a..98e5ee0c4 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.17.0 +version: v0.18.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.17.0/LICENSE +- sources: crypto@v0.18.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.17.0/PATENTS +- sources: crypto@v0.18.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml index a7dd8d6f5..f867c1a98 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/html -version: v0.19.0 +version: v0.20.0 type: go summary: Package html implements an HTML5-compliant tokenizer and parser. homepage: https://pkg.go.dev/golang.org/x/net/html license: other licenses: -- sources: net@v0.19.0/LICENSE +- sources: net@v0.20.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.19.0/PATENTS +- sources: net@v0.20.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml index f7db7df75..51aa31e4d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/net/html/atom -version: v0.19.0 +version: v0.20.0 type: go summary: 'Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and @@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed homepage: https://pkg.go.dev/golang.org/x/net/html/atom license: other licenses: -- sources: net@v0.19.0/LICENSE +- sources: net@v0.20.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.19.0/PATENTS +- sources: net@v0.20.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 7fee7d67c..7337b512f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.19.0 +version: v0.20.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.19.0/LICENSE +- sources: net@v0.20.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.19.0/PATENTS +- sources: net@v0.20.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 95f550308..8ea9ff42a 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.19.0 +version: v0.20.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.19.0/LICENSE +- sources: net@v0.20.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.19.0/PATENTS +- sources: net@v0.20.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml new file mode 100644 index 000000000..a517a2500 --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml @@ -0,0 +1,62 @@ +--- +name: golang.org/x/net/internal/socks +version: v0.20.0 +type: go +summary: Package socks provides a SOCKS version 5 client implementation. +homepage: https://pkg.go.dev/golang.org/x/net/internal/socks +license: other +licenses: +- sources: net@v0.20.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.20.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml new file mode 100644 index 000000000..252e83dda --- /dev/null +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml @@ -0,0 +1,63 @@ +--- +name: golang.org/x/net/proxy +version: v0.20.0 +type: go +summary: Package proxy provides support for a variety of protocols to proxy network + data. +homepage: https://pkg.go.dev/golang.org/x/net/proxy +license: other +licenses: +- sources: net@v0.20.0/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: net@v0.20.0/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index 92450adf2..893bb78df 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/encoding/protowire -version: v1.31.0 +version: v1.32.0 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index 5a3ce24f0..8a8e4027e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/detrand -version: v1.31.0 +version: v1.32.0 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index 894b34a4f..8a167b8a5 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/encoding/messageset -version: v1.31.0 +version: v1.32.0 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index abaf8506d..6aa38301e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/errors -version: v1.31.0 +version: v1.32.0 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index 00b7eb5f6..4b9ed00ff 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/flags -version: v1.31.0 +version: v1.32.0 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index c7cebaba3..6c5e5e9b0 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/genid -version: v1.31.0 +version: v1.32.0 type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml index 7726c9988..82fc654dc 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/order -version: v1.31.0 +version: v1.32.0 type: go summary: Package order provides ordered access to messages and maps. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index 7dac9ae78..a433d6dae 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/pragma -version: v1.31.0 +version: v1.32.0 type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index 4e22c9344..d8737a578 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/strs -version: v1.31.0 +version: v1.32.0 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index a898c7fb7..b62bb6ab0 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/proto -version: v1.31.0 +version: v1.32.0 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 31c905bac..0f835606d 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/reflect/protoreflect -version: v1.31.0 +version: v1.32.0 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index 15277039f..d65478d49 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/reflect/protoregistry -version: v1.31.0 +version: v1.32.0 type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index 873b8907e..1d019473f 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/runtime/protoiface -version: v1.31.0 +version: v1.32.0 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface license: bsd-3-clause licenses: -- sources: protobuf@v1.31.0/LICENSE +- sources: protobuf@v1.32.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.31.0/PATENTS +- sources: protobuf@v1.32.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index 7c107a39a..cc8fa2b3c 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // arduino-create-agent HTTP client CLI support package // diff --git a/gen/http/openapi.json b/gen/http/openapi.json index d392f1816..c0e427331 100644 --- a/gen/http/openapi.json +++ b/gen/http/openapi.json @@ -1 +1 @@ -{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":""},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]},"head":{"tags":["tools"],"summary":"installedhead tools","operationId":"tools#installedhead","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file +{"swagger":"2.0","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"0.0.1"},"host":"localhost:80","basePath":"/v2","consumes":["application/json","plain/text"],"produces":["application/json","application/xml","application/gob"],"paths":{"/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]}},"/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsToolResponseCollection"}}},"schemes":["http"]},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","parameters":[{"name":"InstallRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsInstallRequestBody","required":["name","version","packager"]}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsInstallResponseBody"}}},"schemes":["http"]},"head":{"tags":["tools"],"summary":"installedhead tools","operationId":"tools#installedhead","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"type":"string"},{"name":"name","in":"path","description":"The name of the tool","required":true,"type":"string"},{"name":"version","in":"path","description":"The version of the tool","required":true,"type":"string"},{"name":"RemoveRequestBody","in":"body","required":true,"schema":{"$ref":"#/definitions/ToolsRemoveRequestBody"}}],"responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ToolsRemoveResponseBody"}}},"schemes":["http"]}}},"definitions":{"ToolResponse":{"title":"Mediatype identifier: application/vnd.arduino.tool; view=default","type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches. (default view)","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallRequestBody":{"title":"ToolsInstallRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"ToolsInstallResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"InstallResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsRemoveRequestBody":{"title":"ToolsRemoveRequestBody","type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolsRemoveResponseBody":{"title":"Mediatype identifier: application/vnd.arduino.operation; view=default","type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"description":"RemoveResponseBody result type (default view)","example":{"status":"ok"},"required":["status"]},"ToolsToolResponseCollection":{"title":"Mediatype identifier: application/vnd.arduino.tool; type=collection; view=default","type":"array","items":{"$ref":"#/definitions/ToolResponse"},"description":"AvailableResponseBody is the result type for an array of ToolResponse (default view)","example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}} \ No newline at end of file diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml index 7712e82ff..3e5aeffd0 100644 --- a/gen/http/openapi.yaml +++ b/gen/http/openapi.yaml @@ -2,7 +2,7 @@ swagger: "2.0" info: title: Arduino Create Agent description: "A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them." - version: "" + version: 0.0.1 host: localhost:80 basePath: /v2 consumes: diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json index 11e9b8177..de7209e7a 100644 --- a/gen/http/openapi3.json +++ b/gen/http/openapi3.json @@ -1 +1 @@ -{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"1.0"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"head":{"tags":["tools"],"summary":"installedhead tools","operationId":"tools#installedhead","responses":{"200":{"description":"OK response."}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file +{"openapi":"3.0.3","info":{"title":"Arduino Create Agent","description":"A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them.","version":"0.0.1"},"servers":[{"url":"http://localhost:80","description":"Default server for arduino-create-agent"}],"paths":{"/v2/pkgs/tools/available":{"get":{"tags":["tools"],"summary":"available tools","operationId":"tools#available","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}}},"/v2/pkgs/tools/installed":{"get":{"tags":["tools"],"summary":"installed tools","operationId":"tools#installed","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCollection"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}}}},"head":{"tags":["tools"],"summary":"installedhead tools","operationId":"tools#installedhead","responses":{"200":{"description":"OK response."}}},"post":{"tags":["tools"],"summary":"install tools","operationId":"tools#install","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}},"/v2/pkgs/tools/installed/{packager}/{name}/{version}":{"delete":{"tags":["tools"],"summary":"remove tools","operationId":"tools#remove","parameters":[{"name":"packager","in":"path","description":"The packager of the tool","required":true,"schema":{"type":"string","description":"The packager of the tool","example":"arduino"},"example":"arduino"},{"name":"name","in":"path","description":"The name of the tool","required":true,"schema":{"type":"string","description":"The name of the tool","example":"bossac"},"example":"bossac"},{"name":"version","in":"path","description":"The version of the tool","required":true,"schema":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"},"example":"1.7.0-arduino3"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveRequestBody"},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}}}},"responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operation"},"example":{"status":"ok"}}}}}}}},"components":{"schemas":{"ArduinoTool":{"type":"object","properties":{"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"description":"A tool is an executable program that can upload sketches.","example":{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"InstallRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"name":{"type":"string","description":"The name of the tool","example":"bossac"},"packager":{"type":"string","description":"The packager of the tool","example":"arduino"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"},"version":{"type":"string","description":"The version of the tool","example":"1.7.0-arduino3"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","name":"bossac","packager":"arduino","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz","version":"1.7.0-arduino3"},"required":["name","version","packager"]},"Operation":{"type":"object","properties":{"status":{"type":"string","description":"The status of the operation","example":"ok"}},"example":{"status":"ok"},"required":["status"]},"RemoveRequestBody":{"type":"object","properties":{"checksum":{"type":"string","description":"A checksum of the archive. Mandatory when url is present. \n\tThis ensures that the package is downloaded correcly.","example":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100"},"signature":{"type":"string","description":"The signature used to sign the url. Mandatory when url is present.\n\tThis ensure the security of the file downloaded","example":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0"},"url":{"type":"string","description":"The url where the package can be found. Optional. \n\tIf present checksum must also be present.","example":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"example":{"checksum":"SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100","signature":"382898a97b5a86edd74208f10107d2fecbf7059ffe9cc856e045266fb4db4e98802728a0859cfdcda1c0b9075ec01e42dbea1f430b813530d5a6ae1766dfbba64c3e689b59758062dc2ab2e32b2a3491dc2b9a80b9cda4ae514fbe0ec5af210111b6896976053ab76bac55bcecfcececa68adfa3299e3cde6b7f117b3552a7d80ca419374bb497e3c3f12b640cf5b20875416b45e662fc6150b99b178f8e41d6982b4c0a255925ea39773683f9aa9201dc5768b6fc857c87ff602b6a93452a541b8ec10ca07f166e61a9e9d91f0a6090bd2038ed4427af6251039fb9fe8eb62ec30d7b0f3df38bc9de7204dec478fb86f8eb3f71543710790ee169dce039d3e0","url":"http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz"}},"ToolCollection":{"type":"array","items":{"$ref":"#/components/schemas/ArduinoTool"},"example":[{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"},{"name":"bossac","packager":"arduino","version":"1.7.0-arduino3"}]}}},"tags":[{"name":"tools","description":"The tools service manages the available and installed tools"}]} \ No newline at end of file diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml index d1ad450ef..4759cbca9 100644 --- a/gen/http/openapi3.yaml +++ b/gen/http/openapi3.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: Arduino Create Agent description: "A companion of Arduino Create. \n\tAllows the website to perform operations on the user computer, \n\tsuch as detecting which boards are connected and upload sketches on them." - version: "1.0" + version: 0.0.1 servers: - url: http://localhost:80 description: Default server for arduino-create-agent diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index 8986221db..0ef560d4c 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools HTTP client CLI support package // diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index 11390be82..0ffc2b813 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools client HTTP transport // diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index fd95355fe..8e265b393 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools HTTP client encoders and decoders // diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index d374897f9..0c837aae9 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index d835b22c4..167a7bd68 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools HTTP client types // diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index e127359ef..96030487d 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools HTTP server encoders and decoders // diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index a786f75b6..910488f08 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index 3099937eb..7e8bc3049 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools HTTP server // diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index cd822927f..4f7e6261c 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools HTTP server types // diff --git a/gen/tools/client.go b/gen/tools/client.go index 2a6a4e8c2..358134d19 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools client // diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index 7ef4c1268..9e63ef162 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools endpoints // diff --git a/gen/tools/service.go b/gen/tools/service.go index 7ab2e3b90..c987a5837 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools service // @@ -28,6 +28,12 @@ type Service interface { Remove(context.Context, *ToolPayload) (res *Operation, err error) } +// APIName is the name of the API as defined in the design. +const APIName = "arduino-create-agent" + +// APIVersion is the version of the API as defined in the design. +const APIVersion = "0.0.1" + // ServiceName is the name of the service as defined in the design. This is the // same value that is set in the endpoint request contexts under the ServiceKey // key. diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go index fab0c4136..6e36c9402 100644 --- a/gen/tools/views/view.go +++ b/gen/tools/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.0, DO NOT EDIT. +// Code generated by goa v3.14.6, DO NOT EDIT. // // tools views // diff --git a/go.mod b/go.mod index c4ead29f2..d76a439b9 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 - goa.design/goa/v3 v3.14.0 + goa.design/goa/v3 v3.14.6 golang.org/x/sys v0.16.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -43,16 +43,16 @@ require ( github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-chi/chi/v5 v5.0.10 // indirect + github.com/go-chi/chi/v5 v5.0.11 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.15.5 // indirect github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/google/go-cmp v0.5.9 // indirect - github.com/google/uuid v1.4.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect - github.com/gorilla/websocket v1.5.0 // indirect + github.com/gorilla/websocket v1.5.1 // indirect github.com/h2non/filetype v1.1.3 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect @@ -75,11 +75,11 @@ require ( github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.5.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.16.1 // indirect - google.golang.org/protobuf v1.31.0 // indirect + golang.org/x/tools v0.17.0 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 8064b7062..a1fe2dfb6 100644 --- a/go.sum +++ b/go.sum @@ -51,8 +51,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk= -github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-chi/chi/v5 v5.0.11 h1:BnpYbFZ3T3S1WMpD79r7R5ThWX40TaFB7L31Y8xqSwA= +github.com/go-chi/chi/v5 v5.0.11/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= @@ -67,21 +67,19 @@ github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb/go.mod h1:MBpz1MS3P4HtRcBpQU4HcjvWXZ9q+JWacMEh2/BFYbg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 h1:vKXGRzlhWE9TUVhLqAOcgQbfYvReAnsvQQIcnvWMfcg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49/go.mod h1:ftBGBMhSYToR5oV4ImIPKvAIsNaTkLC+tTvoNafqxlQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= +github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -172,21 +170,21 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6Gj github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= -goa.design/goa/v3 v3.14.0 h1:Ymm6hDyxWFiYclVHcMs1cl7vgSHiYLSIweHE74EusoA= -goa.design/goa/v3 v3.14.0/go.mod h1:QYVl5438/92SiqcIzYpIwz10QAocAJeacQu+FO0lTXQ= +goa.design/goa/v3 v3.14.6 h1:mbu6n9be7puIqhn95zZaccn+k3QVqiR5teLvIrznt5c= +goa.design/goa/v3 v3.14.6/go.mod h1:wcdZ2jy4oC2R93R3kBWKqyDapkVLQbILkOLXcqWMXHY= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y= golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -198,12 +196,10 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= From 3be373a22642deb8e54b5f0f313c32f2220133b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:48:10 +0100 Subject: [PATCH 158/233] Bump github.com/arduino/arduino-cli from 0.0.0-20230630155703-fe6d7499eb5e to 0.35.0 (#882) * Bump github.com/arduino/arduino-cli Bumps [github.com/arduino/arduino-cli](https://github.com/arduino/arduino-cli) from 0.0.0-20230630155703-fe6d7499eb5e to 0.35.0. - [Release notes](https://github.com/arduino/arduino-cli/releases) - [Commits](https://github.com/arduino/arduino-cli/commits/v0.35.0) --- updated-dependencies: - dependency-name: github.com/arduino/arduino-cli dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../arduino-cli/arduino/serialutils.dep.yml | 8 ++-- .../arduino/arduino-cli/i18n.dep.yml | 6 +-- .../go/github.com/juju/errors.dep.yml | 2 +- .../go/github.com/klauspost/compress.dep.yml | 4 +- .../github.com/klauspost/compress/fse.dep.yml | 4 +- .../klauspost/compress/huff0.dep.yml | 4 +- .../compress/internal/cpuinfo.dep.yml | 6 +-- .../compress/internal/snapref.dep.yml | 6 +-- .../klauspost/compress/zstd.dep.yml | 4 +- .../compress/zstd/internal/xxhash.dep.yml | 6 +-- .../go/github.com/mattn/go-isatty.dep.yml | 2 +- .../go/github.com/sirupsen/logrus.dep.yml | 2 +- go.mod | 15 +++--- go.sum | 48 +++++++++---------- 14 files changed, 58 insertions(+), 59 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml index 39129997c..6f6369958 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/arduino/arduino-cli/arduino/serialutils -version: v0.0.0-20230630155703-fe6d7499eb5e +version: v0.35.0 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/arduino/serialutils license: gpl-3.0-only licenses: -- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/LICENSE.txt +- sources: arduino-cli@v0.35.0/LICENSE.txt text: |2 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -682,7 +682,7 @@ licenses: the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . -- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/license_header.tpl +- sources: arduino-cli@v0.35.0/license_header.tpl text: | This file is part of arduino-cli. @@ -698,7 +698,7 @@ licenses: modify or otherwise use the software for commercial activities involving the Arduino software without disclosing the source code of your own applications. To purchase a commercial license, send an email to license@arduino.cc. -- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/README.md +- sources: arduino-cli@v0.35.0/README.md text: |- Arduino CLI is licensed under the [GPL 3.0] license. diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml index 35b9d6853..41a75b12e 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/arduino/arduino-cli/i18n -version: v0.0.0-20230630155703-fe6d7499eb5e +version: v0.35.0 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/i18n license: gpl-3.0-only licenses: -- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/LICENSE.txt +- sources: arduino-cli@v0.35.0/LICENSE.txt text: |2 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -682,7 +682,7 @@ licenses: the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . -- sources: arduino-cli@v0.0.0-20230630155703-fe6d7499eb5e/license_header.tpl +- sources: arduino-cli@v0.35.0/license_header.tpl text: | This file is part of arduino-cli. diff --git a/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml index 96dcdff05..670e3a0bc 100644 --- a/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/juju/errors.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/juju/errors -version: v0.0.0-20200330140219-3fe23663418f +version: v1.0.0 type: go summary: Package errors provides an easy way to annotate errors without losing the original error context. diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml index 5c972ef25..6015c205c 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress.dep.yml @@ -1,8 +1,8 @@ --- name: github.com/klauspost/compress -version: v1.15.13 +version: v1.17.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/klauspost/compress license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml index 0bd54020e..8d885e97e 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/fse.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/klauspost/compress/fse -version: v1.15.13 +version: v1.17.0 type: go summary: Package fse provides Finite State Entropy encoding and decoding. homepage: https://pkg.go.dev/github.com/klauspost/compress/fse license: bsd-3-clause licenses: -- sources: compress@v1.15.13/LICENSE +- sources: compress@v1.17.0/LICENSE text: | Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml index 51b018486..30901b047 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/huff0.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/klauspost/compress/huff0 -version: v1.15.13 +version: v1.17.0 type: go summary: This file contains the specialisation of Decoder.Decompress4X and Decoder.Decompress1X that use an asm implementation of thir main loops. homepage: https://pkg.go.dev/github.com/klauspost/compress/huff0 license: bsd-3-clause licenses: -- sources: compress@v1.15.13/LICENSE +- sources: compress@v1.17.0/LICENSE text: | Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml index d56c203ee..9b6923997 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/cpuinfo.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/klauspost/compress/internal/cpuinfo -version: v1.15.13 +version: v1.17.0 type: go summary: Package cpuinfo gives runtime info about the current CPU. homepage: https://pkg.go.dev/github.com/klauspost/compress/internal/cpuinfo license: bsd-3-clause licenses: -- sources: compress@v1.15.13/LICENSE +- sources: compress@v1.17.0/LICENSE text: | Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. @@ -312,7 +312,7 @@ licenses: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: compress@v1.15.13/README.md +- sources: compress@v1.17.0/README.md text: This code is licensed under the same conditions as the original Go code. See LICENSE file. notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml index 2951f5237..76d6e0025 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/internal/snapref.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/klauspost/compress/internal/snapref -version: v1.15.13 +version: v1.17.0 type: go summary: Package snapref implements the Snappy compression format. homepage: https://pkg.go.dev/github.com/klauspost/compress/internal/snapref @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: compress@v1.15.13/LICENSE +- sources: compress@v1.17.0/LICENSE text: | Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. @@ -341,7 +341,7 @@ licenses: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: compress@v1.15.13/README.md +- sources: compress@v1.17.0/README.md text: This code is licensed under the same conditions as the original Go code. See LICENSE file. notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml index 0bdd51f88..e7dc8db67 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/klauspost/compress/zstd -version: v1.15.13 +version: v1.17.0 type: go summary: Package zstd provides decompression of zstandard files. homepage: https://pkg.go.dev/github.com/klauspost/compress/zstd license: bsd-3-clause licenses: -- sources: compress@v1.15.13/LICENSE +- sources: compress@v1.17.0/LICENSE text: | Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. diff --git a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml index 609d154c7..6fc4c211b 100644 --- a/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/klauspost/compress/zstd/internal/xxhash.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/klauspost/compress/zstd/internal/xxhash -version: v1.15.13 +version: v1.17.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/klauspost/compress/zstd/internal/xxhash license: bsd-3-clause licenses: -- sources: compress@v1.15.13/LICENSE +- sources: compress@v1.17.0/LICENSE text: | Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml index b815d0847..fcf391275 100644 --- a/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-isatty.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/mattn/go-isatty -version: v0.0.19 +version: v0.0.20 type: go summary: Package isatty implements interface to isatty homepage: https://pkg.go.dev/github.com/mattn/go-isatty diff --git a/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml b/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml index 2ee6f96a2..07801f93d 100644 --- a/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/sirupsen/logrus.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/sirupsen/logrus -version: v1.9.0 +version: v1.9.3 type: go summary: Package logrus is a structured logger for Go, completely API compatible with the standard library logger. diff --git a/go.mod b/go.mod index d76a439b9..59b827b38 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/ProtonMail/go-crypto v1.1.0-alpha.0 - github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e + github.com/arduino/arduino-cli v0.35.0 github.com/arduino/go-paths-helper v1.12.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 @@ -16,7 +16,7 @@ require ( github.com/mattn/go-shellwords v1.0.12 github.com/mitchellh/go-homedir v1.1.0 github.com/pkg/errors v0.9.1 - github.com/sirupsen/logrus v1.9.0 + github.com/sirupsen/logrus v1.9.3 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.8.4 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 @@ -33,7 +33,7 @@ require ( github.com/chenzhuoyu/iasm v0.9.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/creack/goselect v0.1.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect @@ -55,20 +55,21 @@ require ( github.com/gorilla/websocket v1.5.1 // indirect github.com/h2non/filetype v1.1.3 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect + github.com/juju/errors v1.0.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/klauspost/compress v1.15.13 // indirect + github.com/klauspost/compress v1.17.0 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kr/binarydist v0.1.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/leonelquinteros/gotext v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect diff --git a/go.sum b/go.sum index a1fe2dfb6..114ff1292 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBW github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e h1:gmlrLhRuuIY/hw9EvvLCUvMDXMFZBtIVW29tMYGchkw= -github.com/arduino/arduino-cli v0.0.0-20230630155703-fe6d7499eb5e/go.mod h1:2E4tNTNWuf4CtG/pF/Y+fRO6JXxVEcbDDStjZYtMK2c= +github.com/arduino/arduino-cli v0.35.0 h1:tkSpGun1hMgJPkvZJjofejWD+ivhCpvsl49H4n81iSc= +github.com/arduino/arduino-cli v0.35.0/go.mod h1:9aoXZdVGQ9uwf2M1nCSB+T051KbldslMFiJaHVycVsg= github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= @@ -24,9 +24,11 @@ github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+ github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= @@ -86,16 +88,12 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/juju/errors v0.0.0-20200330140219-3fe23663418f h1:MCOvExGLpaSIzLYB4iQXEHP4jYVU6vmzLNQPdMVrxnM= -github.com/juju/errors v0.0.0-20200330140219-3fe23663418f/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= -github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 h1:UUHMLvzt/31azWTN/ifGWef4WUqvXk0iRqdhdy/2uzI= -github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= -github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0 h1:+WWUkhnTjV6RNOxkcwk79qrjeyHEHvBzlneueBsatX4= -github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0/go.mod h1:hpGvhGHPVbNBraRLZEhoQwFLMrjK8PSlO4D3nDjKYXo= +github.com/juju/errors v1.0.0 h1:yiq7kjCLll1BiaRuNY53MGI0+EQ3rF6GB+wvboZDefM= +github.com/juju/errors v1.0.0/go.mod h1:B5x9thDqx0wIMH3+aLIMP9HjItInYWObRovoCFM5Qe8= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0= -github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= @@ -103,8 +101,8 @@ github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgSh github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -117,8 +115,8 @@ github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqC github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b/go.mod h1:Bj8LjjP0ReT1eKt5QlKjwgi5AFm5mI6O1A2G4ChI0Ag= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -132,16 +130,19 @@ github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgF github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= @@ -206,12 +207,9 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa h1:drvf2JoUL1fz3ttkGNkw+rf3kZa2//7XkYGpSO4NHNA= gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa/go.mod h1:tuNm0ntQ7IH9VSA39XxzLMpee5c2DwgIbjD4x3ydo8Y= -gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= -gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From d844fbc81f1f17deebee5a0bb796fa7621500b1e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:53:26 +0100 Subject: [PATCH 159/233] Fix origins present in `config.ini` being ignored (#893) * fix origins specified in the config.ini being ignored, and typo * add again wildcard support in origin config option --- main.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 0fdf2626c..20cfca4eb 100755 --- a/main.go +++ b/main.go @@ -29,6 +29,7 @@ import ( "runtime" "runtime/debug" "strconv" + "strings" "time" cert "github.com/arduino/arduino-create-agent/certificates" @@ -372,10 +373,16 @@ func loop() { extraOrigins = append(extraOrigins, "https://127.0.0.1:"+port) } - allowOrigings := []string{*origins} - allowOrigings = append(allowOrigings, extraOrigins...) + allowOrigins := strings.Split(*origins, ",") + // We need to trim possible spaces from the origins, otherwise the CORS middleware + // validation might not work as expected + for i := range allowOrigins { + allowOrigins[i] = strings.TrimSpace(allowOrigins[i]) + } + allowOrigins = append(allowOrigins, extraOrigins...) r.Use(cors.New(cors.Config{ - AllowOrigins: allowOrigings, + AllowWildcard: true, + AllowOrigins: allowOrigins, AllowMethods: []string{"PUT", "GET", "POST", "DELETE"}, AllowHeaders: []string{"Origin", "Authorization", "Content-Type"}, ExposeHeaders: []string{}, From bf62053f516443a9b6985d881fc413ee884bfaf2 Mon Sep 17 00:00:00 2001 From: Alby <30591904+Xayton@users.noreply.github.com> Date: Tue, 30 Jan 2024 14:37:50 +0100 Subject: [PATCH 160/233] Improve the README section about Apple silicon support (#895) The paragraph regarding the Apple silicon support has been rewritten and improved. Clarifying that all processors are supported, not only M1 ones. --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1606465c8..7f7100b5e 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,10 @@ The Arduino Create Agent is a single binary that will sit on the traybar and wor Get the [latest version](https://github.com/arduino/arduino-create-agent/releases) of the Agent for all supported platforms or complete the [Getting Started](https://create.arduino.cc/getting-started/plugin/welcome). -## Apple M1 support +## Apple silicon support -At the moment the new Apple Silicon Macs released in November 2020, like the [MacBook Pro 13"](https://www.apple.com/macbook-pro-13/), [MacBook Air](https://www.apple.com/macbook-air/) and [Mac mini](https://www.apple.com/mac-mini/) models with the [Apple M1](https://www.apple.com/mac/m1/) chip do not have native builds. But the Arduino Agent performs well in [Rosetta 2 mode](https://support.apple.com/en-us/HT211861). +The Arduino Agent is supported both on Intel and Apple silicon computers. This includes devices with the M1, M2 and M3 processors. +At the moment the Arduino Agent is only built for Intel architectures, but Apple silicon devices can run it thanks to the [Rosetta 2](https://support.apple.com/en-us/HT211861) translation layer by Apple. ## Documentation From 6aa81834ef7d0113a1be1d9039fe7b35fa471c8c Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 2 Feb 2024 11:46:32 +0100 Subject: [PATCH 161/233] `agent-version.json` is pushed on downloads bucket now, and minor enhancements (#896) * drop old target, this should not be used anymore * fix typo * bump installbuilder * bump gon * add push to downloads bucket, VERSION_TARGET will be disabled --- .github/workflows/release.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dfb9c1db0..fbdc2a225 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,6 @@ env: # As defined by the Taskfile's PROJECT_NAME variable PROJECT_NAME: arduino-create-agent TARGET: "/CreateAgent/Stable/" - OLD_TARGET: "/CreateBridge/" # compatibility with older releases (we can't change config.ini) VERSION_TARGET: "arduino-create-static/agent-metadata/" AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} @@ -139,7 +138,6 @@ jobs: - name: Upload autoupdate files to Arduino downloads servers run: | aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }} - aws s3 sync public/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.OLD_TARGET }} if: steps.prerelease.outputs.IS_PRE != 'true' - name: Upload artifacts @@ -224,7 +222,7 @@ jobs: notarize-macos: name: Notarize bundle - # for not they are exaclty the same + # for now they are exaclty the same strategy: matrix: arch: [amd64, arm64] @@ -356,7 +354,7 @@ jobs: env: # vars used by installbuilder - INSTALLBUILDER_PATH: "/opt/installbuilder-23.7.0/bin/builder" + INSTALLBUILDER_PATH: "/opt/installbuilder-23.11.0/bin/builder" INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent" # installbuilder will read this vars automatically (defined in installer.xml): INSTALLER_CERT_WINDOWS_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} @@ -385,7 +383,7 @@ jobs: installer-extension: .exe container: - image: floydpink/ubuntu-install-builder:23.7.0 + image: floydpink/ubuntu-install-builder:23.11.0 steps: - name: Checkout @@ -498,7 +496,7 @@ jobs: - name: Install gon for code signing and app notarization run: | - wget -q https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip + wget -q https://github.com/Bearer/gon/releases/download/v0.0.36/gon_macos.zip unzip gon_macos.zip -d /usr/local/bin - name: Write gon config to file @@ -612,5 +610,7 @@ jobs: - name: Update version file (used by frontend to trigger autoupdate and create filename) run: | echo {\"Version\": \"${GITHUB_REF##*/}\"} > /tmp/agent-version.json + # TODO remove this when we will have a new frontend aws s3 cp /tmp/agent-version.json s3://${{ env.VERSION_TARGET }} + aws s3 cp /tmp/agent-version.json s3://${{ secrets.DOWNLOADS_BUCKET }}/agent-metadata/ if: ${{ needs.build.outputs.prerelease != 'true' }} From d2079d1240f14a7ec34d11286ef04cfae6fa634f Mon Sep 17 00:00:00 2001 From: per1234 Date: Sat, 3 Feb 2024 20:50:13 -0800 Subject: [PATCH 162/233] Fix failure to execute tool post-install script on Windows Background ---------- Tool Dependency Installation ---------------------------- "Arduino Create Agent" performs installation and updates of the tool dependencies required for direct communication between the local machine and the target board. It might be necessary to execute some sort of installation process in addition to placing the files from the tool archive on the user's hard drive. This capability is provided by a "post-install script" system. If a post-install script file (`post_install.bat` on Windows, `post_install.sh` other host operating systems) is found in the tool installation, "Arduino Create Agent" automatically executes it as part of the tool installation operation. One of the tool dependencies is `arduino:windows-drivers`, which provides the Windows device drivers for the official Arduino boards. This tool contains a post-install script that installs the drivers from the tool archive. It is essential for this script to be executed as the presence of the driver files alone doesn't have any effect. Go `exec` Package ----------------- From the Go 1.19 release, the behavior of the `exec` package was changed to make it more secure: https://pkg.go.dev/os/exec#hdr-Executables_in_the_current_directory > as of Go 1.19, this package will not resolve a program using an implicit or explicit path entry relative to the > current directory. That is, if you run exec.LookPath("go"), it will not successfully return ./go on Unix nor .\go.exe > on Windows, no matter how the path is configured. Instead, if the usual path algorithms would result in that answer, > these functions return an error err satisfying errors.Is(err, ErrDot). Problem ------- The code that executes the post-install script on Windows depended on the previous behavior of the `exec` package. Ever since the version of Go used to build "Arduino Create Agent" was updated to 1.19, the script has not been executed: ``` { "DownloadStatus": "Error", "Msg": "exec: \"post_install.bat\": cannot run executable found relative to current directory" } ``` This means "Arduino Create Agent" never installed the drivers from the `arduino:windows-drivers` tool on the machines who weren't using it before the 1.3.0 release. The failure to execute the post-install script results in **Arduino Create Agent** attempting installation of the `arduino:windows-drivers` tool on every Arduino Cloud session. Even if the user is not impacted by the lack of drivers (either because it is not required for their board, or because they installed the drivers via some other mechanism), they will still be annoyed and confused by the frequent appearance of the "**Installing drivers**" dialog that is produced by **Arduino Create Agent**'s post-install script execution code. --- tools/download.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/download.go b/tools/download.go index 177ca3f76..360d6e4c3 100644 --- a/tools/download.go +++ b/tools/download.go @@ -223,7 +223,8 @@ func findTool(pack, name, version string, data pkgs.Index) (pkgs.Tool, pkgs.Syst func (t *Tools) installDrivers(location string) error { OkPressed := 6 extension := ".bat" - preamble := "" + // add .\ to force locality + preamble := ".\\" if OS != "windows" { extension = ".sh" // add ./ to force locality From 9f1405e5bd97db150057746f2fe3277643dd7303 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 00:42:15 +0000 Subject: [PATCH 163/233] Bump arduino/setup-task from 1 to 2 Bumps [arduino/setup-task](https://github.com/arduino/setup-task) from 1 to 2. - [Release notes](https://github.com/arduino/setup-task/releases) - [Commits](https://github.com/arduino/setup-task/compare/v1...v2) --- updated-dependencies: - dependency-name: arduino/setup-task dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-go-dependencies-task.yml | 4 ++-- .github/workflows/check-go-task.yml | 8 ++++---- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index a08539a17..1d640ed43 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -84,7 +84,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x @@ -134,7 +134,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 577b44ead..7ea76eb48 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -76,7 +76,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x @@ -113,7 +113,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x @@ -150,7 +150,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x @@ -187,7 +187,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 625b5f700..1d3534818 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -98,7 +98,7 @@ jobs: if: runner.os == 'Linux' - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fbdc2a225..e67691943 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,7 @@ jobs: run: go install github.com/sanbornm/go-selfupdate/...@latest - name: Install Taskfile - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: version: "3.x" repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 635364696..1e55ab11c 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -88,7 +88,7 @@ jobs: run: pip install poetry - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 4e8ec9872..8c6ef80eb 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -86,7 +86,7 @@ jobs: go-version: ${{ env.GO_VERSION }} - name: Install Task - uses: arduino/setup-task@v1 + uses: arduino/setup-task@v2 with: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x From 16f322f73684e153267b5a354c5cf2321ff2efc6 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 9 Feb 2024 15:18:33 +0100 Subject: [PATCH 164/233] replace library used to interact with tray bar (#721) * try to use https://github.com/fyne-io/systray because of https://github.com/getlantern/systray/issues/191#issuecomment-1118329060 * remove useless dep install, no dependency is required with this fork see https://github.com/fyne-io/systray#linuxbsd * update licenses * manually set license * the `_cli` binary is no more required since it correctly starts even on systems without a tray bar with this error: ``` systray error: failed to register our icon with the notifier watcher (maybe no tray is running?): The name org.kde.StatusNotifierWatcher was not provided by any .service files ``` * enable static build (macos still requires it) there are no more dependencies required we can do this https://github.com/fyne-io/systray/issues/24#issuecomment-1196566312 --- .github/workflows/publish-go-tester-task.yml | 10 - .github/workflows/release.yml | 19 +- .../workflows/test-go-integration-task.yml | 4 +- .github/workflows/test-go-task.yml | 5 - .../getlantern => fyne.io}/systray.dep.yml | 6 +- .../systray/internal/generated/menu.dep.yml} | 11 +- .../internal/generated/notifier.dep.yml} | 12 +- .../go/github.com/getlantern/context.dep.yml | 214 ----------------- .../go/github.com/getlantern/hex.dep.yml | 40 ---- .../go/github.com/getlantern/hidden.dep.yml | 214 ----------------- .../go/github.com/getlantern/ops.dep.yml | 214 ----------------- .../go/github.com/go-stack/stack.dep.yml | 33 --- .../go/github.com/godbus/dbus/v5.dep.yml | 42 ++++ .../godbus/dbus/v5/introspect.dep.yml | 43 ++++ .../go/github.com/godbus/dbus/v5/prop.dep.yml | 43 ++++ .../go/github.com/oxtoacart/bpool.dep.yml | 216 ------------------ go.mod | 12 +- go.sum | 24 +- systray/systray_real.go | 6 +- tests/conftest.py | 8 +- 20 files changed, 165 insertions(+), 1011 deletions(-) rename .licenses/arduino-create-agent/go/{github.com/getlantern => fyne.io}/systray.dep.yml (99%) rename .licenses/arduino-create-agent/go/{github.com/getlantern/golog.dep.yml => fyne.io/systray/internal/generated/menu.dep.yml} (97%) rename .licenses/arduino-create-agent/go/{github.com/getlantern/errors.dep.yml => fyne.io/systray/internal/generated/notifier.dep.yml} (97%) delete mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/godbus/dbus/v5.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/introspect.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/prop.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 1d3534818..5ba56a6f3 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -92,11 +92,6 @@ jobs: with: go-version: ${{ env.GO_VERSION }} - # dependencies used for compiling the GUI - - name: Install Dependencies (Linux) - run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev - if: runner.os == 'Linux' - - name: Install Task uses: arduino/setup-task@v2 with: @@ -107,11 +102,6 @@ jobs: run: task go:build if: runner.os == 'Linux' - # build the agent without GUI support (no tray icon) - - name: Build the Agent-cli - run: task go:build-cli - if: runner.os == 'Linux' - # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. - name: Download tool to embed manifest in win binary diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e67691943..969fb5bd8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -43,6 +43,10 @@ jobs: run: shell: bash +# by default disable CGO, it's not needed (except on macos) + env: + CGO_ENABLED: 0 + runs-on: ${{ matrix.os }} steps: @@ -70,11 +74,6 @@ jobs: with: go-version: ${{ env.GO_VERSION }} - # dependencies used for compiling the GUI - - name: Install Dependencies (Linux) - run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev - if: matrix.os == 'ubuntu-20.04' - - name: Install Go deps run: go install github.com/sanbornm/go-selfupdate/...@latest @@ -88,11 +87,6 @@ jobs: run: task go:build if: matrix.os == 'ubuntu-20.04' - # build the agent without GUI support (no tray icon) - - name: Build the Agent-cli - run: task go:build-cli - if: matrix.os == 'ubuntu-20.04' - # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. - name: Download tool to embed manifest in win binary @@ -112,6 +106,7 @@ jobs: - name: Build the Agent for macos env: + CGO_ENABLED: 1 MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac CGO_CFLAGS: -mmacosx-version-min=10.15 CGO_LDFLAGS: -mmacosx-version-min=10.15 @@ -406,10 +401,6 @@ jobs: - name: Rename executable to Arduino_Create_Agent run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Create_Agent${{ matrix.extension }} - - name: Rename executable to Arduino_Create_Agent_cli - run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}_cli${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Create_Agent_cli${{ matrix.extension }} - if: matrix.os == 'ubuntu-20.04' - - name: Save InstallBuilder license to file run: echo "${{ secrets.INSTALLER_LICENSE }}" > /tmp/license.xml diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 1e55ab11c..79766b083 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -93,9 +93,9 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x - # build the agent without GUI support (no tray icon) for integration testing + # build the agent for integration testing - name: Build the Agent-cli - run: task go:build-cli + run: task go:build if: matrix.operating-system != 'windows-latest' - name: Build the Agent-cli for win diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 8c6ef80eb..51925c49e 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -91,11 +91,6 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} version: 3.x - # https://github.com/getlantern/systray#linux - - name: Install Dependencies (Linux) - run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev - if: matrix.operating-system == 'ubuntu-latest' - - name: Run tests env: GO_MODULE_PATH: ${{ matrix.module.path }} diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml b/.licenses/arduino-create-agent/go/fyne.io/systray.dep.yml similarity index 99% rename from .licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml rename to .licenses/arduino-create-agent/go/fyne.io/systray.dep.yml index f08194655..b36391cdd 100644 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/systray.dep.yml +++ b/.licenses/arduino-create-agent/go/fyne.io/systray.dep.yml @@ -1,10 +1,10 @@ --- -name: github.com/getlantern/systray -version: v1.1.0 +name: fyne.io/systray +version: v1.10.0 type: go summary: Package systray is a cross-platform Go library to place an icon and menu in the notification area. -homepage: https://pkg.go.dev/github.com/getlantern/systray +homepage: https://pkg.go.dev/fyne.io/systray license: apache-2.0 licenses: - sources: LICENSE diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml b/.licenses/arduino-create-agent/go/fyne.io/systray/internal/generated/menu.dep.yml similarity index 97% rename from .licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml rename to .licenses/arduino-create-agent/go/fyne.io/systray/internal/generated/menu.dep.yml index 1bb2c2cb9..314410260 100644 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/golog.dep.yml +++ b/.licenses/arduino-create-agent/go/fyne.io/systray/internal/generated/menu.dep.yml @@ -1,13 +1,12 @@ --- -name: github.com/getlantern/golog -version: v0.0.0-20190830074920-4ef2e798c2d7 +name: fyne.io/systray/internal/generated/menu +version: v1.10.0 type: go -summary: Package golog implements logging functions that log errors to stderr and - debug messages to stdout. -homepage: https://pkg.go.dev/github.com/getlantern/golog +summary: Code generated by dbus-codegen-go DO NOT EDIT. +homepage: https://pkg.go.dev/fyne.io/systray/internal/generated/menu license: apache-2.0 licenses: -- sources: LICENSE +- sources: systray@v1.10.0/LICENSE text: |2 Apache License diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml b/.licenses/arduino-create-agent/go/fyne.io/systray/internal/generated/notifier.dep.yml similarity index 97% rename from .licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml rename to .licenses/arduino-create-agent/go/fyne.io/systray/internal/generated/notifier.dep.yml index c17762582..e03d14275 100644 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/fyne.io/systray/internal/generated/notifier.dep.yml @@ -1,12 +1,12 @@ --- -name: github.com/getlantern/errors -version: v0.0.0-20190325191628-abdb3e3e36f7 +name: fyne.io/systray/internal/generated/notifier +version: v1.10.0 type: go -summary: Package errors defines error types used across Lantern project. -homepage: https://pkg.go.dev/github.com/getlantern/errors +summary: Code generated by dbus-codegen-go DO NOT EDIT. +homepage: https://pkg.go.dev/fyne.io/systray/internal/generated/notifier license: apache-2.0 licenses: -- sources: LICENSE +- sources: systray@v1.10.0/LICENSE text: |2 Apache License @@ -197,7 +197,7 @@ licenses: same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2018 Brave New Software Project, Inc. + Copyright 2014 Brave New Software Project, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml deleted file mode 100644 index 7aed5f690..000000000 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/context.dep.yml +++ /dev/null @@ -1,214 +0,0 @@ ---- -name: github.com/getlantern/context -version: v0.0.0-20190109183933-c447772a6520 -type: go -summary: Package context provides a mechanism for transparently tracking contextual - state associated to the current goroutine and even across goroutines. -homepage: https://pkg.go.dev/github.com/getlantern/context -license: apache-2.0 -licenses: -- sources: LICENSE - text: |2 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 Brave New Software Project, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml deleted file mode 100644 index 1e1f285f2..000000000 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/hex.dep.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: github.com/getlantern/hex -version: v0.0.0-20190417191902-c6586a6fe0b7 -type: go -summary: Package hex implements hexadecimal encoding and decoding. -homepage: https://pkg.go.dev/github.com/getlantern/hex -license: bsd-3-clause -licenses: -- sources: LICENSE - text: | - Copyright (c) 2009 The Go Authors. - Copyright (c) 2016 Brave New Software Project, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml deleted file mode 100644 index 24773a4ab..000000000 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/hidden.dep.yml +++ /dev/null @@ -1,214 +0,0 @@ ---- -name: github.com/getlantern/hidden -version: v0.0.0-20190325191715-f02dbb02be55 -type: go -summary: Package hidden provides the ability to "hide" binary data in a string using - a hex encoding with non-printing characters. -homepage: https://pkg.go.dev/github.com/getlantern/hidden -license: apache-2.0 -licenses: -- sources: LICENSE - text: |2 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2016 Brave New Software Project, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml b/.licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml deleted file mode 100644 index d58a3e316..000000000 --- a/.licenses/arduino-create-agent/go/github.com/getlantern/ops.dep.yml +++ /dev/null @@ -1,214 +0,0 @@ ---- -name: github.com/getlantern/ops -version: v0.0.0-20190325191751-d70cb0d6f85f -type: go -summary: Package ops provides a facility for tracking the processing of operations, - including contextual metadata about the operation and their final success or failure. -homepage: https://pkg.go.dev/github.com/getlantern/ops -license: apache-2.0 -licenses: -- sources: LICENSE - text: |2 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2017 Brave New Software Project, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml deleted file mode 100644 index a38bdef55..000000000 --- a/.licenses/arduino-create-agent/go/github.com/go-stack/stack.dep.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: github.com/go-stack/stack -version: v1.8.0 -type: go -summary: Package stack implements utilities to capture, manipulate, and format call - stacks. -homepage: https://pkg.go.dev/github.com/go-stack/stack -license: mit -licenses: -- sources: LICENSE.md - text: | - The MIT License (MIT) - - Copyright (c) 2014 Chris Hines - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5.dep.yml b/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5.dep.yml new file mode 100644 index 000000000..a8ef10a04 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5.dep.yml @@ -0,0 +1,42 @@ +--- +name: github.com/godbus/dbus/v5 +version: v5.0.4 +type: go +summary: Package dbus implements bindings to the D-Bus message bus system. +homepage: https://pkg.go.dev/github.com/godbus/dbus/v5 +license: bsd-2-clause +licenses: +- sources: LICENSE + text: | + Copyright (c) 2013, Georg Reinke (), Google + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: README.markdown + text: |- + go.dbus is available under the Simplified BSD License; see LICENSE for the full + text. + + Nearly all of the credit for this library goes to github.com/guelfey/go.dbus. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/introspect.dep.yml b/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/introspect.dep.yml new file mode 100644 index 000000000..fa1753274 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/introspect.dep.yml @@ -0,0 +1,43 @@ +--- +name: github.com/godbus/dbus/v5/introspect +version: v5.0.4 +type: go +summary: Package introspect provides some utilities for dealing with the DBus introspection + format. +homepage: https://pkg.go.dev/github.com/godbus/dbus/v5/introspect +license: bsd-2-clause +licenses: +- sources: v5@v5.0.4/LICENSE + text: | + Copyright (c) 2013, Georg Reinke (), Google + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: v5@v5.0.4/README.markdown + text: |- + go.dbus is available under the Simplified BSD License; see LICENSE for the full + text. + + Nearly all of the credit for this library goes to github.com/guelfey/go.dbus. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/prop.dep.yml b/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/prop.dep.yml new file mode 100644 index 000000000..99695edeb --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/godbus/dbus/v5/prop.dep.yml @@ -0,0 +1,43 @@ +--- +name: github.com/godbus/dbus/v5/prop +version: v5.0.4 +type: go +summary: Package prop provides the Properties struct which can be used to implement + org.freedesktop.DBus.Properties. +homepage: https://pkg.go.dev/github.com/godbus/dbus/v5/prop +license: bsd-2-clause +licenses: +- sources: v5@v5.0.4/LICENSE + text: | + Copyright (c) 2013, Georg Reinke (), Google + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED + TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: v5@v5.0.4/README.markdown + text: |- + go.dbus is available under the Simplified BSD License; see LICENSE for the full + text. + + Nearly all of the credit for this library goes to github.com/guelfey/go.dbus. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml b/.licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml deleted file mode 100644 index 86b331585..000000000 --- a/.licenses/arduino-create-agent/go/github.com/oxtoacart/bpool.dep.yml +++ /dev/null @@ -1,216 +0,0 @@ ---- -name: github.com/oxtoacart/bpool -version: v0.0.0-20190530202638-03653db5a59c -type: go -summary: Package bpool implements leaky pools of byte arrays and Buffers as bounded - channels. -homepage: https://pkg.go.dev/github.com/oxtoacart/bpool -license: apache-2.0 -licenses: -- sources: LICENSE - text: |2 - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2014 Percy Wegmann - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -- sources: README.md - text: Apache 2.0 Licensed. See the LICENSE file for details. -notices: [] diff --git a/go.mod b/go.mod index 59b827b38..bcd5cdea3 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,12 @@ module github.com/arduino/arduino-create-agent go 1.21 require ( + fyne.io/systray v1.10.0 github.com/ProtonMail/go-crypto v1.1.0-alpha.0 github.com/arduino/arduino-cli v0.35.0 github.com/arduino/go-paths-helper v1.12.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 - github.com/getlantern/systray v1.1.0 github.com/gin-contrib/cors v1.5.0 github.com/gin-gonic/gin v1.9.1 github.com/go-ini/ini v1.62.0 @@ -36,19 +36,13 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect - github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect - github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 // indirect - github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7 // indirect - github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7 // indirect - github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect - github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-chi/chi/v5 v5.0.11 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.15.5 // indirect - github.com/go-stack/stack v1.8.0 // indirect github.com/goccy/go-json v0.10.2 // indirect + github.com/godbus/dbus/v5 v5.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/uuid v1.5.0 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect @@ -67,11 +61,11 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect + github.com/tevino/abool v1.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect diff --git a/go.sum b/go.sum index 114ff1292..8ec8754b0 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,5 @@ +fyne.io/systray v1.10.0 h1:Yr1D9Lxeiw3+vSuZWPlaHC8BMjIHZXJKkek706AfYQk= +fyne.io/systray v1.10.0/go.mod h1:oM2AQqGJ1AMo4nNqZFYU8xYygSBZkW2hmdJ7n4yjedE= github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBWpuJGYfE= github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= @@ -33,20 +35,6 @@ github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZs github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= -github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 h1:NRUJuo3v3WGC/g5YiyF790gut6oQr5f3FBI88Wv0dx4= -github.com/getlantern/context v0.0.0-20190109183933-c447772a6520/go.mod h1:L+mq6/vvYHKjCX2oez0CgEAJmbq1fbb/oNJIWQkBybY= -github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7 h1:6uJ+sZ/e03gkbqZ0kUG6mfKoqDb4XMAzMIwlajq19So= -github.com/getlantern/errors v0.0.0-20190325191628-abdb3e3e36f7/go.mod h1:l+xpFBrCtDLpK9qNjxs+cHU6+BAdlBaxHqikB6Lku3A= -github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7 h1:guBYzEaLz0Vfc/jv0czrr2z7qyzTOGC9hiQ0VC+hKjk= -github.com/getlantern/golog v0.0.0-20190830074920-4ef2e798c2d7/go.mod h1:zx/1xUUeYPy3Pcmet8OSXLbF47l+3y6hIPpyLWoR9oc= -github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7 h1:micT5vkcr9tOVk1FiH8SWKID8ultN44Z+yzd2y/Vyb0= -github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7/go.mod h1:dD3CgOrwlzca8ed61CsZouQS5h5jIzkK9ZWrTcf0s+o= -github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 h1:XYzSdCbkzOC0FDNrgJqGRo8PCMFOBFL9py72DRs7bmc= -github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55/go.mod h1:6mmzY2kW1TOOrVy+r41Za2MxXM+hhqTtY3oBKd2AgFA= -github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f h1:wrYrQttPS8FHIRSlsrcuKazukx/xqO/PpLZzZXsF+EA= -github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA= -github.com/getlantern/systray v1.1.0 h1:U0wCEqseLi2ok1fE6b88gJklzriavPJixZysZPkZd/Y= -github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1yWbVabNgpCM= github.com/gin-contrib/cors v1.5.0 h1:DgGKV7DDoOn36DFkNtbHrjoRiT5ExCe+PC9/xp7aKvk= github.com/gin-contrib/cors v1.5.0/go.mod h1:TvU7MAZ3EwrPLI2ztzTt3tqgvBCq+wn8WpZmfADjupI= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= @@ -65,10 +53,10 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -126,8 +114,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= -github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -161,6 +147,8 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tevino/abool v1.2.0 h1:heAkClL8H6w+mK5md9dzsuohKeXHUpY7Vw0ZCKW+huA= +github.com/tevino/abool v1.2.0/go.mod h1:qc66Pna1RiIsPa7O4Egxxs9OqkuxDX55zznh9K07Tzg= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.6 h1:zoJUBK8kLIUDNJ9LGB04qOQRfoDRoWBBpl0X7pZyi5I= diff --git a/systray/systray_real.go b/systray/systray_real.go index 1c94c7ab1..d1d14f9bc 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -23,14 +23,12 @@ import ( "os" "runtime" - log "github.com/sirupsen/logrus" - + "fyne.io/systray" cert "github.com/arduino/arduino-create-agent/certificates" "github.com/arduino/arduino-create-agent/config" - "github.com/arduino/arduino-create-agent/icon" - "github.com/getlantern/systray" "github.com/go-ini/ini" + log "github.com/sirupsen/logrus" "github.com/skratchdot/open-golang/open" ) diff --git a/tests/conftest.py b/tests/conftest.py index d2c59c7cc..622965b64 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -26,8 +26,10 @@ @pytest.fixture(scope="function") def agent(pytestconfig): - - agent_cli = str(Path(pytestconfig.rootdir) / "arduino-create-agent_cli") + if platform.system() == "Windows": + agent = str(Path(pytestconfig.rootdir) / "arduino-create-agent_cli.exe") + else: + agent = str(Path(pytestconfig.rootdir) / "arduino-create-agent") env = { # "ARDUINO_DATA_DIR": data_dir, # "ARDUINO_DOWNLOADS_DIR": downloads_dir, @@ -39,7 +41,7 @@ def agent(pytestconfig): cd_command = "cd" with run_context.prefix(f'{cd_command} ..'): - runner.run(agent_cli, echo=True, hide=True, warn=True, env=env, asynchronous=True) + runner.run(agent, echo=True, hide=True, warn=True, env=env, asynchronous=True) # we give some time to the agent to start and listen to # incoming requests From 457b29435d6a3fc99aae906a938929d062c66ed4 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:38:46 +0100 Subject: [PATCH 165/233] Allow the user to specify `{fqbn}` parameter in the commandline (#905) * Put upload test under upload package * Allow user to specify fqbn in the commandline using the board parameter * Add test * apply suggestion from code review --- upload/upload.go | 1 + upload/upload_test.go | 61 +++++++++++++++++++++++++++++++++++-------- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/upload/upload.go b/upload/upload.go index 0a3b0bace..6e899c817 100644 --- a/upload/upload.go +++ b/upload/upload.go @@ -46,6 +46,7 @@ func PartiallyResolve(board, file, platformPath, commandline string, extra Extra commandline = strings.Replace(commandline, "{build.path}", filepath.ToSlash(filepath.Dir(file)), -1) commandline = strings.Replace(commandline, "{build.project_name}", strings.TrimSuffix(filepath.Base(file), filepath.Ext(filepath.Base(file))), -1) commandline = strings.Replace(commandline, "{runtime.platform.path}", filepath.ToSlash(platformPath), -1) + commandline = strings.Replace(commandline, "{fqbn}", board, -1) // search for runtime variables and replace with values from Locater var runtimeRe = regexp.MustCompile("\\{(.*?)\\}") diff --git a/upload/upload_test.go b/upload/upload_test.go index 7f5f46418..1e030b602 100644 --- a/upload/upload_test.go +++ b/upload/upload_test.go @@ -13,14 +13,13 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package upload_test +package upload import ( "log" "strings" "testing" - "github.com/arduino/arduino-create-agent/upload" homedir "github.com/mitchellh/go-homedir" "github.com/sirupsen/logrus" ) @@ -36,11 +35,11 @@ var TestSerialData = []struct { Name string Port string Commandline string - Extra upload.Extra + Extra Extra }{ { "leonardo", "/dev/ttyACM0", - `"$HOME/.arduino-create/avrdude/6.3.0-arduino6/bin/avrdude" "-C$HOME/.arduino-create/avrdude/6.3.0-arduino6/etc/avrdude.conf" -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:./upload_test.hex:i"`, upload.Extra{Use1200bpsTouch: true, WaitForUploadPort: true}}, + `"$HOME/.arduino-create/avrdude/6.3.0-arduino6/bin/avrdude" "-C$HOME/.arduino-create/avrdude/6.3.0-arduino6/etc/avrdude.conf" -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:./upload_test.hex:i"`, Extra{Use1200bpsTouch: true, WaitForUploadPort: true}}, } func TestSerial(t *testing.T) { @@ -51,7 +50,7 @@ func TestSerial(t *testing.T) { for _, test := range TestSerialData { commandline := strings.Replace(test.Commandline, "$HOME", home, -1) - err := upload.Serial(test.Port, commandline, test.Extra, logger) + err := Serial(test.Port, commandline, test.Extra, logger) log.Println(err) } } @@ -60,18 +59,58 @@ var TestResolveData = []struct { Board string File string PlatformPath string - Commandline string - Extra upload.Extra + CommandLine string + Extra Extra Result string }{ - {"arduino:avr:leonardo", "./upload_test.hex", "", - `"{runtime.tools.avrdude.path}/bin/avrdude" "-C{runtime.tools.avrdude.path}/etc/avrdude.conf" -v {upload.verify} -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"`, upload.Extra{Use1200bpsTouch: true, WaitForUploadPort: true}, - `"$loc$loc{runtime.tools.avrdude.path}/bin/avrdude" "-C{runtime.tools.avrdude.path}/etc/avrdude.conf" -v $loc{upload.verify} -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:./upload_test.hex:i"`}, + { + Board: "arduino:avr:leonardo", + File: "./upload_test.hex", + PlatformPath: "", + CommandLine: `{runtime.tools.avrdude.path}/bin/avrdude -C{runtime.tools.avrdude.path}/etc/avrdude.conf -v {upload.verify} -patmega32u4 -cavr109 -P{serial.port} -b57600 -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"`, + Extra: Extra{Use1200bpsTouch: true, WaitForUploadPort: true}, + Result: `$loc$loc{runtime.tools.avrdude.path}/bin/avrdude -C{runtime.tools.avrdude.path}/etc/avrdude.conf -v $loc{upload.verify} -patmega32u4 -cavr109 -P$loc{serial.port} -b57600 -D "-Uflash:w:./upload_test.hex:i"`, + }, + { + Board: "arduino:renesas_uno:unor4wifi", + File: "UpdateFirmware.bin", + PlatformPath: "", + CommandLine: `{runtime.tools.arduino-fwuploader.path}/arduino-fwuploader firmware flash -a {serial.port} -b {fqbn} -v --retries 5"`, + Extra: Extra{Use1200bpsTouch: true, WaitForUploadPort: true}, + Result: `$loc{runtime.tools.arduino-fwuploader.path}/arduino-fwuploader firmware flash -a $loc{serial.port} -b arduino:renesas_uno:unor4wifi -v --retries 5"`, + }, } func TestResolve(t *testing.T) { for _, test := range TestResolveData { - result, _ := upload.PartiallyResolve(test.Board, test.File, test.PlatformPath, test.Commandline, test.Extra, mockTools{}) + result, _ := PartiallyResolve(test.Board, test.File, test.PlatformPath, test.CommandLine, test.Extra, mockTools{}) + if result != test.Result { + t.Error("expected " + test.Result + ", got " + result) + continue + } + } +} + +var TestFixupData = []struct { + Port string + CommandLine string + Result string +}{ + { + Port: "/dev/ttyACM0", + CommandLine: `{runtime.tools.avrdude.path}/bin/avrdude -C{runtime.tools.avrdude.path}/etc/avrdude.conf -v {upload.verify} -patmega32u4 -cavr109 -P{serial.port} -b57600 -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"`, + Result: `{runtime.tools.avrdude.path}/bin/avrdude -C{runtime.tools.avrdude.path}/etc/avrdude.conf -v {upload.verify} -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D "-Uflash:w:{build.path}/{build.project_name}.hex:i"`, + }, + { + Port: "/dev/cu.usbmodemDC5475C5557C2", + CommandLine: `{runtime.tools.arduino-fwuploader.path}/arduino-fwuploader firmware flash -a {serial.port} -b arduino:renesas_uno:unor4wifi -v --retries 5"`, + Result: `{runtime.tools.arduino-fwuploader.path}/arduino-fwuploader firmware flash -a /dev/cu.usbmodemDC5475C5557C2 -b arduino:renesas_uno:unor4wifi -v --retries 5"`, + }, +} + +func TestFixupPort(t *testing.T) { + for _, test := range TestFixupData { + result := fixupPort(test.Port, test.CommandLine) if result != test.Result { t.Error("expected " + test.Result + ", got " + result) continue From 4b8a53768adf56771c521653b828c01cf0e60610 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:34:46 +0100 Subject: [PATCH 166/233] [skip-changelog] use OIDC to retrieve the credentials (#901) --- .github/workflows/release.yml | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 969fb5bd8..69f405494 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,8 +10,6 @@ env: PROJECT_NAME: arduino-create-agent TARGET: "/CreateAgent/Stable/" VERSION_TARGET: "arduino-create-static/agent-metadata/" - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: "us-east-1" # or https://github.com/aws/aws-cli/issues/5623 KEYCHAIN: "sign.keychain" KEYCHAIN_PASSWORD: keychainpassword # Arbitrary password for a keychain that exists only for the duration of the job, so not secret @@ -129,6 +127,13 @@ jobs: - name: Create autoupdate files for win32 run: go-selfupdate -platform windows-${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} if: matrix.arch == '386' && matrix.os == 'windows-2019' && steps.prerelease.outputs.IS_PRE != 'true' + + - name: configure aws credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + role-session-name: "github_${{ env.PROJECT_NAME }}" + aws-region: ${{ env.AWS_REGION }} - name: Upload autoupdate files to Arduino downloads servers run: | @@ -316,6 +321,13 @@ jobs: run: | gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}" + - name: configure aws credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + role-session-name: "github_${{ env.PROJECT_NAME }}" + aws-region: ${{ env.AWS_REGION }} + - name: Upload autoupdate bundle to Arduino downloads servers run: aws s3 cp ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}${GITHUB_REF/refs\/tags\//}/ # the version should be created in th the build job if: ${{ needs.build.outputs.prerelease != 'true' }} @@ -523,7 +535,11 @@ jobs: create-release: runs-on: ubuntu-20.04 + environment: production needs: [build, package, generate-sign-dmg] + permission: + contents: write + id-token: write # This is required for requesting the JWT steps: - name: Checkout @@ -594,6 +610,14 @@ jobs: file_glob: true # If set to true, the file argument can be a glob pattern file: release/* + + - name: configure aws credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + role-session-name: "github_${{ env.PROJECT_NAME }}" + aws-region: ${{ env.AWS_REGION }} + - name: Upload release files on Arduino downloads servers run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }} if: ${{ needs.build.outputs.prerelease != 'true' }} From dafef3cafc47b48eb7ab81141ef8ffca8fe90285 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Tue, 27 Feb 2024 16:34:18 +0100 Subject: [PATCH 167/233] [skip-changelog] fix release CI (#906) * followup of #901, fix CI * fix permissions * fix environment * set permissions for the entire workflow * replace create-release deprecated action with the same one used in the cli * do not configure credentials when in pre-release (they are not used) --- .github/workflows/release.yml | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 69f405494..2ae2cf4e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,10 @@ on: tags: - "[0-9]+.[0-9]+.[0-9]+*" +permissions: + contents: write + id-token: write # This is required for requesting the JWT + env: # As defined by the Taskfile's PROJECT_NAME variable PROJECT_NAME: arduino-create-agent @@ -46,6 +50,7 @@ jobs: CGO_ENABLED: 0 runs-on: ${{ matrix.os }} + environment: production steps: - name: Set env vars @@ -134,6 +139,7 @@ jobs: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} role-session-name: "github_${{ env.PROJECT_NAME }}" aws-region: ${{ env.AWS_REGION }} + if: steps.prerelease.outputs.IS_PRE != 'true' - name: Upload autoupdate files to Arduino downloads servers run: | @@ -231,6 +237,7 @@ jobs: env: GON_PATH: ${{ github.workspace }}/gon needs: [build, create-macos-bundle] + environment: production steps: - name: Download artifact @@ -327,6 +334,7 @@ jobs: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} role-session-name: "github_${{ env.PROJECT_NAME }}" aws-region: ${{ env.AWS_REGION }} + if: ${{ needs.build.outputs.prerelease != 'true' }} - name: Upload autoupdate bundle to Arduino downloads servers run: aws s3 cp ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }}${GITHUB_REF/refs\/tags\//}/ # the version should be created in th the build job @@ -537,9 +545,6 @@ jobs: runs-on: ubuntu-20.04 environment: production needs: [build, package, generate-sign-dmg] - permission: - contents: write - id-token: write # This is required for requesting the JWT steps: - name: Checkout @@ -591,25 +596,16 @@ jobs: echo "" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - - name: Create Github Release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create Github Release and upload artifacts + uses: ncipollo/release-action@v1 with: - tag_name: ${{ github.ref }} - release_name: ${{ github.ref }} + token: ${{ secrets.GITHUB_TOKEN }} body: ${{ steps.release_body.outputs.RBODY}} draft: false prerelease: ${{ needs.build.outputs.prerelease }} - - - name: Upload release files on Github - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.ref }} - file_glob: true # If set to true, the file argument can be a glob pattern - file: release/* - + # NOTE: "Artifact is a directory" warnings are expected and don't indicate a problem + # (all the files we need are in the DIST_DIR root) + artifacts: release/* - name: configure aws credentials uses: aws-actions/configure-aws-credentials@v4 @@ -617,6 +613,7 @@ jobs: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} role-session-name: "github_${{ env.PROJECT_NAME }}" aws-region: ${{ env.AWS_REGION }} + if: ${{ needs.build.outputs.prerelease != 'true' }} - name: Upload release files on Arduino downloads servers run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.TARGET }} From 325f7a4699e7f4458a11ca4c8c23a8085155d276 Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Mon, 4 Mar 2024 09:47:12 +0100 Subject: [PATCH 168/233] Remove tests that cannot be run (#909) --- tests/test_update.py | 48 -------------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 tests/test_update.py diff --git a/tests/test_update.py b/tests/test_update.py deleted file mode 100644 index 6655286d6..000000000 --- a/tests/test_update.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright 2022 Arduino SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -# import json -import psutil -import requests -import pytest - -# test if the update process succeeds in terminating the binary -@pytest.mark.skip(reason="no way of currently testing this") -def test_update_shutdown(base_url, agent): - - procs=[] - for p in psutil.process_iter(): - if p.name() == "arduino-create-agent": - procs.append(p) - - resp = requests.post(f"{base_url}/update") - # assert resp.status_code == 200 - # assert "Please wait a moment while the agent reboots itself" in info['success'] # failing on macos see https://github.com/arduino/arduino-create-agent/issues/608 - gone, alive = psutil.wait_procs(procs, timeout=3, callback=on_terminate) # wait for "arduino-create-agent" to terminate - -def on_terminate(proc): - print("process {} terminated with exit code {}".format(proc, proc.returncode)) - assert True - -# the version currently running is the latest available -@pytest.mark.skip(reason="no way of currently testing this") -def test_latest_version(base_url, agent): - resp = requests.get(f"{base_url}/info") - assert resp.status_code == 200 - latest_version = requests.get("https://s3.amazonaws.com/arduino-create-static/agent-metadata/agent-version.json") # get the latest version available - - version = latest_version.json() - info = resp.json() - assert info["version"] == version["Version"] From 0b4a24a69a65e347bd9834af0a987086af0b9a80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 11:38:22 +0100 Subject: [PATCH 169/233] Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#912) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index bcd5cdea3..a142c60fd 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.9.3 github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.14.6 diff --git a/go.sum b/go.sum index 8ec8754b0..9df4e0c7e 100644 --- a/go.sum +++ b/go.sum @@ -145,8 +145,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tevino/abool v1.2.0 h1:heAkClL8H6w+mK5md9dzsuohKeXHUpY7Vw0ZCKW+huA= github.com/tevino/abool v1.2.0/go.mod h1:qc66Pna1RiIsPa7O4Egxxs9OqkuxDX55zznh9K07Tzg= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= From 0e8c05318b39e072b36a5509d55b517ede56bc71 Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Tue, 5 Mar 2024 10:18:21 +0100 Subject: [PATCH 170/233] Add `register.arduino.cc` to the accepted extra origins (#915) --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index 20cfca4eb..9368c61e7 100755 --- a/main.go +++ b/main.go @@ -363,6 +363,7 @@ func loop() { "https://create.arduino.cc", "https://cloud.arduino.cc", "https://app.arduino.cc", + "https://register.arduino.cc", } for i := 8990; i < 9001; i++ { From 135f4258a78c3e352a8d6f18c4208e164eb9fcdf Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Mon, 4 Mar 2024 11:25:33 +0100 Subject: [PATCH 171/233] move Index init after reading the ini config --- main.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 9368c61e7..8b3ba67d3 100755 --- a/main.go +++ b/main.go @@ -177,18 +177,12 @@ func loop() { os.Exit(0) } - // Instantiate Index - Index = index.Init(*indexURL, config.GetDataDir()) - logger := func(msg string) { mapD := map[string]string{"DownloadStatus": "Pending", "Msg": msg} mapB, _ := json.Marshal(mapD) h.broadcastSys <- mapB } - // Instantiate Tools - Tools = *tools.New(config.GetDataDir(), Index, logger) - // Let's handle the config configDir := config.GetDefaultConfigDir() var configPath *paths.Path @@ -251,6 +245,10 @@ func loop() { } } + // Instantiate Index and Tools + Index = index.Init(*indexURL, config.GetDataDir()) + Tools = *tools.New(config.GetDataDir(), Index, logger) + // see if we are supposed to wait 5 seconds if *isLaunchSelf { launchSelfLater() From b350f563ff253d05199dda8e07718518a6cef30d Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Mon, 4 Mar 2024 16:08:56 +0100 Subject: [PATCH 172/233] change default value of `indexURL` to `package_index.json` --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 8b3ba67d3..330a26199 100755 --- a/main.go +++ b/main.go @@ -75,7 +75,7 @@ var ( hostname = iniConf.String("hostname", "unknown-hostname", "Override the hostname we get from the OS") httpProxy = iniConf.String("httpProxy", "", "Proxy server for HTTP requests") httpsProxy = iniConf.String("httpsProxy", "", "Proxy server for HTTPS requests") - indexURL = iniConf.String("indexURL", "https://downloads.arduino.cc/packages/package_staging_index.json", "The address from where to download the index json containing the location of upload tools") + indexURL = iniConf.String("indexURL", "https://downloads.arduino.cc/packages/package_index.json", "The address from where to download the index json containing the location of upload tools") iniConf = flag.NewFlagSet("ini", flag.ContinueOnError) logDump = iniConf.String("log", "off", "off = (default)") origins = iniConf.String("origins", "", "Allowed origin list for CORS") From 236fab6b258ae5df9f889a3029189d5538ca05cb Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 18 Mar 2024 14:55:00 +0100 Subject: [PATCH 173/233] Fix `checksum doesn't match` error (#923) * implement test and replace unused test file * fix the bug: The buffer was not containing the full archive because when red by `extract.Archive(...)` some bytes were skipped because of padding. This was causing the checksum to be different from the expected one --- main_test.go | 2 +- v2/pkgs/testdata/package_index.json | 5910 ------------------------- v2/pkgs/testdata/test_tool_index.json | 576 +++ v2/pkgs/tools.go | 28 +- v2/pkgs/tools_test.go | 70 + 5 files changed, 663 insertions(+), 5923 deletions(-) delete mode 100644 v2/pkgs/testdata/package_index.json create mode 100644 v2/pkgs/testdata/test_tool_index.json diff --git a/main_test.go b/main_test.go index 9dc5faa5c..9abb5d781 100644 --- a/main_test.go +++ b/main_test.go @@ -145,7 +145,7 @@ func TestInstallToolV2(t *testing.T) { tests := []test{ {bossacInstallURLOK, http.StatusOK, "ok"}, {bossacInstallWrongSig, http.StatusInternalServerError, "verification error"}, - {bossacInstallWrongCheck, http.StatusInternalServerError, "checksum doesn't match"}, + {bossacInstallWrongCheck, http.StatusInternalServerError, "checksum of downloaded file doesn't match"}, {bossacInstallNoURL, http.StatusOK, "ok"}, } diff --git a/v2/pkgs/testdata/package_index.json b/v2/pkgs/testdata/package_index.json deleted file mode 100644 index d756ca513..000000000 --- a/v2/pkgs/testdata/package_index.json +++ /dev/null @@ -1,5910 +0,0 @@ -{ - "packages": [ - { - "name": "arduino", - "maintainer": "Arduino", - "websiteURL": "http://www.arduino.cc/", - "email": "packages@arduino.cc", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "platforms": [ - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/avr-1.6.2.tar.bz2", - "archiveFileName": "avr-1.6.2.tar.bz2", - "checksum": "SHA-256:2909a4c6dd6d7497e7e1b5fcaa2f66a100271417510f3a68593b65af8ff78c1c", - "size": "4877442", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino2" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.3", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.3.tar.bz2", - "archiveFileName": "avr-1.6.3.tar.bz2", - "checksum": "SHA-256:c30033ba70cbb2d46ee0901a331b0f83be082f9110eda0464b624fdbb51b3c7b", - "size": "4876816", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino3" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino3" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.4", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.4.tar.bz2", - "archiveFileName": "avr-1.6.4.tar.bz2", - "checksum": "SHA-256:8a243410aeded6dbcbc4b134ba10be5c2562d137bfcf3ac97abdc5844933b363", - "size": "4780884", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.5", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.5.tar.bz2", - "archiveFileName": "avr-1.6.5.tar.bz2", - "checksum": "SHA-256:c72d890aa605add677634c6b25ebc3b2ed9e44c38805b95c47eab17a1ca72db6", - "size": "4876957", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.6", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.6.tar.bz2", - "archiveFileName": "avr-1.6.6.tar.bz2", - "checksum": "SHA-256:08ad5db4978ebea22344edc5d77dce0923d8a644da7a14dc8072e883c76058d8", - "size": "4876916", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.7", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.7.tar.bz2", - "archiveFileName": "avr-1.6.7.tar.bz2", - "checksum": "SHA-256:e112992c59c0d826db9a63967679854a96b3c7b970f788a03834e211f6390caa", - "size": "4904283", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.8", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.8.tar.bz2", - "archiveFileName": "avr-1.6.8.tar.bz2", - "checksum": "SHA-256:0e0775347baf0d93ef344bcd851e7d8d0af2bda7916c119fa3a4ff9b984c575b", - "size": "4885536", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.9", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.9.tar.bz2", - "archiveFileName": "avr-1.6.9.tar.bz2", - "checksum": "SHA-256:eb8bc661162bc689b3ed02c4d24f6ff964e91ace890b7d3db2e316c84ba235f0", - "size": "4890702", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.10", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.10.tar.bz2", - "archiveFileName": "avr-1.6.10.tar.bz2", - "checksum": "SHA-256:92cad999335198f875bdaec5de0169991bee19e0058c623d2cdd0835bb26eeaa", - "size": "4991331", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.11", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.11.tar.bz2", - "archiveFileName": "avr-1.6.11.tar.bz2", - "checksum": "SHA-256:5292d3559de74eb990ff570df43887b44d4e3c6b80ab4ab0f945e94dd68d8210", - "size": "4991634", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.12", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.12.tar.bz2", - "archiveFileName": "avr-1.6.12.tar.bz2", - "checksum": "SHA-256:4a296a3304a51d820e680e2022fb9b9f5706144abf1e5d60c7876a0f9fc7e6d9", - "size": "4993586", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino2" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.13", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.13.tar.bz2", - "archiveFileName": "avr-1.6.13.tar.bz2", - "checksum": "SHA-256:617f458dd3507072b9a6f9fdc78888c66aa420a2fb081c4c1556598a2d69d643", - "size": "4993644", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.14", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.14.tar.bz2", - "archiveFileName": "avr-1.6.14.tar.bz2", - "checksum": "SHA-256:a5f7d66c83e3d4722f4c8dab42bdbcf5af98c611ffca1802ef3d1957b894bd92", - "size": "4993455", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino6" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.15", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.15.tar.bz2", - "archiveFileName": "avr-1.6.15.tar.bz2", - "checksum": "SHA-256:c222efcabbdf6fa63ba3d64afb8d149f83fa73693c413aa05a2ccd9f986ed2fa", - "size": "4993959", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino6" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.16", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.16.tar.bz2", - "archiveFileName": "avr-1.6.16.tar.bz2", - "checksum": "SHA-256:2e2e7a7b8ec321b62c54237e8cb03384fc434f3692c47a524e23e61df868ed9a", - "size": "5011829", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.17", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.17.tar.bz2", - "archiveFileName": "avr-1.6.17.tar.bz2", - "checksum": "SHA-256:ecf63bb02d8f647f720be64b4bf235e0ca37b3180b90d816cbff1886f6744833", - "size": "5011912", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.18", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.18.tar.bz2", - "archiveFileName": "avr-1.6.18.tar.bz2", - "checksum": "SHA-256:7c56e381602b779e8e81ec46deb5c8b82e1c84c134c3c1b672d0b43f5e45ee13", - "size": "4897659", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.19", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.19.tar.bz2", - "archiveFileName": "avr-1.6.19.tar.bz2", - "checksum": "SHA-256:1c544db39f36a8468f585d6338343718c2892526227fa04805339084dd0ab4ff", - "size": "4959420", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.20", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.20.tar.bz2", - "archiveFileName": "avr-1.6.20.tar.bz2", - "checksum": "SHA-256:61f3d59a2ab2e9191230e91e79ee91c05f32b32c33129d34d76ef87e56d257e1", - "size": "4897949", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.21", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.21.tar.bz2", - "archiveFileName": "avr-1.6.21.tar.bz2", - "checksum": "SHA-256:7e5440b0902733f82956c89e554106f25c2ad540ac36286ccba3ceac785bcbba", - "size": "4897460", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino9" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.1.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.22", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.22.tar.bz2", - "archiveFileName": "avr-1.6.22.tar.bz2", - "checksum": "SHA-256:e6399b2a687dd8485cbbfcbfbbd4f8e2e15fe535bbcfd1d81bf93d01e31f7d76", - "size": "4907422", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino AVR Boards", - "architecture": "avr", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/avr-1.6.23.tar.bz2", - "archiveFileName": "avr-1.6.23.tar.bz2", - "checksum": "SHA-256:18618d7f256f26cd77c35f4c888d5d1b2334f07925094fdc99ac3188722284aa", - "size": "5001988", - "boards": [ - {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, - {"name": "Arduino Uno WiFi"}, - {"name": "Arduino Diecimila"}, - {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, - {"name": "Arduino MegaADK"}, - {"name": "Arduino Leonardo"}, - {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, - {"name": "Arduino Esplora"}, - {"name": "Arduino Mini"}, - {"name": "Arduino Ethernet"}, - {"name": "Arduino Fio"}, - {"name": "Arduino BT"}, - {"name": "Arduino LilyPadUSB"}, - {"name": "Arduino Lilypad"}, - {"name": "Arduino Pro"}, - {"name": "Arduino ATMegaNG"}, - {"name": "Arduino Robot Control"}, - {"name": "Arduino Robot Motor"}, - {"name": "Arduino Gemma"}, - {"name": "Adafruit Circuit Playground"}, - {"name": "Arduino Yún Mini"}, - {"name": "Arduino Industrial 101"}, - {"name": "Linino One"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.23.tar.bz2", - "archiveFileName": "megaavr-1.6.23.tar.bz2", - "checksum": "SHA-256:fd19ed3a52f6de289f46c9b5f65e19bc5c3df95358f18693cfaf25bdfb86f43c", - "size": "717681", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino megaAVR Boards", - "architecture": "megaavr", - "version": "1.6.24", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/megaavr-1.6.24.tar.bz2", - "archiveFileName": "megaavr-1.6.24.tar.bz2", - "checksum": "SHA-256:0910af1d6eb44b65fee77c81a7a83ee420e6a7c1622f90754e91a5127d317a1d", - "size": "709516", - "boards": [ - { - "name": "Arduino Uno WiFi Rev2" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino14" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.2.tar.bz2", - "archiveFileName": "sam-1.6.2.tar.bz2", - "checksum": "SHA-256:2d3c8a90bc214947cff1b816d0c2706441398efc78af7984d5250f2e50eddd5f", - "size": "16174730", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.3", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.3.tar.bz2", - "archiveFileName": "sam-1.6.3.tar.bz2", - "checksum": "SHA-256:0a6e1d5542790e38ba454c796aabbd0e48b07635a5b4d8adc044a4eba959ca27", - "size": "16174017", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.4", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.4.tar.bz2", - "archiveFileName": "sam-1.6.4.tar.bz2", - "checksum": "SHA-256:e0dc94d8ad0756b79838e99ad7409b08b07e40ed667ebe86eae11644ef7bec0d", - "size": "16174992", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.3-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.5", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.5.tar.bz2", - "archiveFileName": "sam-1.6.5.tar.bz2", - "checksum": "SHA-256:1bde19e3af3887dbc3afda46754e1136fb5a3bc535b8de9862ad7753d93902b7", - "size": "16529130", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.6", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.6.tar.bz2", - "archiveFileName": "sam-1.6.6.tar.bz2", - "checksum": "SHA-256:7694b698bb24cd87d7d0b2b4caa09dc6039591868e735b0bf385299aea24c3e4", - "size": "16528101", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.7.tar.bz2", - "archiveFileName": "sam-1.6.7.tar.bz2", - "checksum": "SHA-256:62d8bde9bf92502aeeaaf5031ed841e4e4c241fe66fc8cb23625349e6129a1ea", - "size": "16473479", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.8", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.8.tar.bz2", - "archiveFileName": "sam-1.6.8.tar.bz2", - "checksum": "SHA-256:cc95b49b7dfe4138687a559d963db09b9b85352051173d93ad8c272aa23c2337", - "size": "16471779", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.9", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.9.tar.bz2", - "archiveFileName": "sam-1.6.9.tar.bz2", - "checksum": "SHA-256:a5eaf60b5845599c24229456d6f5cd2254a275c8b34cac9d5330e4cfab6b0aa7", - "size": "16473503", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.10", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.10.tar.bz2", - "archiveFileName": "sam-1.6.10.tar.bz2", - "checksum": "SHA-256:c53afc342c4017a4f67b96826ace41653f795f4a82e648eb9a190ad995388906", - "size": "16474738", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", - "archiveFileName": "samd-1.6.0.tar.bz2", - "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", - "size": "177135", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAM Boards (32-bits ARM Cortex-M3)", - "architecture": "sam", - "version": "1.6.11", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/sam-1.6.11.tar.bz2", - "archiveFileName": "sam-1.6.11.tar.bz2", - "checksum": "SHA-256:fb8e275f39622a5574a11cef85be3ed36a6995c38a19b20de6fb48e9c7f88b70", - "size": "16474757", - "boards": [ - {"name": "Arduino Due"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.0.tar.bz2", - "archiveFileName": "samd-1.6.0.tar.bz2", - "checksum": "SHA-256:c1d5118ea1bf03c71203de4eafa90dedf265ceb44c0e3712f5a1eba1b12321b0", - "size": "177135", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.1.tar.bz2", - "archiveFileName": "samd-1.6.1.tar.bz2", - "checksum": "SHA-256:dddd0f906a7c470a1dc7ef5b024e34c24b915020fabb5903b7313246955514a2", - "size": "178354", - "boards": [ - { - "name": "Arduino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.2.tar.bz2", - "archiveFileName": "samd-1.6.2.tar.bz2", - "checksum": "SHA-256:fad804d8fbd2f2b5f0e876708f953b9afd28513d794c6a973825582f1d6bacde", - "size": "179578", - "boards": [ - { - "name": "Arduino/Genuino Zero" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.3", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.3.tar.bz2", - "archiveFileName": "samd-1.6.3.tar.bz2", - "checksum": "SHA-256:f3fb17d593cdf5986c201fe3639d71cc1149b43e996a3afa5533c3b4b0c5a532", - "size": "978163", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.4", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.4.tar.bz2", - "archiveFileName": "samd-1.6.4.tar.bz2", - "checksum": "SHA-256:02c788e0ae786cabf31c5c27b64d60906d4038f56ee2df689022e32525be7b70", - "size": "977481", - "boards": [ - { "name": "Arduino/Genuino Zero" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.5", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.5.tar.bz2", - "archiveFileName": "samd-1.6.5.tar.bz2", - "checksum": "SHA-256:3f3d70b4081b11ab07fc209702604f2ac3a52bb193b7f0d9fa5bb31071b2b34c", - "size": "979548", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.6", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.6.tar.bz2", - "archiveFileName": "samd-1.6.6.tar.bz2", - "checksum": "SHA-256:08e97127acf41ac28c195803be1d22a5cbf720d4cff58db9458af9255d6ee7b3", - "size": "997331", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.6.1-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.7", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.7.tar.bz2", - "archiveFileName": "samd-1.6.7.tar.bz2", - "checksum": "SHA-256:7342d0d127b1facdfbe8801759368bb0e6939b8e9a7db86eefb23135e3c701a8", - "size": "841503", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.8", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.8.tar.bz2", - "archiveFileName": "samd-1.6.8.tar.bz2", - "checksum": "SHA-256:05bff70561e5f10e86d1d890f647614aac989c4b2c384fc1b568e7d8c96b8267", - "size": "841801", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.9", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.9.tar.bz2", - "archiveFileName": "samd-1.6.9.tar.bz2", - "checksum": "SHA-256:404f64575182e3a21fbf38a729d56d50782754c1d0c5bfe17d4c9155dd84d3d2", - "size": "855221", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.10", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.10.tar.bz2", - "archiveFileName": "samd-1.6.10.tar.bz2", - "checksum": "SHA-256:b2b47e12ae032e7929d33b13b42033fca15de7ef0d5ea90dab68ebf65e6b4f6b", - "size": "2765368", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.11", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.11.tar.bz2", - "archiveFileName": "samd-1.6.11.tar.bz2", - "checksum": "SHA-256:3ace3a7850e9052f51b819dbf5c09ea487f8bbbdf3c28d5d4709137b18f12bb7", - "size": "2764312", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0" }, - { "name": "Arduino M0 Pro" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.12", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.12.tar.bz2", - "archiveFileName": "samd-1.6.12.tar.bz2", - "checksum": "SHA-256:18803709c1024c2fb122430949df06ee316d7971552ef81c430cba14be673f24", - "size": "2754767", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruti Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino5-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.13", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.13.tar.bz2", - "archiveFileName": "samd-1.6.13.tar.bz2", - "checksum": "SHA-256:217f4e0f3c5f2c1a0d74d1b78559aa6f598aeae33ad7fd06ec79eb7294552db2", - "size": "2777384", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.14", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.14.tar.bz2", - "archiveFileName": "samd-1.6.14.tar.bz2", - "checksum": "SHA-256:bb5f9c69530906cba51641a94e3e195deafafe9d6673c90eda544535f02bb7bf", - "size": "2746416", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.15", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.15.tar.bz2", - "archiveFileName": "samd-1.6.15.tar.bz2", - "checksum": "SHA-256:938b0528dddb66ebb3564dc0b6d01206498d2a1abea90a269ce59ee9dae2753d", - "size": "2795099", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.16", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.16.tar.bz2", - "archiveFileName": "samd-1.6.16.tar.bz2", - "checksum": "SHA-256:d44e32b07642f6dc5e480068f52966113baa912f3b5fa6d39cfa4112c4a25e53", - "size": "2796651", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZero" }, - { "name": "Arduino MKRFox1200" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.17", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.17.tar.bz2", - "archiveFileName": "samd-1.6.17.tar.bz2", - "checksum": "SHA-256:2c691c23cdf9974526ff33f19b7b060b5c03b7cb4708f61f8eb2629666c3c278", - "size": "2849852", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.18", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.18.tar.bz2", - "archiveFileName": "samd-1.6.18.tar.bz2", - "checksum": "SHA-256:adbc464106abcfb031aeaa8c73ce09340f5aec8805e83bbe6f7a7da974321fa7", - "size": "2808624", - "boards": [ - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.19", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.19.tar.bz2", - "archiveFileName": "samd-1.6.19.tar.bz2", - "checksum": "SHA-256:959c10af4413455edf914ad426e18d7f2fbf0a38ce5e9d44232cc95b3d0a8a02", - "size": "2844050", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.6.20", - "category": "Arduino", - "url": "http://downloads.arduino.cc/cores/samd-1.6.20.tar.bz2", - "archiveFileName": "samd-1.6.20.tar.bz2", - "checksum": "SHA-256:65a07751d858c7096d4ed9e842768530d41f84c30e26baa398c82e6ad92649bf", - "size": "2854887", - "boards": [ - { "name": "Arduino MKR WiFi 1010" }, - { "name": "Arduino/Genuino Zero" }, - { "name": "Arduino/Genuino MKR1000" }, - { "name": "Arduino MKRZERO" }, - { "name": "Arduino MKR FOX 1200" }, - { "name": "Arduino MKR WAN 1300" }, - { "name": "Arduino MKR GSM 1400" }, - { "name": "Arduino MKR NB 1500" }, - { "name": "Arduino M0 Pro" }, - { "name": "Arduino M0" }, - { "name": "Arduino Tian" }, - { "name": "Adafruit Circuit Playground Express" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino6-static" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.1.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.22", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.22.tar.bz2", - "archiveFileName": "samd-beta-1.6.22.tar.bz2", - "checksum": "SHA-256:f9be59deae12889c79900774b6b236da0aa3b8ecc615f91d1cf061b3c63c4531", - "size": "2880064", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.23", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.23.tar.gz", - "archiveFileName": "samd-beta-1.6.23.tar.gz", - "checksum": "SHA-256:5ff9b77ef8044613604d5e915e8e2e69362241b489c1c2bf06f008a5150e1162", - "size": "3634633", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.0" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.24", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.24.tar.bz2", - "archiveFileName": "samd-beta-1.6.24.tar.bz2", - "checksum": "SHA-256:922c42decf1088aaaef473f26b9630ebda63cf2ec4db52a39c3eadef45cb7e4a", - "size": "2885903", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd_beta", - "version": "1.6.25", - "category": "Arduino", - "help": { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "url": "http://downloads.arduino.cc/cores/samd-beta-1.6.25.tar.bz2", - "archiveFileName": "samd-beta-1.6.25.tar.bz2", - "checksum": "SHA-256:95e22b75d2ff1e3a1c9baabad205fbd48964b195390951943035bfbd88286961", - "size": "2890759", - "boards": [ - { - "name": "Arduino MKR Vidor 4000" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "7-2017q4" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.7.0-arduino3" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino7" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.2.0" - }, - { - "packager": "arduino", - "name": "arduinoOTA", - "version": "1.2.1" - } - ] - }, - { - "name": "Arduino STM32F4 Boards", - "architecture": "stm32f4", - "version": "1.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_stm32f4_1.0.0.tar.bz2", - "archiveFileName": "package_arduino_stm32f4_1.0.0.tar.bz2", - "size": "20499005", - "checksum": "SHA-256:79a67167bff45c34a4addf29a4c84904d0dc114c19220bfd204a65e51688b3d1", - "boards": [ - { - "name": "Arduino Star OTTO" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "version": "0.8.0-stm32-arduino1", - "name": "dfu-util" - } - ] - }, - { - "name": "Arduino STM32F4 Boards", - "architecture": "stm32f4", - "version": "1.0.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_stm32f4_1.0.1.tar.bz2", - "archiveFileName": "package_arduino_stm32f4_1.0.1.tar.bz2", - "checksum": "SHA-256:e66dd40f8b9faeb6c7400b48745c023aacb65a6d5c700395edc9dd89d2d150c0", - "size": "20495225", - "boards": [ - { - "name": "Arduino Star OTTO" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "dfu-util", - "version": "0.9.0-arduino1" - }, - { - "packager": "arduino", - "name": "arduinoSTM32load", - "version": "2.0.0" - } - ] - }, - { - "name": "Arduino NRF52 Boards", - "architecture": "nrf52", - "version": "1.0.0", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.0.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.0.tar.bz2", - "checksum": "SHA-256:d95cf5a1a3794512fd428f00f71c1e334d2fcf6e261bb22e4bbaa64143205de6", - "size": "2438905", - "boards": [ - { - "name": "Arduino Primo" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - }, - { - "name": "Arduino nRF52 Boards", - "architecture": "nrf52", - "version": "1.0.1", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.1.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.1.tar.bz2", - "checksum": "SHA-256:f6c5b66a1257188a2e6cab3df8ec373777f62c3abb29f7196d571d221a5c75ff", - "size": "2262233", - "boards": [ - { - "name": "Arduino Primo" - } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - }, - { - "name": "Arduino nRF52 Boards", - "architecture": "nrf52", - "version": "1.0.2", - "category": "Arduino", - "url": "http://downloads.arduino.cc/arduino.org/package_arduino_nrf52_1.0.2.tar.bz2", - "archiveFileName": "package_arduino_nrf52_1.0.2.tar.bz2", - "checksum": "SHA-256:3a96c9476e567b7bca6f0201fcd6a4dbc97bddfbce70bc2d96f5f33a59265163", - "size": "2308695", - "boards": [ - { "name": "Arduino Primo" }, - { "name": "Arduino Primo Core" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.10.0-arduino1-static" - }, - { - "packager": "arduino", - "name": "nrf5x-cl-tools", - "version": "9.3.1" - } - ] - } - ], - "tools": [ - { - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", - "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", - "size": "44423906" - }, - { - "host": "i686-mingw32", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-windows.tar.gz", - "checksum": "SHA-256:fd8c111c861144f932728e00abd3f7d1107e186eb9cd6083a54c7236ea78b7c2", - "size": "84537449" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-mac.tar.gz", - "checksum": "SHA-256:3598acf21600f17a8e4a4e8e193dc422b894dc09384759b270b2ece5facb59c2", - "size": "52518522" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux64.tar.gz", - "checksum": "SHA-256:d23f6626148396d6ec42a5b4d928955a703e0757829195fa71a939e5b86eecf6", - "size": "51395093" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-linux32.tar.gz", - "checksum": "SHA-256:ba1994235f69c526c564f65343f22ddbc9822b2ea8c5ee07dd79d89f6ace2498", - "size": "51029223" - } - ] - }, - { - "name": "arm-none-eabi-gcc", - "version": "7-2017q4", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-4.8.3-2014q1-arm.tar.bz2", - "checksum": "SHA-256:ebe96b34c4f434667cab0187b881ed585e7c7eb990fe6b69be3c81ec7e11e845", - "size": "44423906" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linuxarm64.tar.bz2", - "checksum": "SHA-256:6fb5752fb4d11012bd0a1ceb93a19d0641ff7cf29d289b3e6b86b99768e66f76", - "size": "99558726" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", - "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip", - "checksum": "SHA-256:96dd0091856f4d2eb21046eba571321feecf7d50b9c156f708b2a8b683903382", - "size": "131761924" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-mac.tar.bz2", - "checksum": "SHA-256:89b776c7cf0591c810b5b60067e4dc113b5b71bc50084a536e71b894a97fdccb", - "size": "104550003" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2017-q4-major-linux64.tar.bz2", - "checksum": "SHA-256:96a029e2ae130a1210eaa69e309ea40463028eab18ba19c1086e4c2dafe69a6a", - "size": "99857645" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", - "archiveFileName": "gcc-arm-none-eabi-7-2018-q2-update-linux32.tar.bz2", - "checksum": "SHA-256:090a0bc2b1956bc49392dff924a6c30fa57c88130097b1972204d67a45ce3cf3", - "size": "97427309" - } - ] - }, - { - "name": "bossac", - "version": "1.3-arduino", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-i686-linux-gnu.tar.bz2", - "checksum": "SHA-256:d6d10362f40729a7877e43474fcf02ad82cf83321cc64ca931f5c82b2d25d24f", - "size": "147359" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-x86_64-pc-linux-gnu.tar.bz2", - "checksum": "SHA-256:c1daed033251296768fa8b63ad283e053da93427c0f3cd476a71a9188e18442c", - "size": "26179" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i686-mingw32.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-i686-mingw32.tar.bz2", - "checksum": "SHA-256:a37727622e0f86cb4f2856ad0209568a5d804234dba3dc0778829730d61a5ec7", - "size": "265647" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", - "archiveFileName": "bossac-1.3a-arduino-i386-apple-darwin11.tar.bz2", - "checksum": "SHA-256:40770b225753e7a52bb165e8f37e6b760364f5c5e96048168d0178945bd96ad6", - "size": "39475" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino2", - "systems": [ - { - "size": "24443285", - "checksum": "SHA-256:c19a7526235c364d7f62ec1a993d9b495973ba1813869ccf0241c65905896852", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27152002", - "checksum": "SHA-256:24a931877bee5f36dc00a88877219a6d2f6a1fb7abb989fd04556b8432d2e14e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "25876628", - "checksum": "SHA-256:2d701b4efbc8cec62dc299cde01730c5eebcf23d7e4393db8cf7744a9bf1d3de", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46046691", - "checksum": "SHA-256:2eafb49fb803fa4d2c32d35e24c0b372fcd520ca0a790fa537a847179e382000", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino2-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino2", - "systems": [ - { - "size": "264965", - "checksum": "SHA-256:71117cce0096dad6c091e2c34eb0b9a3386d3aec7d863d2da733d9e5eac3a6b1", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "292541", - "checksum": "SHA-256:2489004d1d98177eaf69796760451f89224007c98b39ebb5577a9a34f51425f1", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "283209", - "checksum": "SHA-256:6f633dd6270ad0d9ef19507bcbf8697b414a15208e4c0f71deec25ef89cdef3f", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241618", - "checksum": "SHA-256:6c5483800ba753c80893607e30cade8ab77b182808fcc5ea15fa3019c63d76ae", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino2-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino3", - "systems": [ - { - "size": "24447175", - "checksum": "SHA-256:28e207c66b3dc405367d0c5e68ce3c278e5ec3abb0e4974e7927fe0f9a532c40", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i386-apple-darwin11.tar.bz2" - }, - { - "size": "30556996", - "checksum": "SHA-256:028340abec6eb3085b82404dfc7ed143e1bb05b2da961b539ddcdba4a6f65533", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "28768022", - "checksum": "SHA-256:37796548ba9653267568f959cd8c7ebfe5b4bce4599898cf9f876d64e616cb87", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46046917", - "checksum": "SHA-256:d6f0527793f9800f060408392a99eb290ed205730edbae43a1a25cbf6b6b588f", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino3-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino3-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino3", - "systems": [ - { - "size": "264682", - "checksum": "SHA-256:df7cd4a76e45ab3767eb964f845f4d5e9d643df950ec32812923da1e9843d072", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i386-apple-darwin11.tar.bz2" - }, - { - "size": "748634", - "checksum": "SHA-256:bb7bff48f20a68e1fe559c3f3f644574df12ab5c98eb6a1491079f3c760434ad", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "495482", - "checksum": "SHA-256:96a0cfb83fe0452366159e3bf4e19ff10906a8957d1feafd3d98b49ab4b14405", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241619", - "checksum": "SHA-256:ea59bfc2ee85039c85318b2ba52c47ef0573513444a785b72f59b22586a950f9", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino3-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino3-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.8.1-arduino5", - "systems": [ - { - "size": "24403768", - "checksum": "SHA-256:c8ffcd2db7a651b48ab4ea19db4b34fbae3e7f0210a0f294592af2bdabf2154b", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "24437400", - "checksum": "SHA-256:111b3ef00d737d069eb237a8933406cbb928e4698689e24663cffef07688a901", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27093036", - "checksum": "SHA-256:9054fcc174397a419ba56c4ce1bfcbcad275a6a080cc144905acc9b0351ee9cc", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "25882375", - "checksum": "SHA-256:7648b7f549b37191da0b0be53bae791b652f82ac3cb4e7877f85075aaf32141f", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "46044779", - "checksum": "SHA-256:d4303226a7b41d3c445d901b5aa5903458def3fc7b7ff4ffef37cabeb37d424d", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.8.1-arduino5-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.8.1-arduino5-i686-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.0.1-arduino5", - "systems": [ - { - "size": "267095", - "checksum": "SHA-256:23ea1341dbc117ec067f2eb1a498ad2bdd7d11fff0143c00b2e018c39804f6b4", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "264894", - "checksum": "SHA-256:41af8d3b0a586853c8317b4fb5163ca0db594a1870ddf680fd988c42166fc3e5", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i386-apple-darwin11.tar.bz2" - }, - { - "size": "292629", - "checksum": "SHA-256:d826cca7383461f7e8adde686372cf900e9cb3afd639555cf2d6c645b283a476", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "283121", - "checksum": "SHA-256:5933d66927bce46ababa9b68a8b7f1d53f68c4f3ff7a5ce4b85d7cf4e6c6bfee", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "241634", - "checksum": "SHA-256:41f667f1f6a0ab8df46b4ffacd023176dcdef331d6db3b74bddd37d18cca0a44", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.0.1-arduino5-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.0.1-arduino5-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino", - "systems": [ - { - "size": "27046965", - "checksum": "SHA-256:adeee70be27cc3ee0e4b9e844610d9c534c7b21dae24ec3fa49808c2f04958de", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i386-apple-darwin11.tar.bz2" - }, - { - "size": "27400001", - "checksum": "SHA-256:02dba9ee77694c23a4c304416a3808949c8faedf07f25a225a4189d850615ec6", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "29904544", - "checksum": "SHA-256:0711e885c0430859e7fea3831af8c69a0c25f92a90ecfda9281799a0acec7455", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "29077606", - "checksum": "SHA-256:fe0bb1d6369694779ceb671d457ccadbeafe855a11f6746b7db20055cea4df33", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "43847566", - "checksum": "SHA-256:445ce3117e87be7e196809fbbea373976160689b6d4b43dbf185eb4c914d1469", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino-i686-mingw32.zip" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.3-arduino2", - "systems": [ - { - "size": "27400889", - "checksum": "SHA-256:77f300d519bc6b9a25df17b36cb303218e9a258c059b2f6bff8f71a0d8f96821", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "27048070", - "checksum": "SHA-256:311258af188defe24a4b341e4e1f4dc93ca6c80516d3e3b55a2fc07a7050248b", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "43847945", - "checksum": "SHA-256:f8e6ede8746c70be01ec79a30803277cd94360cc5b2e104762da0fbcf536fcc6", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-mingw32.zip" - }, - { - "size": "29292729", - "checksum": "SHA-256:f108951e7c4dc90926d1fc76cc27549f6ea63c702a2bb7ff39647a19ae86ec68", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "29882960", - "checksum": "SHA-256:3903a6d1bb9fdd91727e504b5993d5501f119bcb7f99f7aee98a2101e5629188", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.3-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "4.9.2-atmel3.5.4-arduino2", - "systems": [ - { - "size": "27764772", - "checksum": "SHA-256:ee36009e19bd238d1f6351cbc9aa5db69714761f67dec4c1d69d5d5d7758720c", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "28574644", - "checksum": "SHA-256:67b3ed3555eacf0b4fc6f62240773b9f0220171fe4de26bb8d711547fc884730", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "44386446", - "checksum": "SHA-256:6044551cd729d88ea6ffcccf10aad1934c5b164d61f4f5890b0e78524ffff853", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-mingw32.zip" - }, - { - "size": "29723974", - "checksum": "SHA-256:63a9d4cebbac06fd5fa8f48a2e2ba7d513837dcddc97f560129b4e466af901b5", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "30374404", - "checksum": "SHA-256:19480217f1524d78467b83cd742f503182bbcc76b5440093261f146828aa588c", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-4.9.2-atmel3.5.4-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avr-gcc", - "version": "5.4.0-atmel3.6.1-arduino2", - "systems": [ - { - "size": "31449123", - "checksum": "SHA-256:6741f95cc3182a8729cf9670eb13d8dc5a19e881639ca61e53a2d78346a4e99f", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "33141295", - "checksum": "SHA-256:0fa9e4f2d6d09782dbc84dd91a302849cde2f192163cb9f29484c5f32785269a", - "host": "aarch64-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "31894498", - "checksum": "SHA-256:abc50137543ba73e227b4d1b8510fff50a474bacd24f2c794f852904963849f8", - "host": "i386-apple-darwin11", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "45923772", - "checksum": "SHA-256:7eb5691a379b547798fae535b05d68bc02d3969f12d051b8a5a5f2f350ab0a7f", - "host": "i686-mingw32", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-w64-mingw32.zip" - }, - { - "size": "33022916", - "checksum": "SHA-256:51f87e04f3cdaa73565c751051ac118e02904ad8478f1475b300e1bffcd5538f", - "host": "i686-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "33522375", - "checksum": "SHA-256:05422b0d73b10357c12ea938f02cf50529422b89a4722756e70024aed3e69185", - "host": "x86_64-linux-gnu", - "archiveFileName": "avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avr-gcc-5.4.0-atmel3.6.1-arduino2-x86_64-pc-linux-gnu.tar.bz2" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino2", - "systems": [ - { - "size": "643484", - "checksum": "SHA-256:26af86137d8a872f64d217cb262734860b36fe26d6d34faf72e951042f187885", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "653968", - "checksum": "SHA-256:32525ea3696c861030e1a6006a5f11971d1dad331e45bfa68dac35126476b04f", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i386-apple-darwin11.tar.bz2" - }, - { - "size": "745081", - "checksum": "SHA-256:9635af5a35bdca11804c07582d7beec458140fb6e3308168c3deda18dc6790fa", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "731802", - "checksum": "SHA-256:790b6cb610c48e73a2a0f65dcee9903d2fd7f1b0a1f75008a9a21f50a60c7251", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "608496", - "checksum": "SHA-256:8eaf98ea41fbd4450483488ef31710cbcc43c0412dbc8e1e1b582feaab6eca30", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino2-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino2-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino6", - "systems": [ - { - "size": "644600", - "checksum": "SHA-256:2426207423d58eb0e5fc4df9493418f1cb54ba3f328fdc7c3bb582f920b9cbe7", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "696273", - "checksum": "SHA-256:d9a039c9e92d3dbb2011e75e6c044a1a4a2789e2fbf8386b1d580994811be084", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i386-apple-darwin11.tar.bz2" - }, - { - "size": "746653", - "checksum": "SHA-256:97b4875cad6110c70101bb776f3ac37b64a2e73f036cd0b10afb6f4be96a6621", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "733127", - "checksum": "SHA-256:5f4bc4b0957b1d34cec9908b7f84a7c297b894b39fe16a4992c284b24c00d6fb", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645859", - "checksum": "SHA-256:7468a1bcdfa459d175a095b102c0de28efc466accfb104305fbcad7832659ddc", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino6-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino6-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino8", - "systems": [ - { - "size": "644550", - "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "697268", - "checksum": "SHA-256:be8a33a7ec01bb7123279466ffa31371e0aa4fccefffcc23ce71810b59531947", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i386-apple-darwin11.tar.bz2" - }, - { - "size": "711544", - "checksum": "SHA-256:85f38d02e2398d3b7f93da2ca8b830ee65bb73f66cc7a7b30c466d3cebf2da6e", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "701718", - "checksum": "SHA-256:8e2e4bc71d22e9d11ed143763b97f3aa2d164cdeee678a9deaf5b36e245b2d20", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645996", - "checksum": "SHA-256:3a7592f6c33efd658b820c73d1058d3c868a297cbddb37da5644973c3b516d5e", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino8-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino8-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino9", - "systems": [ - { - "size": "644550", - "checksum": "SHA-256:25a6834ae48019fccf37024236a1f79fe21760414292a4f3fa058d937ceee1ce", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "697309", - "checksum": "SHA-256:bfa06bc042dff252d3a8eded98da159484e75b46d2697da4d9446dcd2aea8465", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i386-apple-darwin11.tar.bz2" - }, - { - "size": "711229", - "checksum": "SHA-256:c8cccb84e2fe49ee837b24f0a60a99e9c371dae26e84c5b0b22b6b6aab2f1f6a", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "701590", - "checksum": "SHA-256:4235a2d58e3c3224c603d6c5f0610507ed6c48ebf4051fdcce9f77a7646e218b", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "645974", - "checksum": "SHA-256:f3c5cfa8d0b3b0caee81c5b35fb6acff89c342ef609bf4266734c6266a256d4f", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino9-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino9-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "avrdude", - "version": "6.3.0-arduino14", - "systems": [ - { - "size": "219616", - "checksum": "SHA-256:d1a06275490d59a431c419788bbc53ffd5a79510dac1a35e63cf488621ba5589", - "host": "arm-linux-gnueabihf", - "archiveFileName": "avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-armhf-pc-linux-gnu.tar.bz2" - }, - { - "size": "229688", - "checksum": "SHA-256:439f5de150695e3732dd598bb182dae6ec1e3a5cdb580f855d9b58e485e84e66", - "host": "aarch64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-aarch64-pc-linux-gnu.tar.bz2" - }, - { - "size": "256917", - "checksum": "SHA-256:47d03991522722ce92120c60c4118685b7861909d895f34575001137961e4a63", - "host": "i386-apple-darwin11", - "archiveFileName": "avrdude-6.3.0-arduino14-i386-apple-darwin12.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i386-apple-darwin11.tar.bz2" - }, - { - "size": "253366", - "checksum": "SHA-256:7986e8f3059353dc08f9234f7dbc98d9b2fa2242f046f02a8243a060f7358bfc", - "host": "x86_64-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-x86_64-pc-linux-gnu.tar.bz2" - }, - { - "size": "244293", - "checksum": "SHA-256:4f100e3843c635064997df91d2a079ab15cd30d1d7fa227280abe6a7c3bc74ca", - "host": "i686-linux-gnu", - "archiveFileName": "avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-pc-linux-gnu.tar.bz2" - }, - { - "size": "328363", - "checksum": "SHA-256:69293e0de2eff8de89f553477795c25005f674a320bbba4b0222beb0194aa297", - "host": "i686-mingw32", - "archiveFileName": "avrdude-6.3.0-arduino14-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino14-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.0.0", - "systems": [ - { - "size": "2044124", - "checksum": "SHA-256:850a86876403cb45c944590a8cc7f9d8ef6d53ed853f7a9593ec395c4c1c6b2d", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.0.0-linux32.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux32.tar.bz2" - }, - { - "size": "2178772", - "checksum": "SHA-256:f01f25e02787492a8a30414230635adae76ed85228045437433892d185991f9e", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.0.0-linux64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linux64.tar.bz2" - }, - { - "size": "1961623", - "checksum": "SHA-256:0ca6c0a93bfad50be0b6e62dc51ba6c3267b809bab4ec91ef9606ab7d838e46b", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.0.0-linuxarm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-linuxarm.tar.bz2" - }, - { - "size": "2180617", - "checksum": "SHA-256:e63c6034da2c1a7fe453eaa29c22df88627cc0aa3c5cbab7635c19367b74ee59", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.0.0-osx.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-osx.tar.bz2" - }, - { - "size": "2247970", - "checksum": "SHA-256:7bced1489217e07661ea1e75702a10a874b54f6146e2414ee47684c7eac014d1", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.0.0-windows.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.0.0-windows.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.1.1", - "systems": [ - { - "size": "2045036", - "checksum": "SHA-256:7ac91ef1d5b357c0ceb790be02ef54986db598ba5a42fffbd6c8ecbdd6a271ef", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.1.1-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_386.tar.bz2" - }, - { - "size": "2178288", - "checksum": "SHA-256:eb5ad0a457dd7f610f7f9b85454399c36755673d61a16f9d07cdfcbbb32ec277", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.1.1-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_amd64.tar.bz2" - }, - { - "size": "1962115", - "checksum": "SHA-256:e4880d83df3d3f6f4b7b7bcde161e80a0556877468803a3c6066ee4ad18a374c", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.1.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-linux_arm.tar.bz2" - }, - { - "size": "2181376", - "checksum": "SHA-256:a1ce7cf578982f3af5e4fab6b5839e44830d7a41cb093faba5c4b45952a6fa55", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.1.1-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-darwin_amd64.tar.bz2" - }, - { - "size": "2248431", - "checksum": "SHA-256:b2d3610c77f969a68cd75b6ea66bf63ec10c263937009d99147fbcd975c90006", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.1.1-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.1.1-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.2.0", - "systems": [ - { - "size": "1839854", - "checksum": "SHA-256:7157a0b56620fb43b8dfb4afd958f8b294476a5ce4322c212167ca5d4092f2d9", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.0-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_386.tar.bz2" - }, - { - "size": "1974030", - "checksum": "SHA-256:f672c1c407c4cb10729a1d891bdb8b010e2043e5415e1c2559bf39cdeaede78c", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.0-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_amd64.tar.bz2" - }, - { - "size": "1787138", - "checksum": "SHA-256:ac49ffcd3239a6a52215f89dbda012d28f1296e6d79fc0efc3df06f919105744", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.2.0-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-linux_arm.tar.bz2" - }, - { - "size": "1992476", - "checksum": "SHA-256:160e83e77d7a60514ca40fedf34f539124aac4b9ae0e2bfdf8fda11d958de38f", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.2.0-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-darwin_amd64.tar.bz2" - }, - { - "size": "2003964", - "checksum": "SHA-256:9d26747093ab7966bfeffced9dbd7def0e164bba0db89f5efb3f7f8011496c8f", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.2.0-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.0-windows_386.zip" - } - ] - }, - { - "name": "arduinoOTA", - "version": "1.2.1", - "systems": [ - { - "size": "2133779", - "checksum": "SHA-256:2ffdf64b78486c1d0bf28dc23d0ca36ab75ca92e84b9487246da01888abea6d4", - "host": "i686-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_386.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_386.tar.bz2" - }, - { - "size": "2257689", - "checksum": "SHA-256:5b82310d53688480f34a916aac31cd8f2dd2be65dd8fa6c2445262262e1948f9", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_amd64.tar.bz2" - }, - { - "size": "2093132", - "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", - "host": "arm-linux-gnueabihf", - "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" - }, - { - "size": "2093132", - "checksum": "SHA-256:ad54b3dcd586212941fd992bab573b53d13207a419a3f2981c970a085ae0e9e0", - "host": "aarch64-linux-gnu", - "archiveFileName": "arduinoOTA-1.2.1-linux_arm.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-linux_arm.tar.bz2" - }, - { - "size": "2244088", - "checksum": "SHA-256:93a6d9f9c0c765d237be1665bf7a0a8e2b0b6d2a8531eae92db807f5515088a7", - "host": "i386-apple-darwin11", - "archiveFileName": "arduinoOTA-1.2.1-darwin_amd64.tar.bz2", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-darwin_amd64.tar.bz2" - }, - { - "size": "2237511", - "checksum": "SHA-256:e1ebf21f2c073fce25c09548c656da90d4ef6c078401ec6f323e0c58335115e5", - "host": "i686-mingw32", - "archiveFileName": "arduinoOTA-1.2.1-windows_386.zip", - "url": "http://downloads.arduino.cc/tools/arduinoOTA-1.2.1-windows_386.zip" - } - ] - }, - { - "name": "bossac", - "version": "1.5-arduino", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "bossac-1.5-arduino2-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:7b61b7814e5b57bcbd853439fc9cd3e98af4abfdd369bf039c6917f9599e44b9", - "size": "199550" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-mingw32.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-mingw32.tar.gz", - "checksum": "SHA-256:9d849a34f0b26c25c6a8c4d741cd749dea238cade73b57a3048f248c431d9cc9", - "size": "222283" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-i386-apple-darwin14.3.0.tar.gz", - "checksum": "SHA-256:8f07e50a1f887cb254092034c6a4482d73209568cd83cb624d6625d66794f607", - "size": "64120" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:42785329155dcb39872d4d30a2a9d31e0f0ce3ae7e34a3ed3d840cbc909c4657", - "size": "30431" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.5-arduino2-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.5-arduino2-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:ac56e553bbd6d992fa5592ace90996806230ab582f2bf9f8590836fec9dabef6", - "size": "29783" - } - ] - }, - { - "name": "bossac", - "version": "1.6-arduino", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-mingw32.tar.gz", - "archiveFileName": "bossac-1.6-arduino-mingw32.tar.gz", - "checksum": "SHA-256:b59d64d3f7a43c894d0fba2dd1241bbaeefedf8c902130a24d8ec63b08f9ff6a", - "size": "222517" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", - "archiveFileName": "bossac-1.6-arduino-i386-apple-darwin14.4.0.tar.gz", - "checksum": "SHA-256:6b3b686a782b6587c64c85db80085c9089c5ea1b051e49e5af17b3c6109c8efa", - "size": "64538" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6-arduino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2ce7a54d609b4ce3b678147202b2556dd1ce5b318de48a018c676521b994c7a7", - "size": "30649" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.6-arduino-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6-arduino-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:5c320bf5cfdbf03e3f648642e6de325e459a061fcf96b2215cb955263f7467b2", - "size": "30072" - } - ] - }, - { - "name": "bossac", - "version": "1.6.1-arduino", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", - "size": "201341" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", - "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", - "size": "222918" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", - "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", - "size": "64587" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", - "size": "30869" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", - "size": "30320" - } - ] - }, - { - "name": "bossac", - "version": "1.7.0", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-mingw32.tar.gz", - "archiveFileName": "bossac-1.7.0-mingw32.tar.gz", - "checksum": "SHA-256:9ef7d11b4fabca0adc17102a0290957d5cc26ce46b422c3a5344722c80acc7b2", - "size": "243066" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", - "archiveFileName": "bossac-1.7.0-i386-apple-darwin15.6.0.tar.gz", - "checksum": "SHA-256:feac36ab38876c163dcf51bdbcfbed01554eede3d41c59a0e152e170fe5164d2", - "size": "63822" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:9475c0c8596c1ba12dcbce60e48fef7559087fa8eccbea7bab732113f3c181ee", - "size": "31373" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-i686-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:17003b0bdc698d52eeb91b09c34aec501c6e0285b4aa88659ab7cc407a451a4d", - "size": "31086" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arm-linux-gnueabihf.tar.gz", - "archiveFileName": "bossac-1.7.0-arm-linux-gnueabihf.tar.gz", - "checksum": "SHA-256:09e46d0af61b2189caaac0bc6d4dd15cb22c167fdedc56ec98602dd5f10e68e0", - "size": "27382" - } - ] - }, - { - "name": "bossac", - "version": "1.7.0-arduino3", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", - "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", - "size": "3607421" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", - "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", - "size": "75510" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", - "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", - "size": "207271" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", - "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", - "size": "193577" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", - "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", - "size": "193941" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", - "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", - "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", - "size": "268365" - } - ] - }, - { - "name": "bossac", - "version": "1.8.0-48-gb176eee", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-i686-w64-mingw32.tar.gz", - "checksum": "SHA-256:4523a6897f3dfd673fe821c5cfbac8d6a12782e7a36b312b9ee7d41deec2a10a", - "size": "91219" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-i386-apple-darwin16.1.0.tar.gz", - "checksum": "SHA-256:581ecc16021de36638ae14e9e064ffb4a1d532a11502f4252da8bcdf5ce1d649", - "size": "39150" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:1347eec67f5b90b785abdf6c8a8aa59129d0c016de7ff9b5ac1690378eacca3c", - "size": "37798" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-i486-linux-gnu.tar.gz", - "checksum": "SHA-256:4c7492f876b8269aa9d8bcaad3aeda31acf1a0292383093b6d9f5f1d23fdafc3", - "size": "37374" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", - "archiveFileName": "bossac-1.8-48-gb176eee-arm-linux-gnueabihf.tar.gz", - "checksum": "SHA-256:2001e4a592f3aefd22f213b1ddd6f5d8d5e74bd04080cf1b97c24cbaa81b10ed", - "size": "34825" - } - ] - }, - { - "name": "openocd", - "version": "0.9.0-arduino", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-dev-arduino-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:a84e7c4cba853f2c937d77286f8a0ca317447d3873e51cbd2a2d41424e044a18", - "size": "1402283" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-i686-pc-cygwin.tar.bz2", - "checksum": "SHA-256:5310bdd3730168a33b09b68558e908ca8b2fec25620c488f50a5fb35d0d1effd", - "size": "2360705" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-apple-darwin14.3.0.tar.bz2", - "checksum": "SHA-256:ef90769c07b8018cec3a5054e690ac6c196e03720e102ac5038c3f9da4e44782", - "size": "2275101" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-x86_64-linux-gnu.tar.bz2", - "checksum": "SHA-256:c350409f7badf213dfcc516ea34289461ad92d87806e8e33945508a2c6b2c0b3", - "size": "1210796" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", - "archiveFileName": "OpenOCD-0.9.0-arduino-i486-linux-gnu.tar.bz2", - "checksum": "SHA-256:4c9793dfd7822b0fc959d039e5ecabfa89092ee2911abfdc7b5905deb171499a", - "size": "1129654" - } - ] - }, - { - "name": "openocd", - "version": "0.9.0-arduino5-static", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:cef48c1448664612dd25168f0a56962aec4ce2f1d7c06dafd86a1b606dc8ae20", - "size": "1319000" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", - "archiveFileName": "openocd-0.9.0-arduino5-static-i686-w64-mingw32.zip", - "checksum": "SHA-256:54c70a0bfa1b0a3a592d6ee9ab532f9715e1dede2e7d46a3232abd72de274c5a", - "size": "1641209" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-apple-darwin15.6.0.tar.bz2", - "checksum": "SHA-256:14be5c5400e1a32c3d6a15f9c8d2f438634974ab263ff437b91b527e5b5d53a4", - "size": "1235752" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-x86_64-linux-gnu.tar.bz2", - "checksum": "SHA-256:8e378bdcd71c93a39818c16b49b91128c8028e3d9675551ba7eff39462391ba2", - "size": "1393855" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino5-static-i686-linux-gnu.tar.bz2", - "checksum": "SHA-256:8e0787f54e204fe6e9071b2b7edf8a5e695492696f1182d447647fe5c0bd55bd", - "size": "1341739" - } - ] - }, - { - "name": "openocd", - "version": "0.9.0-arduino6-static", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-arm-linux-gnueabihf.tar.bz2", - "checksum": "SHA-256:5d596c90510f80d66f64a3615d74063a6a61f07b79be475592a3c76bf0deb3ca", - "size": "1319020" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", - "archiveFileName": "openocd-0.9.0-arduino6-static-i686-w64-mingw32.zip", - "checksum": "SHA-256:dde6c8cd42c179e819eeebee1d09829b0768ecb89b75fb10e1f053c1c65f9cf1", - "size": "1641514" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-apple-darwin15.6.0.tar.bz2", - "checksum": "SHA-256:00cd65339bc981ff0d4ab4876df8f89b1e60e476441fabca31d5fc2968bad9be", - "size": "1222523" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-x86_64-linux-gnu.tar.bz2", - "checksum": "SHA-256:d2f58bbd0661b755fdb8a307d197f119d838b066f5510b25ee766e47d1774543", - "size": "1394293" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", - "archiveFileName": "openocd-0.9.0-arduino6-static-i686-linux-gnu.tar.bz2", - "checksum": "SHA-256:88d948c2062c73c0c93e649e099aaac4b009018cff365f44cfc5b47907043dc9", - "size": "1340444" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino7", - "systems": [ - { - "size": "1638575", - "checksum": "SHA-256:f8e0d783e80a3d5f75ee82e9542315871d46e1e283a97447735f1cbcd8986b06", - "host": "arm-linux-gnueabihf", - "archiveFileName": "openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-arm-linux-gnueabihf.tar.bz2" - }, - { - "size": "1580739", - "checksum": "SHA-256:d47d728a9a8d98f28dc22e31d7127ced9de0d5e268292bf935e050ef1d2bdfd0", - "host": "aarch64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-aarch64-linux-gnu.tar.bz2" - }, - { - "size": "1498970", - "checksum": "SHA-256:1e539a587a0c54a551ce0dc542af10a2520b1c93bbfe2ca4ebaef4c83411df1a", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-apple-darwin13.tar.bz2" - }, - { - "size": "1701581", - "checksum": "SHA-256:91d418bd309ec1e98795c622cd25c936aa537c0b3828fa5bcb191389378a1b27", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "1626347", - "checksum": "SHA-256:08a18f39d72a5626383503053a30a5da89eed7fdccb6f514b20b77403eb1b2b4", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-ubuntu12.04-linux-gnu.tar.bz2" - }, - { - "size": "2016965", - "checksum": "SHA-256:f251aec5471296e18aa540c3078d66475357a76a77c16c06a2d9345f4e12b3d5", - "host": "i686-mingw32", - "archiveFileName": "openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip", - "url": "http://downloads.arduino.cc/tools/openocd-0.10.0-arduino7-static-i686-w64-mingw32.zip" - } - ] - }, - { - "name": "CMSIS", - "version": "4.0.0-atmel", - "systems": [ - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.0.0.tar.bz2", - "archiveFileName": "CMSIS-4.0.0.tar.bz2", - "checksum": "SHA-256:7d637d2d7a0c6bacc22065848a201db2fff124268e4a56868260d0f472b4bbb7", - "size": "17642623" - } - ] - }, - { - "name": "CMSIS", - "version": "4.5.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-4.5.0.tar.bz2", - "archiveFileName": "CMSIS-4.5.0.tar.bz2", - "checksum": "SHA-256:cd8f7eae9fc7c8b4a1b5e40b89b9666d33953b47d3d2eb81844f5af729fa224d", - "size": "31525196" - } - ] - }, - { - "name": "CMSIS-Atmel", - "version": "1.0.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.0.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.0.0.tar.bz2", - "checksum": "SHA-256:b3c954570a2f8d9821c372e0864f5f0b86cfbeab8114ce95821f5c49758c7256", - "size": "1281654" - } - ] - }, - { - "name": "CMSIS-Atmel", - "version": "1.1.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "i686-pc-linux-gnu", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - }, - { - "host": "all", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.1.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.1.0.tar.bz2", - "checksum": "SHA-256:3ea5ec0451f42dc2b97f869b027a9cf696241cfc927cfc48d74ccc7b396ba41b", - "size": "1659108" - } - ] - }, - { - "name": "CMSIS-Atmel", - "version": "1.2.0", - "systems": - [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "x86_64-apple-darwin", - "url": "http://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "aarch64-linux-gnu", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - }, - { - "host": "all", - "url": "https://downloads.arduino.cc/CMSIS-Atmel-1.2.0.tar.bz2", - "archiveFileName": "CMSIS-Atmel-1.2.0.tar.bz2", - "checksum": "SHA-256:5e02670be7e36be9691d059bee0b04ee8b249404687531f33893922d116b19a5", - "size": "2221805" - } - ] - }, - { - "name": "dfu-util", - "version": "0.9.0-arduino1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-osx.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-osx.tar.bz2", - "size": "68361", - "checksum": "SHA-256:ea9216c627b7aa2d3a9bffab97df937e3c580cce66753c428dc697c854a35271" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-arm.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-arm.tar.bz2", - "size": "194826", - "checksum": "SHA-256:480637bf578e74b19753666a049f267d8ebcd9dfc8660d48f246bb76d5b806f9" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux64.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-linux64.tar.bz2", - "size": "66230", - "checksum": "SHA-256:e8a4d5477ab8c44d8528f35bc7dfafa5f3f04dace513906514aea31adc6fd3ba" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-linux32.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-linux32.tar.bz2", - "size": "62608", - "checksum": "SHA-256:17d69213914da04dadd6464d8adbcd3581dd930eb666b8f3336ab5383ce2127f" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/dfu-util-0.9.0-arduino1-windows.tar.bz2", - "archiveFileName": "dfu-util-0.9.0-arduino1-windows.tar.bz2", - "size": "377537", - "checksum": "SHA-256:29be01b298348be8b822391be7147b71a969d47bd5457d5b24cfa5981dbce78e" - } - ] - }, - { - "name": "windows-drivers", - "version": "1.6.9", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.6.9.zip", - "archiveFileName": "drivers-arduino-windows-1.6.9.zip", - "checksum": "SHA-256:10d456ab18d164d42545255db8bef4ac9e1bf660cc89acb7a0980b5a486654ac", - "size": "7071714" - } - ] - }, - { - "name": "windows-drivers", - "version": "1.8.0", - "systems": [ - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/drivers-arduino-windows-1.8.0.zip", - "archiveFileName": "drivers-arduino-windows-1.8.0.zip", - "checksum": "SHA-256:60614b326ad6860ed0cb99eb4cb2cb69f9ba6ba3784396d5441fe3f99004f8ec", - "size": "16302148" - } - ] - }, - { - "name": "dfu-util", - "version": "0.8.0-stm32-arduino1", - "systems": [ - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2", - "checksum": "SHA-256:bb146803a4152ce2647d72b2cde68ff95eb3017c2460f24c4db922adac1fbd12", - "host": "i386-apple-darwin11", - "size": "68381", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-darwin_amd64.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2", - "checksum": "SHA-256:607e6b0f2d2787ed7837f26da30b100131e3db207f84b8aca94a377db6e9ae50", - "host": "arm-linux-gnueabihf", - "size": "213760", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_arm.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-stm32-linux_amd64.tar.bz2", - "checksum": "SHA-256:e44287494ebd22f59fc79766a94e20306e59c6c799f5bb1cddeed80db95000d9", - "host": "x86_64-linux-gnu", - "size": "68575", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_amd64.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2", - "checksum": "SHA-256:58131e35ad5d7053b281bc6176face7b117c5ad63331e43c6801f8ccd57f59a4", - "host": "i686-linux-gnu", - "size": "69097", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-linux_386.tar.bz2" - }, - { - "archiveFileName": "dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2", - "checksum": "SHA-256:25c2f84e1acf1f10fd2aa1afced441366d4545fd41eae56e64f0b990b4ce9f55", - "host": "i686-mingw32", - "size": "159753", - "url": "http://downloads.arduino.cc/arduino.org/dfu-util-0.8.0-stm32-arduino1-windows_386.tar.bz2" - } - ] - }, - { - "name": "arduinoSTM32load", - "version": "2.0.0", - "systems": [ - { - "archiveFileName": "arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2", - "checksum": "SHA-256:92fb9714091850febaa9d159501cbca5ba68d03020e5e2d4eff596154040bfaa", - "host": "i386-apple-darwin11", - "size": "807514", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-darwin_amd64.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_arm.tar.bz2", - "checksum": "SHA-256:fc0d8058b57bda849e1ffc849f83f54b0b85f97954176db317da1c745c174e08", - "host": "arm-linux-gnueabihf", - "size": "809480", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_arm.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_amd64.tar.bz2", - "checksum": "SHA-256:0ed5cf1ea05fe6c33567817c54daf9c296d058a3607c428e0b0bd9aad89b9809", - "host": "x86_64-linux-gnu", - "size": "818885", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_amd64.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-linux_386.tar.bz2", - "checksum": "SHA-256:fad50abaaca034e6d647d09b042291b761982aabfd42b6156411c86e4f873ca7", - "host": "i686-linux-gnu", - "size": "814283", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-linux_386.tar.bz2" - }, - { - "archiveFileName": "arduinoSTM32load-2.0.0-windows_386.tar.bz2", - "checksum": "SHA-256:79467c0cde4b88c4884acb09445a2186af4e41f901eee56e99b5d89b7065d085", - "host": "i686-mingw32", - "size": "786335", - "url": "http://downloads.arduino.cc/arduino.org/arduinoSTM32load-2.0.0-windows_386.tar.bz2" - } - ] - }, - { - "name": "openocd", - "version": "0.10.0-arduino1-static", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-osx-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-osx-static.tar.gz", - "size": "1529841", - "checksum": "SHA-256:46bd02c1d42c5d94c4936e4d4a0ff29697b621840be9a6f882e316203122049d" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-linux64-static.tar.gz", - "size": "1777984", - "checksum": "SHA-256:1c9ae77930dd7377d8c13f84abe7307b67fdcd6da74cc1ce269a79e138e7a00a" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-linux32-static.tar.gz", - "size": "1713236", - "checksum": "SHA-256:777371df34828810e1bea623b0f7c98f28fedf30fd3bc8e7d8f0a5745fb4e258" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-win32-static.zip", - "archiveFileName": "OpenOCD-0.10.0-nrf52-win32-static.zip", - "size": "1773642", - "checksum": "SHA-256:9371b25d000bd589c058a5bf10720617adb91fd8b8a21d2e887cf45eaa2df93c" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/arduino.org/OpenOCD-0.10.0-nrf52-arm-static.tar.gz", - "archiveFileName": "OpenOCD-0.10.0-nrf52-arm-static.tar.gz", - "size": "1526863", - "checksum": "SHA-256:b5172422077f87ff05b76ff40034979678c9c640e9d08cee15ce55e40dd8c929" - } - ] - }, - { - "name": "nrf5x-cl-tools", - "version": "9.3.1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_OSX.tar.bz2", - "size": "341674", - "checksum": "SHA-256:41e4580271b39459a7ef1b078d11ee08d8f4f23fab7ff03f3fe8c3bc986a0ed4" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-x86_64.tar.bz2", - "size": "167414", - "checksum": "SHA-256:4074fffe678d60968006a72edd182c6506b264472c9957bc3eaa39336bfcf972" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Linux-i386.tar.bz2", - "size": "155680", - "checksum": "SHA-256:e880059b303e5aad3a8b34c83dfd8c22beee77ae2074fbd37511e3baa91464a5" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/arduino.org/nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", - "archiveFileName": "nRF5x-Command-Line-Tools_9_3_1_Win32.tar.bz2", - "size": "812257", - "checksum": "SHA-256:a4467350e39314690cec2e96b80e7e3cab463c84eff9b81593ad57754d76ee00" - } - ] - } - ] - }, - { - "email": "support@intel.com", - "maintainer": "Intel", - "websiteURL": "http://maker.intel.com/", - "name": "Intel", - "platforms": [ - { - "name": "Intel i586 Boards", - "version": "1.6.2+1.0", - "category": "Arduino Certified", - "architecture": "i586", - "url": "https://github.com/01org/corelibs-galileo/archive/1.6.2+1.0.tar.gz", - "archiveFileName": "corelibs-galileo-1.6.2.tar.gz", - "checksum": "SHA-256:e20d62b0dccf0d68dbb61d70b866d77134b770b226d6046a61c7e8d55e64e53a", - "size": "272961", - "boards": [ - { - "name": "Galileo" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i686 Boards", - "version": "1.6.2+1.0", - "category": "Arduino Certified", - "architecture": "i686", - "url": "https://github.com/01org/corelibs-edison/archive/1.6.2+1.0.tar.gz", - "archiveFileName": "corelibs-edison-1.6.2.tar.gz", - "checksum": "SHA-256:538ab8553f832f56b04df80d44992ecc994b9c296f3fce6902832d97f99811a8", - "size": "271420", - "boards": [ - { - "name": "Edison" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i586 Boards", - "version": "1.6.7+1.0", - "category": "Arduino Certified", - "architecture": "i586", - "url": "https://github.com/01org/corelibs-galileo/archive/1.6.7+1.0.tar.gz", - "archiveFileName": "corelibs-galileo-1.6.7.tar.gz", - "checksum": "SHA-256:4d161dde4c95ef8ebc264ca444ee6d1baaee70f9fd416e5f234f3f5cdd4ee028", - "size": "273392", - "boards": [ - { - "name": "Galileo" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel i686 Boards", - "version": "1.6.7+1.0", - "category": "Arduino Certified", - "architecture": "i686", - "url": "https://github.com/01org/corelibs-edison/archive/1.6.7+1.0.tar.gz", - "archiveFileName": "corelibs-edison-1.6.7.tar.gz", - "checksum": "SHA-256:2b630b4986c4c7543946eef339ab8d08ed23d28aa6428d27f5b464ad2331a3f1", - "size": "272002", - "boards": [ - { - "name": "Edison" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0" - }, - { - "packager": "Intel", - "name": "sketchUploader", - "version": "1.6.2+1.0" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.4", - "category": "Arduino Certified", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.59.zip", - "archiveFileName": "arduino101-1.0.4.zip", - "checksum": "SHA-256:f440078eaf664d171180dda4264e8f2cf7b840e251c48f80e1ea9cfca6074fb1", - "size": "806100", - "boards": [ - { - "name": "Arduino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.4+1.0", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.4+1.14", - "name": "sketchUploader" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.5", - "category": "Arduino Certified", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.4+1.68.zip", - "archiveFileName": "arduino101-1.0.5.zip", - "checksum": "SHA-256:8c26b92491b12a9498453ed90a1178f47e9a7229fbfe129737f02ed24f55b542", - "size": "776592", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.4+1.0", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.4+1.18", - "name": "arduino101load" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.6", - "category": "Arduino Certified", - "archiveFileName": "arduino101-1.0.6.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.9+1.74.zip", - "checksum": "SHA-256:166c5d0f3c60c77495a08fe7d2debffb52195139854b3a42cfb6ae23b2fa2023", - "size": "672314", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.9+1.24", - "name": "arduino101load" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "1.0.7", - "category": "Arduino Certified", - "archiveFileName": "arduino101-1.0.7.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/1.6.11+1.83.zip", - "checksum": "SHA-256:e0fcc5175f00c521b5ed1fd3c78198bdb5fc43b8306247c62c83183572e1af8e", - "size": "729297", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "1.6.9+1.28", - "name": "arduino101load" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "1.0.0", - "name": "flashpack" - } - ] - }, - { - "name": "Intel Curie Boards", - "version": "2.0.2", - "category": "Arduino Certified", - "archiveFileName": "corelibs-arduino101-2.0.2.zip", - "architecture": "arc32", - "url": "https://github.com/arduino/ArduinoCore-arc32/archive/2.0.2.zip", - "checksum": "SHA-256:2cea02dee6959f784c6bb6bdb2dc0eafa4c4d0ce5539da9cfa64dd6ce50939fe", - "size": "6242776", - "boards": [ - { - "name": "Arduino/Genuino 101" - } - ], - "toolsDependencies": [ - { - "packager": "Intel", - "version": "2.0.1", - "name": "arduino101load" - }, - { - "packager": "arduino", - "version": "0.9.0-arduino1", - "name": "dfu-util" - }, - { - "packager": "Intel", - "version": "1.6.9+1.0.1", - "name": "arc-elf32" - }, - { - "packager": "Intel", - "version": "0.9.0+0.1", - "name": "openocd" - }, - { - "packager": "Intel", - "version": "2.0.0", - "name": "flashpack" - } - ] - } - ], - "tools": [ - { - "name": "i586-poky-linux-uclibc", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "30587705", - "checksum": "SHA-256:5b705d26dc1d8ca8953df6e0c08dcc8584d5be77b584d561f631360fd166677c", - "host": "i386-apple-darwin11", - "archiveFileName": "galileo-toolchain-20150323-osx.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-osx-1.6.2-1.0.tar.bz2" - }, - { - "size": "45948648", - "checksum": "SHA-256:821eb290d7c668c1caa74da30903c13843edc746d41508b35161622ae6279b56", - "host": "i686-mingw32", - "archiveFileName": "galileo-toolchain-20150323-windows.zip", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-windows-1.6.2-1.0.zip" - }, - { - "size": "56227185", - "checksum": "SHA-256:935ccad3eaaec34f5de76eceb0f0ecd1372bdab0b7dc8f4241e8260c6f827b72", - "host": "x86_64-linux-gnu", - "archiveFileName": "galileo-toolchain-20150316-linux64.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux64-1.6.2-1.0.tar.bz2" - }, - { - "size": "55098166", - "checksum": "SHA-256:1dab7f21e10d0208a6dd2897c36c6f5f55f9372b947225d2b59c3c4ab4777d03", - "host": "i686-linux-gnu", - "archiveFileName": "galileo-toolchain-20150316-linux32.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/galileo-toolchain-linux32-1.6.2-1.0.tar.bz2" - } - ] - }, - { - "name": "core2-32-poky-linux", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "42720934", - "checksum": "SHA-256:fac0b3f00a33ee0531ea0da6d517c170409e25bd5e59f6f3db9506974336375d", - "host": "i386-apple-darwin11", - "archiveFileName": "edison-toolchain-20150323-osx.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-osx-1.6.2-1.0.tar.bz2" - }, - { - "size": "56683094", - "checksum": "SHA-256:5a9a1b51f0fa18bf21e1dcf1332d34331dd435c5ca0d1fe008e68e13cb3255e5", - "host": "i686-mingw32", - "archiveFileName": "edison-toolchain-20150323-windows.zip", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-windows-1.6.2-1.0.zip" - }, - { - "size": "78998436", - "checksum": "SHA-256:e3443e7832732f2189fd424e4868d2ebb563e823addb2321a6e8a86a9fced193", - "host": "x86_64-linux-gnu", - "archiveFileName": "edison-toolchain-20150316-linux64.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux64-1.6.2-1.0.tar.bz2" - }, - { - "size": "76488215", - "checksum": "SHA-256:014d1bdc40bb080987c736d04ffd42cdc0d2c3cad001891fb01555dac04296f7", - "host": "i686-linux-gnu", - "archiveFileName": "edison-toolchain-20150316-linux32.tar.bz2", - "url": "http://downloadmirror.intel.com/24806/eng/edison-toolchain-linux32-1.6.2-1.0.tar.bz2" - } - ] - }, - { - "name": "arc-elf32", - "version": "1.6.4+1.0", - "systems": [ - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem.zip", - "checksum": "SHA-256:d7a3700e8762c656da66b1f85967ef1992c2473cee5bfc06b23aacfef7867435", - "host": "i686-mingw32", - "archiveFileName": "arc-toolchain-windows-arcem.zip", - "size": "218816528" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem.tar.bz2", - "checksum": "SHA-256:3818fbc4cfbb8bc826ae33f6869413463849a889e53b4e27da365f2489699ec1", - "host": "i386-apple-darwin11", - "archiveFileName": "arc-toolchain-osx-arcem.tar.bz2", - "size": "78371400" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem.tar.bz2", - "checksum": "SHA-256:cb49a8b6a2d55712a0750813d56f8271d712252907fcd82b0cf690321be0d663", - "host": "i686-linux-gnu", - "archiveFileName": "arc-toolchain-linux32-arcem.tar.bz2", - "size": "182899676" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem.tar.bz2", - "checksum": "SHA-256:0b538ae361b02a6329e00a009962c3bad91c48b07c78bb6343ffc6c19475e1a8", - "host": "x86_64-linux-gnu", - "archiveFileName": "arc-toolchain-linux64-arcem.tar.bz2", - "size": "177840353" - } - ] - }, - { - "name": "arc-elf32", - "version": "1.6.9+1.0.1", - "systems": [ - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-windows-arcem-1.0.1.zip", - "checksum": "SHA-256:59614534473a55b1d964e1f4fa14f5e01e6aaa426d1e8319a8293ffa6576f58e", - "host": "i686-mingw32", - "archiveFileName": "arc-toolchain-windows-arcem-1.0.1.zip", - "size": "172455793" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-osx-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:456995157cf1549073b9330a114abb25f056352278c107e25b3cc79443040a44", - "host": "i386-apple-darwin11", - "archiveFileName": "arc-toolchain-osx-arcem-1.0.1.tar.bz2", - "size": "30014953" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux32-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:6aa92f239998d10992592cc16a16352bb1cce75a6bff1c72b8be18d939182915", - "host": "i686-linux-gnu", - "archiveFileName": "arc-toolchain-linux32-arcem-1.0.1.tar.bz2", - "size": "116481978" - }, - { - "url": "https://downloadmirror.intel.com/25470/eng/arc-toolchain-linux64-arcem-1.0.1.tar.bz2", - "checksum": "SHA-256:0ee03cecc27471eae58cb557a105c5edaea45b49557c86867fa436a13681392c", - "host": "x86_64-linux-gnu", - "archiveFileName": "arc-toolchain-linux64-arcem-1.0.1.tar.bz2", - "size": "129250679" - } - ] - }, - { - "name": "sketchUploader", - "version": "1.6.2+1.0", - "systems": [ - { - "size": "61789", - "checksum": "SHA-256:8395ccb57c627f997fe01170df4613de906f48c6ce99623b9ca42806079c28ad", - "host": "i386-apple-darwin11", - "archiveFileName": "intel-arduino-tools-20150316-osx.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-osx.tar.gz" - }, - { - "size": "2534586", - "checksum": "SHA-256:c32d1ae4cde190242eef95122d20dbcb5da226e7de6c567079a1c8c292267ae5", - "host": "i686-mingw32", - "archiveFileName": "intel-arduino-tools-20150316-windows.zip", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-windows.zip" - }, - { - "size": "178239", - "checksum": "SHA-256:2876db4153db22609d2f6c9c3bfb198efbb9d9574edad579aca7d58cff9d2cca", - "host": "x86_64-linux-gnu", - "archiveFileName": "intel-arduino-tools-20150316-linux64.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux64.tar.gz" - }, - { - "size": "187995", - "checksum": "SHA-256:20d87602d0194be626f592d3f2bdc9566a5a897786b042393482ef4c26ae158c", - "host": "i686-linux-gnu", - "archiveFileName": "intel-arduino-tools-20150316-linux32.tar.gz", - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.2+1.0-linux32.tar.gz" - } - ] - }, - { - "version": "1.6.4+1.14", - "name": "sketchUploader", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-windows.zip", - "checksum": "SHA-256:694cc2e85bca897f2c5bf867d16f11ae4e93134e329a08079a41a83fa9fd7beb", - "host": "i686-mingw32", - "archiveFileName": "1.6.4+1.14-windows.zip", - "size": "8239124" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-osx.tar.gz", - "checksum": "SHA-256:cd9c81e72667f42fca2047b12da330917607d2f2412772758d3b25565f61cb61", - "host": "i386-apple-darwin11", - "archiveFileName": "1.6.4+1.14-osx.tar.gz", - "size": "324645" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux32.tar.gz", - "checksum": "SHA-256:8bd55d901ef26f89a2e0e67551eb966de2b3bd90504d8204bd200510b85e1a9b", - "host": "i686-linux-gnu", - "archiveFileName": "1.6.4+1.14-linux32.tar.gz", - "size": "224137" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.14-linux64.tar.gz", - "checksum": "SHA-256:2da8ac969f6e1731adfe0802d015891109b834fdedfa5ca199742d5439b4f038", - "host": "x86_64-linux-gnu", - "archiveFileName": "1.6.4+1.14-linux64.tar.gz", - "size": "216542" - } - ] - }, - { - "version": "1.6.4+1.18", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.19-windows.zip", - "checksum": "SHA-256:66c184ed5b045ba262ee86e17eb00280ebb6407b73b21979186ccc2270624bf7", - "host": "i686-mingw32", - "archiveFileName": "1.6.4+1.19-windows.zip", - "size": "9367650" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-osx.tar.gz", - "checksum": "SHA-256:c698ced53fe27030dfae9d198cc550357bf130ede204d6ccac5eaac8c15e159a", - "host": "i386-apple-darwin11", - "archiveFileName": "1.6.4+1.18-osx.tar.gz", - "size": "1236355" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux32.tar.gz", - "checksum": "SHA-256:96a9a3c9306b2ddcdecf96db64d7640c76422626a12488ef90ecd1ecdf451f3c", - "host": "i686-linux-gnu", - "archiveFileName": "1.6.4+1.18-linux32.tar.gz", - "size": "1269508" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.4+1.18-linux64.tar.gz", - "checksum": "SHA-256:0e7a9c95a4b8ed9dbd9b3e2dcd00cb22c0f41a0090efe7f144cdf6fc94eb2a19", - "host": "x86_64-linux-gnu", - "archiveFileName": "1.6.4+1.18-linux64.tar.gz", - "size": "1467166" - } - ] - }, - { - "version": "1.6.9+1.24", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-windows.zip", - "checksum": "SHA-256:b531d93a8aa5dcb3e9338c553060f71835e6530639106e6976ca8d9dea0039b0", - "host": "i686-mingw32", - "archiveFileName": "arduino101load-1.6.9+1.24-windows.zip", - "size": "9418690" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-osx.tar.gz", - "checksum": "SHA-256:b927e7996f48d861d803b911317062b345fa631c4fbe2f85f2a0dcb651508e92", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101load-1.6.9+1.24-osx.tar.gz", - "size": "1241701" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux32.tar.gz", - "checksum": "SHA-256:db418197f6b4fbdc104b682fc4137cd955681af1d12147a663054e7f352a3785", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.24-linux32.tar.gz", - "size": "1305107" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.24-linux64.tar.gz", - "checksum": "SHA-256:b7723d8edac0ed957304dc2e275a5628f6602962b93863f32cc1986e1c2ee6ab", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101-1.6.9+1.24-linux64.tar.gz", - "size": "1507392" - } - ] - }, - { - "version": "1.6.9+1.28", - "name": "arduino101load", - "systems": [ - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-windows.zip", - "checksum": "SHA-256:0847ba5466ad97c4624c7b76c84aea036f24f1189828274310f52b86e6c3de1e", - "host": "i686-mingw32", - "archiveFileName": "arduino101load-1.6.9+1.28-windows.zip", - "size": "9331111" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-osx.tar.gz", - "checksum": "SHA-256:011fcb145728842aa6dc7a2332a12b7cd0d0e4f9eae7e9c35400d3727eb33db9", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101load-1.6.9+1.28-osx.tar.gz", - "size": "1134614" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux32.tar.gz", - "checksum": "SHA-256:36681f3dbe4edc04c0f6c3888ab7787c8015b0fce2d9cffccd17d7ec5fb1204d", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.28-linux32.tar.gz", - "size": "1202482" - }, - { - "url": "https://github.com/01org/intel-arduino-tools/archive/1.6.9+1.28-linux64.tar.gz", - "checksum": "SHA-256:c691e2f077771b18a83b61c1cda96608150c80707adb7bac6b9665232bc74d4b", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101load-1.6.9+1.28-linux64.tar.gz", - "size": "1411007" - } - ] - }, - { - "name": "arduino101load", - "version": "2.0.0", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-darwin_amd64.tar.bz2", - "size": "1115949", - "checksum": "SHA-256:1adc2bb7ae5c12dabd2ce62a281285557d85d694d88e3578176a26a892546bff" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_arm.tar.bz2", - "size": "992362", - "checksum": "SHA-256:ce5bc6598481cbf058a86695f4661f4b9f3a37481a8a1401bc8aa6e38055c13f" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_amd64.tar.bz2", - "size": "1111450", - "checksum": "SHA-256:70965f1830e97bb8eafe1a4cea59a202aeb7c08dd2e9f46eb6a658d382cbf3fe" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-linux_386.tar.bz2", - "size": "1002073", - "checksum": "SHA-256:3a0880cbfc795a94cbc90e8c5e6bcf3dc47b893be8b61ba8657f009fdec364a0" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.0-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.0-windows_386.tar.bz2", - "size": "1046285", - "checksum": "SHA-256:90923d95f3d30fe3161fa0fcac344db12f99e2bfba396a48bec596d1870370ce" - } - ] - }, - { - "name": "arduino101load", - "version": "2.0.1", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-darwin_amd64.tar.bz2", - "size": "1114375", - "checksum": "SHA-256:1f96480028a2aaa9475a1f44c5912236b6a039fced948fe2042a0353c88c1fb0" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_arm.tar.bz2", - "size": "992557", - "checksum": "SHA-256:ff02bc7b64dd2f6a526fd283c55b36cab15297d045ccd214ec70d12067ce0991" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_amd64.tar.bz2", - "size": "1111519", - "checksum": "SHA-256:b15a213b495e599b76ecd68253602b56ff5eebda4fadc53442e8c1917964a45e" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-linux_386.tar.bz2", - "size": "1001211", - "checksum": "SHA-256:2941d1f2f726ca1dd3789a744a2084e8f9000912bdaf25ef888c90fd454057e9" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.0.1-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.0.1-windows_386.tar.bz2", - "size": "1046214", - "checksum": "SHA-256:932373b6da9a8ad8ee9051937ea42cedde604fa8437050dcf7baa29564fc4547" - } - ] - }, - { - "name": "arduino101load", - "version": "2.1.0", - "systems": [ - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-darwin_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-darwin_amd64.tar.bz2", - "size": "1188264", - "checksum": "SHA-256:068310277e032df5e36bd7cf351680462bd14f667536baf0b46e0f98e88a5616" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_arm.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_arm.tar.bz2", - "size": "1110912", - "checksum": "SHA-256:440c407d3fcca28333830891550bd4ed62ff4a6fb54a488330291bb79e737e97" - }, - { - "host": "x86_64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_amd64.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_amd64.tar.bz2", - "size": "1184509", - "checksum": "SHA-256:c86f707914c733f51d705b32d45ade9d708913f458382f30b7436bdcdc9bb514" - }, - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-linux_386.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-linux_386.tar.bz2", - "size": "1065618", - "checksum": "SHA-256:b17ce537f26e6ececf176585859594e1a66dfb788f074711d0be4a563c1815d8" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/arduino101load-2.1.0-windows_386.tar.bz2", - "archiveFileName": "arduino101load-2.1.0-windows_386.tar.bz2", - "size": "1078361", - "checksum": "SHA-256:32ff223937fbf747f1c552256627dfcb8eeccb4903342a9e8ac8b3e6d89cb4a7" - } - ] - }, - { - "version": "0.9.0+0.1", - "name": "openocd", - "systems": [ - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-windows.zip", - "checksum": "SHA-256:95accfa22294cf150f33fba3cac45e6aa6857ebc2ba5dacebc2963b4a6021962", - "host": "i686-mingw32", - "archiveFileName": "openocd-windows-0.9.0.zip", - "size": "9181935" - }, - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-osx.tar.bz2", - "checksum": "SHA-256:57083e887ba77826a5f532f4b1ca4b7390cb7a2e2744583576a72f28a77dcc44", - "host": "i386-apple-darwin11", - "archiveFileName": "openocd-osx-0.9.0.tar.bz2", - "size": "896625" - }, - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-linux32.tar.bz2", - "checksum": "SHA-256:49d2a220e4b25eead4fe03d2ffa339ed946abef9cb718debdc7369f7b3c70534", - "host": "i686-linux-gnu", - "archiveFileName": "openocd-linux32-0.9.0.tar.bz2", - "size": "3923308" - }, - { - "url": "https://github.com/01org/OpenOCD/releases/download/0.9-0.1/openocd-linux64.tar.bz2", - "checksum": "SHA-256:4df6d3d387b45fa6214145f736c48c95109871fcd85fa81b81c01b533097a031", - "host": "x86_64-linux-gnu", - "archiveFileName": "openocd-linux64-0.9.0.tar.bz2", - "size": "4010990" - } - ] - }, - { - "version": "1.0.0", - "name": "flashpack", - "systems": [ - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i686-mingw32", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i386-apple-darwin11", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "i686-linux-gnu", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/1.0.7/arduino101-factory_ble-flashpack-ide.tar.bz2", - "checksum": "SHA-256:6d4422cfa5c21ceba522ebf298bf24ebb2f57089e6bbaf6356038ef6fae6ca6d", - "host": "x86_64-linux-gnu", - "archiveFileName": "arduino101-factory_ble-flashpack-ide.tar.bz2", - "size": "654391" - } - ] - }, - { - "version": "2.0.0", - "name": "flashpack", - "systems": [ - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i686-mingw32", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i386-apple-darwin11", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "i686-linux-gnu", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - }, - { - "url": "https://github.com/arduino/ArduinoCore-arc32/releases/download/2.0.0/flashpack_ble_v3.tar.bz2", - "checksum": "SHA-256:d5c9dfacfa4a12580d8853db32c194537aa920f43564e99aee42f069590cce3e", - "host": "x86_64-linux-gnu", - "archiveFileName": "flashpack_ble_v3.tar.bz2", - "size": "678394" - } - ] - } - ] - }, - { - "name": "atmel-avr-xminis", - "maintainer": "Atmel University France", - "websiteURL": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/wiki", - "help": - { - "online": "http://www.arduino.cc/en/Reference/HomePage" - }, - "platforms": - [ - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.3.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.3.0/atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.3.0.tar.bz2", - "checksum": "SHA-256:3bf7739682bdd86c8e8e566769429e424859f23022664295f800df489c782f18", - "size": "95352", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - { - "packager": "arduino", - "name": "avr-gcc", - "version": "4.8.1-arduino5" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.0.1-arduino5" - } - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.4.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.4.0/atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.4.0.tar.bz2", - "checksum": "SHA-256:36e09208c91071ff2fce4a7ed06463cf820c867d9f59477192d18965c0830ed5", - "size": "95452", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.5.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.5.0/atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.5.0.tar.bz2", - "checksum": "SHA-256:e2e401fc30f8e8519bcd628884699373dc386d83a366c740b1895aa9b8cc30f4", - "size": "95573", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - }, - { - "name": "Atmel AVR Xplained-minis", - "architecture": "avr", - "version": "0.6.0", - "category": "Partner", - "url": "https://github.com/AtmelUniversityFrance/atmel-avr-xmini-boardmanagermodule/releases/download/v0.6.0/atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", - "archiveFileName": "atmel-avr-xmini-boardmanagermodule-0.6.0.tar.bz2", - "checksum": "SHA-256:60bcb315a33056fac9b1d626ac039b3439efdae821ba91b70e09dc5ce8e07f88", - "size": "95447", - "boards": [ - { - "name": "atmega168pb-xmini" - }, - { - "name": "atmega328pb-xmini" - }, - { - "name": "atmega328p-xmini" - } - ], - "toolsDependencies": - [ - ] - } - ], - "tools": - [ - ] - }, - { - "name":"littleBits", - "maintainer":"littleBits Electronics", - "websiteURL":"http://www.littlebits.cc/bits/w6-arduino", - "email":"support@littlebits.cc", - "help":{ - "online":"http://www.littlebits.cc/arduino-help" - }, - "platforms":[ - { - "name":"littleBits Arduino AVR Modules", - "architecture":"avr", - "version":"1.0.0", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/littlebits-avr-1.0.0.tar.bz2", - "archiveFileName":"littlebits-avr-1.0.0.tar.bz2", - "checksum":"SHA-256:8B867B8E89718B405231681CF9091F24372FAEF8B5B9FFBFBCF2486E3D9B5324", - "size":"27762", - "help":{ - "online":"http://www.littlebits.cc/arduino-help" - }, - "boards":[ - { "name":"littleBits w6 Arduino module" } - ], - "toolsDependencies":[ - { "packager":"arduino", "name":"avr-gcc", "version":"4.8.1-arduino5" }, - { "packager":"arduino", "name":"avrdude", "version":"6.0.1-arduino5" } - ] - } - ], - "tools":[] - }, - { - "name": "Microsoft", - "maintainer": "Microsoft.IoT", - "websiteURL": "https://github.com/ms-iot/iot-utilities/tree/master/IotCoreAppDeployment/ArduinoIde/", - "email": "bfjelds@microsoft.com", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "platforms": [ - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.0.0", - "category": "Contributed", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.0.0_ide-1.6.6.zip", - "archiveFileName": "win10_iotcore-1.0.0_ide-1.6.6.zip", - "checksum": "SHA-256:ed1b42b396217e242cd3a5b597ad5dad5957cb8117dd0f972376bafab7d8a0e5", - "size": "47325480", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.0", - "category": "Contributed", - "help": { - "online": "http://developer.microsoft.com/en-us/windows/iot/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.0_ide-1.6.6.zip", - "archiveFileName": "win10_iotcore-1.1.0_ide-1.6.6.zip", - "checksum": "SHA-256:683dcb0a72e80b9d21117f6471e0860d8cc35cd9b86557ba6fd1ed255952413e", - "size": "48316890", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.1", - "category": "Contributed", - "help": { - "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.1_ide-1.6.11.zip", - "archiveFileName": "win10_iotcore-1.1.1_ide-1.6.11.zip", - "checksum": "SHA-256:f455f2829164065faacde141b3c15604c51bb79b6874d55d1124c66aae372693", - "size": "48317624", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - }, - { - "name": "Windows 10 Iot Core", - "architecture": "win10", - "version": "1.1.2", - "category": "Contributed", - "help": { - "online": "http://ms-iot.github.io/content/en-US/win10/IotCoreAppDeployment_ArduinoIde.htm" - }, - "url": "https://github.com/ms-iot/iot-utilities/raw/master/IotCoreAppDeployment/ArduinoIde/release/win10_iotcore-1.1.2_ide-1.6.11.zip", - "archiveFileName": "win10_iotcore-1.1.2_ide-1.6.11.zip", - "checksum": "SHA-256:b1c9956b46f33bcebb7f500d29931b19ed4723c713ac0439681ea1fb172722d1", - "size": "48317648", - "boards": [ - {"name": "Windows 10 IoT Core"} - ], - "toolsDependencies":[] - } - ], - "tools":[] - }, - { - "name": "Arrow", - "maintainer": "Axel Elettronica S.r.l.", - "websiteURL": "http://axelelettronica.it/", - "email": "development@axelelettronica.it", - "help": { - "online": "http://www.arrowsmarteverything.com/support/" - }, - "platforms": [ - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "1.2.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-1.2.0.tar.bz2", - "archiveFileName": "Arrow-samd-1.2.0.tar.bz2", - "checksum": "SHA-256:1d1cd66eb9986ed60a45b6554b8dcbf168401339c8a06bcf45c1b6ee2efa0943", - "size": "36575", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "arduino", - "name": "bossac", - "version": "1.5-arduino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.0.0-atmel" - } - ] - }, - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "2.0.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.0.0.tar.gz", - "archiveFileName": "Arrow-samd-2.0.0.tar.gz", - "checksum": "SHA-256:e0bbf85d28af03a196a625462598294f9dd30ffbc9d686cbf2cc09bc5a76421a", - "size": "772778", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartEverything Fox3"}, - {"name": "SmartEverything Lion"}, - {"name": "SmartEverything Dragonfly"}, - {"name": "Analog ADI"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - ] - }, - { - "name": "Arrow Boards", - "architecture": "samd", - "version": "2.1.0", - "category": "Partner", - "url": "http://downloads.arduino.cc/cores/Arrow-samd-2.1.0.tar.gz", - "archiveFileName": "Arrow-samd-2.1.0.tar.gz", - "checksum": "SHA-256:fc593dba03249300a9e2cff88c06f50389681e4fe6e3c92207d3ffb8a8a673f7", - "size": "780064", - "boards": [ - {"name": "SmartEverything Fox"}, - {"name": "SmartEverything Fox3"}, - {"name": "SmartEverything Lion"}, - {"name": "SmartEverything Dragonfly"}, - {"name": "Analog ADI"}, - {"name": "SmartTutto"} - ], - "toolsDependencies": [ - ] - } - ], - "tools": [ - ] - }, - { - "name": "emoro", - "maintainer": "Inovatic-ICT", - "websiteURL": "http://www.emoro.eu/shop/system/download/EMoRo2560_and_GLAM_brochure.pdf.0b83da8ad90db30722cca3a5d2529494", - "email": "support@inovatic-ict.com", - "help": { - "online": "http://www.emoro.eu/shop/index.php?route=product/product&product_id=52" - }, - "platforms": [ - { - "name": "EMORO 2560", - "architecture": "avr", - "version": "3.2.1", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.1.zip", - "archiveFileName": "EMoRo_2560-3.2.1.zip", - "checksum": "SHA-256:56dd308fc2f84229688f6219a4c31629ec9b38bdadcd382c45fae9247b94f051", - "size": "846444", - "boards": [ - {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} - ], - "toolsDependencies": [ - ] - }, - { - "name": "EMORO 2560", - "architecture": "avr", - "version": "3.2.2", - "category": "Arduino@Heart", - "url": "http://downloads.arduino.cc/cores/EMoRo_2560-3.2.2.zip", - "archiveFileName": "EMoRo_2560-3.2.2.zip", - "checksum": "SHA-256:c67e6660af44c923c10deede252f9c46dabaf5b61d6e44f3785be688f1c9b46f", - "size": "565744", - "boards": [ - {"name": "EMoRo 2560. Board based on ATmega 2560 MCU"} - ], - "toolsDependencies": [ - ] - } - ], - "tools": [ - ] - }, - { - "name": "industruino", - "maintainer": "Industruino", - "websiteURL": "https://industruino.com/", - "email": "connect@industruino.com", - "help": { - "online": "https://github.com/Industruino/IndustruinoSAMD" - }, - "platforms": [ - { - "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.0.0", - "category": "Contributed", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.0.tar.bz2", - "archiveFileName": "industruino-samd-1.0.0.tar.bz2", - "checksum": "SHA-256:f2e03e584117474c3a6481922c7030558236588762dceea0421ea79ceec3ae11", - "size": "172665", - "boards": [ - { "name": "Industruino D21G" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "industruino", - "name": "bossac", - "version": "1.7.0-industruino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - }, - { - "name": "Industruino SAMD Boards (32-bits ARM Cortex-M0+)", - "architecture": "samd", - "version": "1.0.1", - "category": "Contributed", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/core/industruino-samd-1.0.1.tar.bz2", - "archiveFileName": "industruino-samd-1.0.1.tar.bz2", - "checksum": "SHA-256:ffd9a0d53f0e659432182987bfc70eeca8ea8cceaeac802be677614ed51c371f", - "size": "203844", - "boards": [ - { "name": "Industruino D21G" } - ], - "toolsDependencies": [ - { - "packager": "arduino", - "name": "arm-none-eabi-gcc", - "version": "4.8.3-2014q1" - }, - { - "packager": "industruino", - "name": "bossac", - "version": "1.7.0-industruino" - }, - { - "packager": "arduino", - "name": "openocd", - "version": "0.9.0-arduino" - }, - { - "packager": "arduino", - "name": "avrdude", - "version": "6.3.0-arduino8" - }, - { - "packager": "arduino", - "name": "CMSIS", - "version": "4.5.0" - }, - { - "packager": "arduino", - "name": "CMSIS-Atmel", - "version": "1.0.0" - } - ] - } - ], - "tools": [ - { - "name": "bossac", - "version": "1.7.0-industruino", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-mingw32.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-mingw32.tar.gz", - "checksum": "SHA-256:960d91feb565e957dbac9399e16839aa4eb4400153f2373896b733eeea778ab2", - "size": "565844" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-i386-apple-darwin15.6.0.tar.gz", - "checksum": "SHA-256:a2455d20fd8269d0655ebc50014e539911070a0b14964082337655f17de7cbf2", - "size": "128421" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2cbeb64a0e0a58f3b769ef6cdcfe55fa939b3015845b3081a9beebe9432ba4a6", - "size": "62348" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://static.industruino.com/downloads/code/IndustruinoCores/IndustruinoSAMD/tools/bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", - "archiveFileName": "bossac-1.7.0-industruino-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:77b06322da2a9bdc17ddcbc29627802e8b2bf47b5625fe6fb17d90203e4a4071", - "size": "63204" - } - ] - }, - { - "name": "windows-drivers", - "version": "0.0.1", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://static.industruino.com/downloads/drivers/drivers-industruino-windows-0.0.1.zip", - "archiveFileName": "drivers-industruino-windows-0.0.1.zip", - "checksum": "SHA-256:f1d7c7d30ca71f7224dac077f18f25f62ff97b43dd1e4a43ec4930a13a3ac484", - "size": "2545" - } - ] - } - ] - } - ] - } \ No newline at end of file diff --git a/v2/pkgs/testdata/test_tool_index.json b/v2/pkgs/testdata/test_tool_index.json new file mode 100644 index 000000000..fdee1cc9d --- /dev/null +++ b/v2/pkgs/testdata/test_tool_index.json @@ -0,0 +1,576 @@ +{ + "packages": [ + { + "name": "arduino-test", + "maintainer": "Arduino", + "websiteURL": "http://www.arduino.cc/", + "email": "packages@arduino.cc", + "help": { + "online": "http://www.arduino.cc/en/Reference/HomePage" + }, + "platforms": [ + { + "name": "Arduino megaAVR Boards - Pre-release", + "architecture": "megaavr", + "version": "1.8.102", + "category": "Arduino", + "url": "http://downloads.arduino.cc/cores/staging/core-megaavr-1.8.102.tar.bz2", + "archiveFileName": "core-megaavr-1.8.102.tar.bz2", + "checksum": "SHA-256:ad5e60b828678d9ccff957032524a4c4d68b218737e7df24b905769a04dc2a6a", + "size": "858620", + "help": { + "online": "https://github.com/arduino/ArduinoCore-megaavr/issues" + }, + "boards": [ + { + "name": "Arduino Uno WiFi Rev2" + }, + { + "name": "Arduino Nano Every" + } + ], + "toolsDependencies": [ + { + "packager": "arduino", + "name": "avr-gcc", + "version": "7.3.0-atmel3.6.1-arduino5" + }, + { + "packager": "arduino", + "name": "avrdude", + "version": "7.0-arduino.3" + }, + { + "packager": "arduino", + "name": "arduinoOTA", + "version": "1.3.0" + } + ] + } + ], + "tools": [ + { + "name": "avrdude", + "version": "6.3.0-arduino17", + "systems": [ + { + "size": "219631", + "checksum": "SHA-256:2a8e68c5d803aa6f902ef219f177ec3a4c28275d85cbe272962ad2cd374f50d1", + "host": "arm-linux-gnueabihf", + "archiveFileName": "avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-armhf-pc-linux-gnu.tar.bz2" + }, + { + "size": "229852", + "checksum": "SHA-256:6cf948f751acfe7b96684537f2291c766ec8b54b4f7dc95539864821456fa9fc", + "host": "aarch64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-aarch64-pc-linux-gnu.tar.bz2" + }, + { + "size": "279045", + "checksum": "SHA-256:120cc9edaae699e7e9ac50b1b8eb0e7d51fdfa555bac54233c2511e6ee5418c9", + "host": "x86_64-apple-darwin12", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2" + }, + { + "size": "254271", + "checksum": "SHA-256:accdfb920af2aabf4f7461d2ac73c0751760f525216dc4e7657427a78c60d13d", + "host": "x86_64-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" + }, + { + "size": "244550", + "checksum": "SHA-256:5c8cc6c17db9300e1451fe41cd7178b0442b4490ee6fdbc0aed9811aef96c05f", + "host": "i686-linux-gnu", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-pc-linux-gnu.tar.bz2" + }, + { + "size": "328460", + "checksum": "SHA-256:e99188873c7c5ad8f8f906f068c33600e758b2e36cce3adbd518a21bd266749d", + "host": "i686-mingw32", + "archiveFileName": "avrdude-6.3.0-arduino17-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-i686-w64-mingw32.zip" + } + ] + }, + { + "name": "bossac", + "version": "1.6.1-arduino", + "systems": [ + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "archiveFileName": "bossac-1.6.1-arduino-arm-linux-gnueabihf.tar.bz2", + "checksum": "SHA-256:8c4e63db982178919c824e7a35580dffc95c3426afa7285de3eb583982d4d391", + "size": "201341" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-mingw32.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-mingw32.tar.gz", + "checksum": "SHA-256:d59f43e2e83a337d04c4ae88b195a4ee175b8d87fff4c43144d23412a4a9513b", + "size": "222918" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i386-apple-darwin14.5.0.tar.gz", + "checksum": "SHA-256:2f80ef569a3fb19da60ab3489e49d8fe7d4699876acf30ff4938c632230a09aa", + "size": "64587" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:b78afc66c00ccfdd69a08bd3959c260a0c64ccce78a71d5a1135ae4437ff40db", + "size": "30869" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "archiveFileName": "bossac-1.6.1-arduino-i486-linux-gnu.tar.gz", + "checksum": "SHA-256:1e211347569d75193b337296a10dd25b0ce04419e3d7dc644355178b6b514f92", + "size": "30320" + } + ] + }, + { + "name": "bossac", + "version": "1.7.0-arduino3", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-windows.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-windows.tar.gz", + "checksum": "SHA-256:62745cc5a98c26949ec9041ef20420643c561ec43e99dae659debf44e6836526", + "size": "3607421" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-osx.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-osx.tar.gz", + "checksum": "SHA-256:adb3c14debd397d8135e9e970215c6972f0e592c7af7532fa15f9ce5e64b991f", + "size": "75510" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux64.tar.gz", + "checksum": "SHA-256:1ae54999c1f97234a5c603eb99ad39313b11746a4ca517269a9285afa05f9100", + "size": "207271" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linux32.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linux32.tar.gz", + "checksum": "SHA-256:4ac4354746d1a09258f49a43ef4d1baf030d81c022f8434774268b00f55d3ec3", + "size": "193577" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxarm.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxarm.tar.gz", + "checksum": "SHA-256:626c6cc548046901143037b782bf019af1663bae0d78cf19181a876fb9abbb90", + "size": "193941" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.7.0-arduino3-linuxaarch64.tar.gz", + "checksum": "SHA-256:a098b2cc23e29f0dc468416210d097c4a808752cd5da1a7b9b8b7b931a04180b", + "size": "268365" + } + ] + }, + { + "name": "bossac", + "version": "1.9.1-arduino2", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-windows.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-windows.tar.gz", + "checksum": "SHA-256:5c994d04354f0db8e4bea136f49866d2ba537f0af74b2e78026f2d4fc75e3e39", + "size": "1260628" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-osx.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-osx.tar.gz", + "checksum": "SHA-256:b7732129364a378676604db6579c9b8dab50dd965fb50d7a3afff1839c97ff80", + "size": "47870" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux64.tar.gz", + "checksum": "SHA-256:9eb549874391521999cee13dc823a2cfc8866b8246945339a281808d99c72d2c", + "size": "399532" + }, + { + "host": "i686-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linux32.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linux32.tar.gz", + "checksum": "SHA-256:10d69f53f169f25afee2dd583dfd9dc803c10543e6c5260d106725cb0d174900", + "size": "384951" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxarm.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxarm.tar.gz", + "checksum": "SHA-256:c9539d161d23231b5beb1d09a71829744216c7f5bc2857a491999c3e567f5b19", + "size": "361915" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "archiveFileName": "bossac-1.9.1-arduino2-linuxaarch64.tar.gz", + "checksum": "SHA-256:c167fa0ea223966f4d21f5592da3888bcbfbae385be6c5c4e41f8abff35f5cb1", + "size": "442853" + } + ] + }, + { + "name": "openocd", + "version": "0.11.0-arduino2", + "systems": [ + { + "size": "1902818", + "checksum": "SHA-256:a1aa7f1435a61eafb72ee90722f2496d6a34a7a0f085d0315c2613e4a548b824", + "host": "aarch64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-aarch64-linux-gnu.tar.bz2" + }, + { + "size": "1986716", + "checksum": "SHA-256:57041130160be086e69387cceb4616eefc9819a0ef75de1f7c11aea57fb92699", + "host": "arm-linux-gnueabihf", + "archiveFileName": "openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-arm-linux-gnueabihf.tar.bz2" + }, + { + "size": "1971364", + "checksum": "SHA-256:6f4a8b77c8076aa18afb8438472526dff8c0d161a3ca68d0326163b59fcab663", + "host": "i686-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-ubuntu12.04-linux-gnu.tar.bz2" + }, + { + "size": "2460087", + "checksum": "SHA-256:631010980f12b1e750c4c67ce012b31c5953caabf4d30607d806e3d2b717d4b8", + "host": "i686-mingw32", + "archiveFileName": "openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-i686-w64-mingw32.zip" + }, + { + "size": "1893150", + "checksum": "SHA-256:280e7234eba84e830e92d791ebc685286f71d2bc1d3347f93605ef170d54fef4", + "host": "i386-apple-darwin11", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-apple-darwin13.tar.bz2" + }, + { + "size": "2052080", + "checksum": "SHA-256:4d19b6e3906de1434ec86841e0e3138235714c655d45f037c0fabfa5e5c0681b", + "host": "x86_64-linux-gnu", + "archiveFileName": "openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2", + "url": "http://downloads.arduino.cc/tools/openocd-0.11.0-arduino2-static-x86_64-ubuntu12.04-linux-gnu.tar.bz2" + } + ] + }, + { + "name": "dfu-util", + "version": "0.10.0-arduino1", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-osx.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-osx.tar.bz2", + "size": "73921", + "checksum": "SHA-256:7562d128036759605828d64b8d672d42445a8d95555c4b9ba339f73a1711a640" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm.tar.bz2", + "size": "272153", + "checksum": "SHA-256:f1e550f40c235356b7fde1c59447bfbab28f768915d3c14bd858fe0576bfc5a9" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-arm64.tar.bz2", + "size": "277886", + "checksum": "SHA-256:ebfbd21d3030c500da1f83b9aae5b8c597bee04c3bde1ce0a51b41abeafc9614" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux64.tar.bz2", + "size": "77184", + "checksum": "SHA-256:13ef2ec591c1e8b0b7eb0a05da972ecd6695016e7a9607e332c7553899af9b4a" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-linux32.tar.bz2", + "size": "81826", + "checksum": "SHA-256:43599ec60c000e9ef016970a496d6ab2cbbe5a8b7df9d06ef3114ecf83f9d123" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/dfu-util-0.10.0-arduino1-windows.tar.bz2", + "archiveFileName": "dfu-util-0.10.0-arduino1-windows.tar.bz2", + "size": "464314", + "checksum": "SHA-256:90816b669273ae796d734a2459c46bb340d4790783fd7aa01eb40c0443f1a9b1" + } + ] + }, + { + "name": "rp2040tools", + "version": "1.0.6", + "systems": [ + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-darwin_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-darwin_amd64.tar.bz2", + "size": "1717967", + "checksum": "SHA-256:4e32aa4b8f36db40a17bfbdfd34d80da91710e30c3887732bf0c0bf0b02840a7" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_arm.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_arm.tar.bz2", + "size": "8702508", + "checksum": "SHA-256:084a29accf0014bc79723fbb40057b95299c7ae63876f74494a077c987014cc3" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_arm64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_arm64.tar.bz2", + "size": "9037783", + "checksum": "SHA-256:1a2a6cb1abf1f7b8198d494c8d8e838700297d748877be8232e02aaa5ca8d0df" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_amd64.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_amd64.tar.bz2", + "size": "6108121", + "checksum": "SHA-256:6e2ea818db1ff57f2d8e1e3010fbc5bdb5f28ff44f5a68900cae41d7d709f738" + }, + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-linux_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-linux_386.tar.bz2", + "size": "6604083", + "checksum": "SHA-256:ef339e2e0f5c7d5464b9911b612c634767daba39a6be977a1ffa41c95b9827a1" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/rp2040tools-1.0.6-windows_386.tar.bz2", + "archiveFileName": "rp2040tools-1.0.6-windows_386.tar.bz2", + "size": "3145329", + "checksum": "SHA-256:26a5daebba68c2348dade33716a6e379ded89895ef0e49df1332964a724f6170" + } + ] + }, + { + "name": "esptool_py", + "version": "4.5.1", + "systems": [ + { + "host": "x86_64-pc-linux-gnu", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "aarch64-linux-gnu", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-src.tar.gz", + "archiveFileName": "esptool-v4.5.1-src.tar.gz", + "checksum": "SHA-256:aa06831a7d88d8ccde4ea21241e983a08dbdae967290e181658b0d18bffc8f86", + "size": "96922" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-macos.tar.gz", + "archiveFileName": "esptool-v4.5.1-macos.tar.gz", + "checksum": "SHA-256:78b52acfd51541ceb97cee893b7d4d49b8ddc284602be8c73ea47e3d849e0956", + "size": "5850888" + }, + { + "host": "x86_64-mingw32", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-win64.zip", + "archiveFileName": "esptool-v4.5.1-win64.zip", + "checksum": "SHA-256:64d0c24499d46b80d6bd7a05c98bdacc3455ab6d503cc2a99e35711310216045", + "size": "6638448" + }, + { + "host": "i686-mingw32", + "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.7/esptool-v4.5.1-win64.zip", + "archiveFileName": "esptool-v4.5.1-win64.zip", + "checksum": "SHA-256:64d0c24499d46b80d6bd7a05c98bdacc3455ab6d503cc2a99e35711310216045", + "size": "6638448" + } + ] + }, + { + "name": "arduino-fwuploader", + "version": "2.2.0", + "systems": [ + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_Windows_32bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.0_Windows_32bit.zip", + "checksum": "SHA-256:c0ff772702460fb5cbd8593f8ce731145d21fbf550342da556e45ef946c7d2f5", + "size": "7442444" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.0_macOS_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.0_macOS_64bit.tar.gz", + "checksum": "SHA-256:ce4444e92ba88c6b24736adb4b0b2b6c4241e4fb916945acbc7de6391d5bfe8c", + "size": "7301372" + } + ] + }, + { + "name": "arduino-fwuploader", + "version": "2.2.2", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_32bit.tar.gz", + "checksum": "SHA-256:503b9f8b24c6e396d09eb64f0e1f625c6f9aa5a90b01a50d7dec6477f4a866f0", + "size": "7262873" + }, + { + "host": "x86_64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_64bit.tar.gz", + "checksum": "SHA-256:8d77d0b33c8b0787fe3b80191709b69d638ef2a447d9853536cda35bfafd274b", + "size": "7306763" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_32bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.2_Windows_32bit.zip", + "checksum": "SHA-256:74ad9a5d369204b51be288c98d74f949ceb7a0c227ee64eb65ae179ec884c84c", + "size": "7450717" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Windows_64bit.zip", + "archiveFileName": "arduino-fwuploader_2.2.2_Windows_64bit.zip", + "checksum": "SHA-256:b25ac549cb0645166613c96cf899aebc541e482fe196aada6408bd7cff2c7d02", + "size": "7390999" + }, + { + "host": "x86_64-apple-darwin", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_macOS_64bit.tar.gz", + "checksum": "SHA-256:2cd6168ff470457b5124ba0faf118f315be2d1b9fb4fef43eb74370cd83620a2", + "size": "7306576" + }, + { + "host": "arm64-apple-darwin", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_macOS_ARM64.tar.gz", + "checksum": "SHA-256:10ae5614af4d82096b6ba0e1e07aab667fa140d2bf1d5e3407dd8ad4c6748195", + "size": "6878214" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARMv6.tar.gz", + "checksum": "SHA-256:5aadf6e50ffe620635faf941fdf82c0765c8cba4830951bb53267ad125fc5af8", + "size": "6940393" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/arduino-fwuploader/arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", + "archiveFileName": "arduino-fwuploader_2.2.2_Linux_ARM64.tar.gz", + "checksum": "SHA-256:6d11a4f4aa5a81de865f3d18ca395a2780fdbb1e1597a2b11b2b5329e09f30fd", + "size": "6829396" + } + ] + }, + { + "name": "fwupdater", + "version": "0.1.12", + "systems": [ + { + "host": "i686-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", + "checksum": "SHA-256:2fec2bdfd20ad4950bc9ba37108dc2a7c152f569174279c0697efe1f5a0db781", + "size": "26097546" + }, + { + "host": "x86_64-pc-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", + "checksum": "SHA-256:ce57d0afef30cb7d3513f5da326346c99d6bf4923bbc2200634086811f3fb31e", + "size": "26073327" + }, + { + "host": "i686-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_32bit.zip", + "archiveFileName": "FirmwareUploader_0.1.12_Windows_32bit.zip", + "checksum": "SHA-256:558568b453caa1c821def8cc6d34555d0c910eb7e7e871de3ae1c39ae6f01bdd", + "size": "25743641" + }, + { + "host": "x86_64-mingw32", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_64bit.zip", + "archiveFileName": "FirmwareUploader_0.1.12_Windows_64bit.zip", + "checksum": "SHA-256:ec16de33620985434280c92c3c322257b89bb67adf8fd4d5dd5f9467ea1e9e40", + "size": "25851428" + }, + { + "host": "i386-apple-darwin11", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", + "checksum": "SHA-256:a470361b57f86ddfcaecd274d844af51ee1d23a71cd6c26e30fcef2152d1a03f", + "size": "25792860" + }, + { + "host": "arm-linux-gnueabihf", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", + "checksum": "SHA-256:855fa0a9b942c3ee18906efc510bdfe30bf3334ff28ffbb476e648ff30033847", + "size": "25936245" + }, + { + "host": "aarch64-linux-gnu", + "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", + "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", + "checksum": "SHA-256:691461e64fe075e9a79801347c2bd895fb72f8f2c45a7cd49056c6ad9efe8fc4", + "size": "25967430" + } + ] + } + ] + } + ] +} diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index d8423b140..55ff6c2e4 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -188,16 +188,28 @@ func (t *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools } func (t *Tools) install(ctx context.Context, path, url, checksum string) (*tools.Operation, error) { - // Download + // Download the archive res, err := http.Get(url) if err != nil { return nil, err } defer res.Body.Close() - // Use a teereader to only read once var buffer bytes.Buffer - reader := io.TeeReader(res.Body, &buffer) + + // We copy the body of the response to a buffer to calculate the checksum + _, err = io.Copy(&buffer, res.Body) + if err != nil { + return nil, err + } + + // Check the checksum + sum := sha256.Sum256(buffer.Bytes()) + sumString := "SHA-256:" + hex.EncodeToString(sum[:sha256.Size]) + + if sumString != checksum { + return nil, errors.New("checksum of downloaded file doesn't match, expected: " + checksum + " got: " + sumString) + } safePath, err := utilities.SafeJoin(t.folder, path) if err != nil { @@ -210,20 +222,12 @@ func (t *Tools) install(ctx context.Context, path, url, checksum string) (*tools return nil, err } - err = extract.Archive(ctx, reader, t.folder, rename(path)) + err = extract.Archive(ctx, &buffer, t.folder, rename(path)) if err != nil { os.RemoveAll(safePath) return nil, err } - sum := sha256.Sum256(buffer.Bytes()) - sumString := "SHA-256:" + hex.EncodeToString(sum[:sha256.Size]) - - if sumString != checksum { - os.RemoveAll(safePath) - return nil, errors.New("checksum doesn't match") - } - // Write installed.json for retrocompatibility with v1 err = writeInstalled(t.folder, path) if err != nil { diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index fb3f67df8..ae76ebfa0 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -21,11 +21,13 @@ import ( "runtime" "strings" "testing" + "time" "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/gen/tools" "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/v2/pkgs" + "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/require" ) @@ -204,3 +206,71 @@ func TestInstalledHead(t *testing.T) { func strpoint(s string) *string { return &s } + +func TestInstall(t *testing.T) { + // Initialize indexes with a temp folder + tmp := t.TempDir() + + testIndex := &index.Resource{ + IndexFile: *paths.New("testdata", "test_tool_index.json"), + LastRefresh: time.Now(), + } + + tool := pkgs.New(testIndex, tmp) + + ctx := context.Background() + + testCases := []tools.ToolPayload{ + // https://github.com/arduino/arduino-create-agent/issues/920 + {Name: "avrdude", Version: "6.3.0-arduino17", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "bossac", Version: "1.6.1-arduino", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "bossac", Version: "1.7.0-arduino3", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "bossac", Version: "1.9.1-arduino2", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "openocd", Version: "0.11.0-arduino2", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "dfu-util", Version: "0.10.0-arduino1", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "rp2040tools", Version: "1.0.6", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "esptool_py", Version: "4.5.1", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + // At the moment we don't install these ones because they are packaged in a different way: they do not have a top level dir, causing the rename funcion to behave incorrectly + // {Name: "fwupdater", Version: "0.1.12", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + // {Name: "arduino-fwuploader", Version: "2.2.2", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + } + + expectedFiles := map[string][]string{ + "avrdude-6.3.0-arduino17": {"bin", "etc"}, + "bossac-1.6.1-arduino": {"bossac"}, + "bossac-1.7.0-arduino3": {"bossac"}, + "bossac-1.9.1-arduino2": {"bossac"}, + "openocd-0.11.0-arduino2": {"bin", "share"}, + "dfu-util-0.10.0-arduino1": {"dfu-prefix", "dfu-suffix", "dfu-util"}, + "rp2040tools-1.0.6": {"elf2uf2", "picotool", "pioasm", "rp2040load"}, + "esptool_py-4.5.1": {"esptool"}, + // "fwupdater-0.1.12": {"firmwares", "FirmwareUploader"}, // old legacy tool + // "arduino-fwuploader-2.2.2": {"arduino-fwuploader"}, + } + for _, tc := range testCases { + t.Run(tc.Name+"-"+tc.Version, func(t *testing.T) { + // Install the Tool + _, err := tool.Install(ctx, &tc) + require.NoError(t, err) + + // Check that the tool has been downloaded + toolDir := paths.New(tmp).Join("arduino-test", tc.Name, tc.Version) + require.DirExists(t, toolDir.String()) + + // Check that the files have been created + for _, file := range expectedFiles[tc.Name+"-"+tc.Version] { + filePath := toolDir.Join(file) + if filePath.IsDir() { + require.DirExists(t, filePath.String()) + } else { + if runtime.GOOS == "windows" { + require.FileExists(t, filePath.String()+".exe") + } else { + require.FileExists(t, filePath.String()) + } + } + } + }) + } + +} From ef266fa97cf52000f20589b349a3cfa5e7530c85 Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Wed, 20 Mar 2024 09:19:21 +0100 Subject: [PATCH 174/233] Add new items to the accepted CORS and remove register.arduino.cc (#926) --- main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 330a26199..2a4df151f 100755 --- a/main.go +++ b/main.go @@ -361,7 +361,8 @@ func loop() { "https://create.arduino.cc", "https://cloud.arduino.cc", "https://app.arduino.cc", - "https://register.arduino.cc", + "https://board-registration.arduino.cc", + "https://*.app.arduino.cc", } for i := 8990; i < 9001; i++ { From 5e37994cf00e1daa6f292ac808278516bfc955e9 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 20 Mar 2024 13:29:34 +0100 Subject: [PATCH 175/233] Implementation of port discovery through Pluggable discovery (#900) * Upgraded arduino-cli and replaced serialutils dep * Refined ports filter * Silenced linter warning * Use pointers in ports lists * Made spList a method of SpPortList * Renamed SpPortList in SerialPortList * Removed unneded initialization * Inlined discovery loop * Made updateSerialPortList a method of SerialPortList * Made enumerationLock private * Made portsLock (ex Mu) field private * Inlined function call * Made findPortByName a method of serialhub and moved near it * Inlined call to 'write' and removed the function * Removed unused ManufacutrerId and DeviceClass, renamed some fields * Simplified enumerateSerialPorts function * Removed redundant loggin of serial port list * Removed seriallist.go and inlined function calls * Make the singleton 'tools' a pointer * Implemented serial-discovery * Remove no more used 'Busy' field * Fixed error message --- .licensed.yml | 1 + .../arduino-cli/arduino/serialutils.dep.yml | 720 ------------------ .../arduino/go-properties-orderedmap.dep.yml | 350 +++++++++ .../arduino/go-serial-utils.dep.yml | 458 +++++++++++ .../v2.dep.yml} | 48 +- .../github.com/leonelquinteros/gotext.dep.yml | 34 - .../leonelquinteros/gotext/plurals.dep.yml | 35 - conn.go | 2 +- go.mod | 7 +- go.sum | 15 +- hub.go | 2 +- main.go | 64 +- serial.go | 215 ++++-- seriallist.go | 94 --- serialport.go | 12 +- upload/upload.go | 12 +- 16 files changed, 1027 insertions(+), 1042 deletions(-) delete mode 100644 .licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/arduino/go-properties-orderedmap.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml rename .licenses/arduino-create-agent/go/github.com/arduino/{arduino-cli/i18n.dep.yml => pluggable-discovery-protocol-handler/v2.dep.yml} (96%) delete mode 100644 .licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml delete mode 100644 .licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml delete mode 100755 seriallist.go diff --git a/.licensed.yml b/.licensed.yml index 5b784e9be..f0c02a90e 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -55,6 +55,7 @@ allowed: # The following are based on: https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses - gpl-1.0-or-later - gpl-1.0+ # Deprecated ID for `gpl-1.0-or-later` + - gpl-2.0 - gpl-2.0-or-later - gpl-2.0+ # Deprecated ID for `gpl-2.0-or-later` - gpl-3.0-only diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml deleted file mode 100644 index 6f6369958..000000000 --- a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/arduino/serialutils.dep.yml +++ /dev/null @@ -1,720 +0,0 @@ ---- -name: github.com/arduino/arduino-cli/arduino/serialutils -version: v0.35.0 -type: go -summary: -homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/arduino/serialutils -license: gpl-3.0-only -licenses: -- sources: arduino-cli@v0.35.0/LICENSE.txt - text: |2 - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for - software and other kinds of works. - - The licenses for most software and other practical works are designed - to take away your freedom to share and change the works. By contrast, - the GNU General Public License is intended to guarantee your freedom to - share and change all versions of a program--to make sure it remains free - software for all its users. We, the Free Software Foundation, use the - GNU General Public License for most of our software; it applies also to - any other work released this way by its authors. You can apply it to - your programs, too. - - When we speak of free software, we are referring to freedom, not - price. Our General Public Licenses are designed to make sure that you - have the freedom to distribute copies of free software (and charge for - them if you wish), that you receive source code or can get it if you - want it, that you can change the software or use pieces of it in new - free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you - these rights or asking you to surrender the rights. Therefore, you have - certain responsibilities if you distribute copies of the software, or if - you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether - gratis or for a fee, you must pass on to the recipients the same - freedoms that you received. You must make sure that they, too, receive - or can get the source code. And you must show them these terms so they - know their rights. - - Developers that use the GNU GPL protect your rights with two steps: - (1) assert copyright on the software, and (2) offer you this License - giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains - that there is no warranty for this free software. For both users' and - authors' sake, the GPL requires that modified versions be marked as - changed, so that their problems will not be attributed erroneously to - authors of previous versions. - - Some devices are designed to deny users access to install or run - modified versions of the software inside them, although the manufacturer - can do so. This is fundamentally incompatible with the aim of - protecting users' freedom to change the software. The systematic - pattern of such abuse occurs in the area of products for individuals to - use, which is precisely where it is most unacceptable. Therefore, we - have designed this version of the GPL to prohibit the practice for those - products. If such problems arise substantially in other domains, we - stand ready to extend this provision to those domains in future versions - of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. - States should not allow patents to restrict development and use of - software on general-purpose computers, but in those that do, we wish to - avoid the special danger that patents applied to a free program could - make it effectively proprietary. To prevent this, the GPL assures that - patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and - modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of - works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this - License. Each licensee is addressed as "you". "Licensees" and - "recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work - in a fashion requiring copyright permission, other than the making of an - exact copy. The resulting work is called a "modified version" of the - earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based - on the Program. - - To "propagate" a work means to do anything with it that, without - permission, would make you directly or secondarily liable for - infringement under applicable copyright law, except executing it on a - computer or modifying a private copy. Propagation includes copying, - distribution (with or without modification), making available to the - public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other - parties to make or receive copies. Mere interaction with a user through - a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" - to the extent that it includes a convenient and prominently visible - feature that (1) displays an appropriate copyright notice, and (2) - tells the user that there is no warranty for the work (except to the - extent that warranties are provided), that licensees may convey the - work under this License, and how to view a copy of this License. If - the interface presents a list of user commands or options, such as a - menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work - for making modifications to it. "Object code" means any non-source - form of a work. - - A "Standard Interface" means an interface that either is an official - standard defined by a recognized standards body, or, in the case of - interfaces specified for a particular programming language, one that - is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other - than the work as a whole, that (a) is included in the normal form of - packaging a Major Component, but which is not part of that Major - Component, and (b) serves only to enable use of the work with that - Major Component, or to implement a Standard Interface for which an - implementation is available to the public in source code form. A - "Major Component", in this context, means a major essential component - (kernel, window system, and so on) of the specific operating system - (if any) on which the executable work runs, or a compiler used to - produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all - the source code needed to generate, install, and (for an executable - work) run the object code and to modify the work, including scripts to - control those activities. However, it does not include the work's - System Libraries, or general-purpose tools or generally available free - programs which are used unmodified in performing those activities but - which are not part of the work. For example, Corresponding Source - includes interface definition files associated with source files for - the work, and the source code for shared libraries and dynamically - linked subprograms that the work is specifically designed to require, - such as by intimate data communication or control flow between those - subprograms and other parts of the work. - - The Corresponding Source need not include anything that users - can regenerate automatically from other parts of the Corresponding - Source. - - The Corresponding Source for a work in source code form is that - same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of - copyright on the Program, and are irrevocable provided the stated - conditions are met. This License explicitly affirms your unlimited - permission to run the unmodified Program. The output from running a - covered work is covered by this License only if the output, given its - content, constitutes a covered work. This License acknowledges your - rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not - convey, without conditions so long as your license otherwise remains - in force. You may convey covered works to others for the sole purpose - of having them make modifications exclusively for you, or provide you - with facilities for running those works, provided that you comply with - the terms of this License in conveying all material for which you do - not control copyright. Those thus making or running the covered works - for you must do so exclusively on your behalf, under your direction - and control, on terms that prohibit them from making any copies of - your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under - the conditions stated below. Sublicensing is not allowed; section 10 - makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological - measure under any applicable law fulfilling obligations under article - 11 of the WIPO copyright treaty adopted on 20 December 1996, or - similar laws prohibiting or restricting circumvention of such - measures. - - When you convey a covered work, you waive any legal power to forbid - circumvention of technological measures to the extent such circumvention - is effected by exercising rights under this License with respect to - the covered work, and you disclaim any intention to limit operation or - modification of the work as a means of enforcing, against the work's - users, your or third parties' legal rights to forbid circumvention of - technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you - receive it, in any medium, provided that you conspicuously and - appropriately publish on each copy an appropriate copyright notice; - keep intact all notices stating that this License and any - non-permissive terms added in accord with section 7 apply to the code; - keep intact all notices of the absence of any warranty; and give all - recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, - and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to - produce it from the Program, in the form of source code under the - terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent - works, which are not by their nature extensions of the covered work, - and which are not combined with it such as to form a larger program, - in or on a volume of a storage or distribution medium, is called an - "aggregate" if the compilation and its resulting copyright are not - used to limit the access or legal rights of the compilation's users - beyond what the individual works permit. Inclusion of a covered work - in an aggregate does not cause this License to apply to the other - parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms - of sections 4 and 5, provided that you also convey the - machine-readable Corresponding Source under the terms of this License, - in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded - from the Corresponding Source as a System Library, need not be - included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any - tangible personal property which is normally used for personal, family, - or household purposes, or (2) anything designed or sold for incorporation - into a dwelling. In determining whether a product is a consumer product, - doubtful cases shall be resolved in favor of coverage. For a particular - product received by a particular user, "normally used" refers to a - typical or common use of that class of product, regardless of the status - of the particular user or of the way in which the particular user - actually uses, or expects or is expected to use, the product. A product - is a consumer product regardless of whether the product has substantial - commercial, industrial or non-consumer uses, unless such uses represent - the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, - procedures, authorization keys, or other information required to install - and execute modified versions of a covered work in that User Product from - a modified version of its Corresponding Source. The information must - suffice to ensure that the continued functioning of the modified object - code is in no case prevented or interfered with solely because - modification has been made. - - If you convey an object code work under this section in, or with, or - specifically for use in, a User Product, and the conveying occurs as - part of a transaction in which the right of possession and use of the - User Product is transferred to the recipient in perpetuity or for a - fixed term (regardless of how the transaction is characterized), the - Corresponding Source conveyed under this section must be accompanied - by the Installation Information. But this requirement does not apply - if neither you nor any third party retains the ability to install - modified object code on the User Product (for example, the work has - been installed in ROM). - - The requirement to provide Installation Information does not include a - requirement to continue to provide support service, warranty, or updates - for a work that has been modified or installed by the recipient, or for - the User Product in which it has been modified or installed. Access to a - network may be denied when the modification itself materially and - adversely affects the operation of the network or violates the rules and - protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, - in accord with this section must be in a format that is publicly - documented (and with an implementation available to the public in - source code form), and must require no special password or key for - unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this - License by making exceptions from one or more of its conditions. - Additional permissions that are applicable to the entire Program shall - be treated as though they were included in this License, to the extent - that they are valid under applicable law. If additional permissions - apply only to part of the Program, that part may be used separately - under those permissions, but the entire Program remains governed by - this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option - remove any additional permissions from that copy, or from any part of - it. (Additional permissions may be written to require their own - removal in certain cases when you modify the work.) You may place - additional permissions on material, added by you to a covered work, - for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you - add to a covered work, you may (if authorized by the copyright holders of - that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further - restrictions" within the meaning of section 10. If the Program as you - received it, or any part of it, contains a notice stating that it is - governed by this License along with a term that is a further - restriction, you may remove that term. If a license document contains - a further restriction but permits relicensing or conveying under this - License, you may add to a covered work material governed by the terms - of that license document, provided that the further restriction does - not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you - must place, in the relevant source files, a statement of the - additional terms that apply to those files, or a notice indicating - where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the - form of a separately written license, or stated as exceptions; - the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly - provided under this License. Any attempt otherwise to propagate or - modify it is void, and will automatically terminate your rights under - this License (including any patent licenses granted under the third - paragraph of section 11). - - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly and - finally terminates your license, and (b) permanently, if the copyright - holder fails to notify you of the violation by some reasonable means - prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from that - copyright holder, and you cure the violation prior to 30 days after - your receipt of the notice. - - Termination of your rights under this section does not terminate the - licenses of parties who have received copies or rights from you under - this License. If your rights have been terminated and not permanently - reinstated, you do not qualify to receive new licenses for the same - material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or - run a copy of the Program. Ancillary propagation of a covered work - occurring solely as a consequence of using peer-to-peer transmission - to receive a copy likewise does not require acceptance. However, - nothing other than this License grants you permission to propagate or - modify any covered work. These actions infringe copyright if you do - not accept this License. Therefore, by modifying or propagating a - covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically - receives a license from the original licensors, to run, modify and - propagate that work, subject to this License. You are not responsible - for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an - organization, or substantially all assets of one, or subdividing an - organization, or merging organizations. If propagation of a covered - work results from an entity transaction, each party to that - transaction who receives a copy of the work also receives whatever - licenses to the work the party's predecessor in interest had or could - give under the previous paragraph, plus a right to possession of the - Corresponding Source of the work from the predecessor in interest, if - the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the - rights granted or affirmed under this License. For example, you may - not impose a license fee, royalty, or other charge for exercise of - rights granted under this License, and you may not initiate litigation - (including a cross-claim or counterclaim in a lawsuit) alleging that - any patent claim is infringed by making, using, selling, offering for - sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this - License of the Program or a work on which the Program is based. The - work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims - owned or controlled by the contributor, whether already acquired or - hereafter acquired, that would be infringed by some manner, permitted - by this License, of making, using, or selling its contributor version, - but do not include claims that would be infringed only as a - consequence of further modification of the contributor version. For - purposes of this definition, "control" includes the right to grant - patent sublicenses in a manner consistent with the requirements of - this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free - patent license under the contributor's essential patent claims, to - make, use, sell, offer for sale, import and otherwise run, modify and - propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express - agreement or commitment, however denominated, not to enforce a patent - (such as an express permission to practice a patent or covenant not to - sue for patent infringement). To "grant" such a patent license to a - party means to make such an agreement or commitment not to enforce a - patent against the party. - - If you convey a covered work, knowingly relying on a patent license, - and the Corresponding Source of the work is not available for anyone - to copy, free of charge and under the terms of this License, through a - publicly available network server or other readily accessible means, - then you must either (1) cause the Corresponding Source to be so - available, or (2) arrange to deprive yourself of the benefit of the - patent license for this particular work, or (3) arrange, in a manner - consistent with the requirements of this License, to extend the patent - license to downstream recipients. "Knowingly relying" means you have - actual knowledge that, but for the patent license, your conveying the - covered work in a country, or your recipient's use of the covered work - in a country, would infringe one or more identifiable patents in that - country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or - arrangement, you convey, or propagate by procuring conveyance of, a - covered work, and grant a patent license to some of the parties - receiving the covered work authorizing them to use, propagate, modify - or convey a specific copy of the covered work, then the patent license - you grant is automatically extended to all recipients of the covered - work and works based on it. - - A patent license is "discriminatory" if it does not include within - the scope of its coverage, prohibits the exercise of, or is - conditioned on the non-exercise of one or more of the rights that are - specifically granted under this License. You may not convey a covered - work if you are a party to an arrangement with a third party that is - in the business of distributing software, under which you make payment - to the third party based on the extent of your activity of conveying - the work, and under which the third party grants, to any of the - parties who would receive the covered work from you, a discriminatory - patent license (a) in connection with copies of the covered work - conveyed by you (or copies made from those copies), or (b) primarily - for and in connection with specific products or compilations that - contain the covered work, unless you entered into that arrangement, - or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting - any implied license or other defenses to infringement that may - otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or - otherwise) that contradict the conditions of this License, they do not - excuse you from the conditions of this License. If you cannot convey a - covered work so as to satisfy simultaneously your obligations under this - License and any other pertinent obligations, then as a consequence you may - not convey it at all. For example, if you agree to terms that obligate you - to collect a royalty for further conveying from those to whom you convey - the Program, the only way you could satisfy both those terms and this - License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have - permission to link or combine any covered work with a work licensed - under version 3 of the GNU Affero General Public License into a single - combined work, and to convey the resulting work. The terms of this - License will continue to apply to the part which is the covered work, - but the special requirements of the GNU Affero General Public License, - section 13, concerning interaction through a network will apply to the - combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of - the GNU General Public License from time to time. Such new versions will - be similar in spirit to the present version, but may differ in detail to - address new problems or concerns. - - Each version is given a distinguishing version number. If the - Program specifies that a certain numbered version of the GNU General - Public License "or any later version" applies to it, you have the - option of following the terms and conditions either of that numbered - version or of any later version published by the Free Software - Foundation. If the Program does not specify a version number of the - GNU General Public License, you may choose any version ever published - by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future - versions of the GNU General Public License can be used, that proxy's - public statement of acceptance of a version permanently authorizes you - to choose that version for the Program. - - Later license versions may give you additional or different - permissions. However, no additional obligations are imposed on any - author or copyright holder as a result of your choosing to follow a - later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY - APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT - HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY - OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM - IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF - ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS - THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY - GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE - USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF - DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD - PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), - EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided - above cannot be given local legal effect according to their terms, - reviewing courts shall apply local law that most closely approximates - an absolute waiver of all civil liability in connection with the - Program, unless a warranty or assumption of liability accompanies a - copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest - possible use to the public, the best way to achieve this is to make it - free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest - to attach them to the start of each source file to most effectively - state the exclusion of warranty; and each file should have at least - the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - - Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short - notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - - The hypothetical commands `show w' and `show c' should show the appropriate - parts of the General Public License. Of course, your program's commands - might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, - if any, to sign a "copyright disclaimer" for the program, if necessary. - For more information on this, and how to apply and follow the GNU GPL, see - . - - The GNU General Public License does not permit incorporating your program - into proprietary programs. If your program is a subroutine library, you - may consider it more useful to permit linking proprietary applications with - the library. If this is what you want to do, use the GNU Lesser General - Public License instead of this License. But first, please read - . -- sources: arduino-cli@v0.35.0/license_header.tpl - text: | - This file is part of arduino-cli. - - Copyright{{ if .Year }} {{.Year}}{{ end }} {{.Holder}} - - This software is released under the GNU General Public License version 3, - which covers the main part of arduino-cli. - The terms of this license can be found at: - https://www.gnu.org/licenses/gpl-3.0.en.html - - You can be released from the requirements of the above licenses by purchasing - a commercial license. Buying such a license is mandatory if you want to - modify or otherwise use the software for commercial activities involving the - Arduino software without disclosing the source code of your own applications. - To purchase a commercial license, send an email to license@arduino.cc. -- sources: arduino-cli@v0.35.0/README.md - text: |- - Arduino CLI is licensed under the [GPL 3.0] license. - - You can be released from the requirements of the above license by purchasing a commercial license. Buying such a license - is mandatory if you want to modify or otherwise use the software for commercial activities involving the Arduino - software without disclosing the source code of your own applications. To purchase a commercial license, send an email to - license@arduino.cc - - [install]: https://arduino.github.io/arduino-cli/latest/installation - [user documentation]: https://arduino.github.io/arduino-cli/latest/ - [getting started]: https://arduino.github.io/arduino-cli/latest/getting-started/ - [commands reference]: https://arduino.github.io/arduino-cli/latest/commands/arduino-cli - [faq]: https://arduino.github.io/arduino-cli/latest/FAQ/ - [how to contribute]: https://arduino.github.io/arduino-cli/latest/CONTRIBUTING/ - [contributors]: https://github.com/arduino/arduino-cli/graphs/contributors - [nightly builds]: https://arduino.github.io/arduino-cli/latest/installation/#nightly-builds - [security policy]: https://github.com/arduino/arduino-cli/security/policy - [gpl 3.0]: https://www.gnu.org/licenses/gpl-3.0.en.html -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-properties-orderedmap.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-properties-orderedmap.dep.yml new file mode 100644 index 000000000..d7e78f9e6 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-properties-orderedmap.dep.yml @@ -0,0 +1,350 @@ +--- +name: github.com/arduino/go-properties-orderedmap +version: v1.8.0 +type: go +summary: Package properties is a library for handling maps of hierarchical properties. +homepage: https://pkg.go.dev/github.com/arduino/go-properties-orderedmap +license: gpl-2.0 +licenses: +- sources: LICENSE + text: |2 + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software--to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Lesser General Public License instead.) You can apply it to + your programs, too. + + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The "Program", below, + refers to any such program or work, and a "work based on the Program" + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term "modification".) Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, the commands you use may + be called something other than `show w' and `show c'; they could even be + mouse-clicks or menu items--whatever suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml new file mode 100644 index 000000000..d80310c77 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml @@ -0,0 +1,458 @@ +--- +name: github.com/arduino/go-serial-utils +version: v0.1.2 +type: go +summary: +homepage: https://pkg.go.dev/github.com/arduino/go-serial-utils +license: gpl-3.0 +licenses: +- sources: LICENSE.txt + text: "This file includes licensing information for \n\nCopyright (c) 2024 ARDUINO + SA (www.arduino.cc)\n\nThe software is released under the GNU General Public License, + which covers the main body\nof the arduino-cli code. The terms of this license + can be found at:\nhttps://www.gnu.org/licenses/gpl-3.0.en.html\n\nYou can be released + from the requirements of the above licenses by purchasing\na commercial license. + Buying such a license is mandatory if you want to modify or\notherwise use the + software for commercial activities involving the Arduino\nsoftware without disclosing + the source code of your own applications. To purchase\na commercial license, send + an email to license@arduino.cc\n\n GNU GENERAL PUBLIC LICENSE\n + \ Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software + Foundation, Inc. \n Everyone is permitted to copy and distribute + verbatim copies\n of this license document, but changing it is not allowed.\n\n + \ Preamble\n\n The GNU General Public License is a + free, copyleft license for\nsoftware and other kinds of works.\n\n The licenses + for most software and other practical works are designed\nto take away your freedom + to share and change the works. By contrast,\nthe GNU General Public License is + intended to guarantee your freedom to\nshare and change all versions of a program--to + make sure it remains free\nsoftware for all its users. We, the Free Software + Foundation, use the\nGNU General Public License for most of our software; it applies + also to\nany other work released this way by its authors. You can apply it to\nyour + programs, too.\n\n When we speak of free software, we are referring to freedom, + not\nprice. Our General Public Licenses are designed to make sure that you\nhave + the freedom to distribute copies of free software (and charge for\nthem if you + wish), that you receive source code or can get it if you\nwant it, that you can + change the software or use pieces of it in new\nfree programs, and that you know + you can do these things.\n\n To protect your rights, we need to prevent others + from denying you\nthese rights or asking you to surrender the rights. Therefore, + you have\ncertain responsibilities if you distribute copies of the software, or + if\nyou modify it: responsibilities to respect the freedom of others.\n\n For + example, if you distribute copies of such a program, whether\ngratis or for a + fee, you must pass on to the recipients the same\nfreedoms that you received. + \ You must make sure that they, too, receive\nor can get the source code. And + you must show them these terms so they\nknow their rights.\n\n Developers that + use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the + software, and (2) offer you this License\ngiving you legal permission to copy, + distribute and/or modify it.\n\n For the developers' and authors' protection, + the GPL clearly explains\nthat there is no warranty for this free software. For + both users' and\nauthors' sake, the GPL requires that modified versions be marked + as\nchanged, so that their problems will not be attributed erroneously to\nauthors + of previous versions.\n\n Some devices are designed to deny users access to install + or run\nmodified versions of the software inside them, although the manufacturer\ncan + do so. This is fundamentally incompatible with the aim of\nprotecting users' + freedom to change the software. The systematic\npattern of such abuse occurs + in the area of products for individuals to\nuse, which is precisely where it is + most unacceptable. Therefore, we\nhave designed this version of the GPL to prohibit + the practice for those\nproducts. If such problems arise substantially in other + domains, we\nstand ready to extend this provision to those domains in future versions\nof + the GPL, as needed to protect the freedom of users.\n\n Finally, every program + is threatened constantly by software patents.\nStates should not allow patents + to restrict development and use of\nsoftware on general-purpose computers, but + in those that do, we wish to\navoid the special danger that patents applied to + a free program could\nmake it effectively proprietary. To prevent this, the GPL + assures that\npatents cannot be used to render the program non-free.\n\n The + precise terms and conditions for copying, distribution and\nmodification follow.\n\n + \ TERMS AND CONDITIONS\n\n 0. Definitions.\n\n \"This License\" + refers to version 3 of the GNU General Public License.\n\n \"Copyright\" also + means copyright-like laws that apply to other kinds of\nworks, such as semiconductor + masks.\n\n \"The Program\" refers to any copyrightable work licensed under this\nLicense. + \ Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may + be individuals or organizations.\n\n To \"modify\" a work means to copy from + or adapt all or part of the work\nin a fashion requiring copyright permission, + other than the making of an\nexact copy. The resulting work is called a \"modified + version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n A + \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n + \ To \"propagate\" a work means to do anything with it that, without\npermission, + would make you directly or secondarily liable for\ninfringement under applicable + copyright law, except executing it on a\ncomputer or modifying a private copy. + \ Propagation includes copying,\ndistribution (with or without modification), + making available to the\npublic, and in some countries other activities as well.\n\n + \ To \"convey\" a work means any kind of propagation that enables other\nparties + to make or receive copies. Mere interaction with a user through\na computer network, + with no transfer of a copy, is not conveying.\n\n An interactive user interface + displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient + and prominently visible\nfeature that (1) displays an appropriate copyright notice, + and (2)\ntells the user that there is no warranty for the work (except to the\nextent + that warranties are provided), that licensees may convey the\nwork under this + License, and how to view a copy of this License. If\nthe interface presents a + list of user commands or options, such as a\nmenu, a prominent item in the list + meets this criterion.\n\n 1. Source Code.\n\n The \"source code\" for a work + means the preferred form of the work\nfor making modifications to it. \"Object + code\" means any non-source\nform of a work.\n\n A \"Standard Interface\" means + an interface that either is an official\nstandard defined by a recognized standards + body, or, in the case of\ninterfaces specified for a particular programming language, + one that\nis widely used among developers working in that language.\n\n The \"System + Libraries\" of an executable work include anything, other\nthan the work as a + whole, that (a) is included in the normal form of\npackaging a Major Component, + but which is not part of that Major\nComponent, and (b) serves only to enable + use of the work with that\nMajor Component, or to implement a Standard Interface + for which an\nimplementation is available to the public in source code form. A\n\"Major + Component\", in this context, means a major essential component\n(kernel, window + system, and so on) of the specific operating system\n(if any) on which the executable + work runs, or a compiler used to\nproduce the work, or an object code interpreter + used to run it.\n\n The \"Corresponding Source\" for a work in object code form + means all\nthe source code needed to generate, install, and (for an executable\nwork) + run the object code and to modify the work, including scripts to\ncontrol those + activities. However, it does not include the work's\nSystem Libraries, or general-purpose + tools or generally available free\nprograms which are used unmodified in performing + those activities but\nwhich are not part of the work. For example, Corresponding + Source\nincludes interface definition files associated with source files for\nthe + work, and the source code for shared libraries and dynamically\nlinked subprograms + that the work is specifically designed to require,\nsuch as by intimate data communication + or control flow between those\nsubprograms and other parts of the work.\n\n The + Corresponding Source need not include anything that users\ncan regenerate automatically + from other parts of the Corresponding\nSource.\n\n The Corresponding Source for + a work in source code form is that\nsame work.\n\n 2. Basic Permissions.\n\n + \ All rights granted under this License are granted for the term of\ncopyright + on the Program, and are irrevocable provided the stated\nconditions are met. This + License explicitly affirms your unlimited\npermission to run the unmodified Program. + \ The output from running a\ncovered work is covered by this License only if the + output, given its\ncontent, constitutes a covered work. This License acknowledges + your\nrights of fair use or other equivalent, as provided by copyright law.\n\n + \ You may make, run and propagate covered works that you do not\nconvey, without + conditions so long as your license otherwise remains\nin force. You may convey + covered works to others for the sole purpose\nof having them make modifications + exclusively for you, or provide you\nwith facilities for running those works, + provided that you comply with\nthe terms of this License in conveying all material + for which you do\nnot control copyright. Those thus making or running the covered + works\nfor you must do so exclusively on your behalf, under your direction\nand + control, on terms that prohibit them from making any copies of\nyour copyrighted + material outside their relationship with you.\n\n Conveying under any other circumstances + is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; + section 10\nmakes it unnecessary.\n\n 3. Protecting Users' Legal Rights From + Anti-Circumvention Law.\n\n No covered work shall be deemed part of an effective + technological\nmeasure under any applicable law fulfilling obligations under article\n11 + of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting + or restricting circumvention of such\nmeasures.\n\n When you convey a covered + work, you waive any legal power to forbid\ncircumvention of technological measures + to the extent such circumvention\nis effected by exercising rights under this + License with respect to\nthe covered work, and you disclaim any intention to limit + operation or\nmodification of the work as a means of enforcing, against the work's\nusers, + your or third parties' legal rights to forbid circumvention of\ntechnological + measures.\n\n 4. Conveying Verbatim Copies.\n\n You may convey verbatim copies + of the Program's source code as you\nreceive it, in any medium, provided that + you conspicuously and\nappropriately publish on each copy an appropriate copyright + notice;\nkeep intact all notices stating that this License and any\nnon-permissive + terms added in accord with section 7 apply to the code;\nkeep intact all notices + of the absence of any warranty; and give all\nrecipients a copy of this License + along with the Program.\n\n You may charge any price or no price for each copy + that you convey,\nand you may offer support or warranty protection for a fee.\n\n + \ 5. Conveying Modified Source Versions.\n\n You may convey a work based on the + Program, or the modifications to\nproduce it from the Program, in the form of + source code under the\nterms of section 4, provided that you also meet all of + these conditions:\n\n a) The work must carry prominent notices stating that + you modified\n it, and giving a relevant date.\n\n b) The work must carry + prominent notices stating that it is\n released under this License and any + conditions added under section\n 7. This requirement modifies the requirement + in section 4 to\n \"keep intact all notices\".\n\n c) You must license the + entire work, as a whole, under this\n License to anyone who comes into possession + of a copy. This\n License will therefore apply, along with any applicable + section 7\n additional terms, to the whole of the work, and all its parts,\n + \ regardless of how they are packaged. This License gives no\n permission + to license the work in any other way, but it does not\n invalidate such permission + if you have separately received it.\n\n d) If the work has interactive user + interfaces, each must display\n Appropriate Legal Notices; however, if the + Program has interactive\n interfaces that do not display Appropriate Legal + Notices, your\n work need not make them do so.\n\n A compilation of a covered + work with other separate and independent\nworks, which are not by their nature + extensions of the covered work,\nand which are not combined with it such as to + form a larger program,\nin or on a volume of a storage or distribution medium, + is called an\n\"aggregate\" if the compilation and its resulting copyright are + not\nused to limit the access or legal rights of the compilation's users\nbeyond + what the individual works permit. Inclusion of a covered work\nin an aggregate + does not cause this License to apply to the other\nparts of the aggregate.\n\n + \ 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object + code form under the terms\nof sections 4 and 5, provided that you also convey + the\nmachine-readable Corresponding Source under the terms of this License,\nin + one of these ways:\n\n a) Convey the object code in, or embodied in, a physical + product\n (including a physical distribution medium), accompanied by the\n + \ Corresponding Source fixed on a durable physical medium\n customarily used + for software interchange.\n\n b) Convey the object code in, or embodied in, + a physical product\n (including a physical distribution medium), accompanied + by a\n written offer, valid for at least three years and valid for as\n long + as you offer spare parts or customer support for that product\n model, to give + anyone who possesses the object code either (1) a\n copy of the Corresponding + Source for all the software in the\n product that is covered by this License, + on a durable physical\n medium customarily used for software interchange, for + a price no\n more than your reasonable cost of physically performing this\n + \ conveying of source, or (2) access to copy the\n Corresponding Source from + a network server at no charge.\n\n c) Convey individual copies of the object + code with a copy of the\n written offer to provide the Corresponding Source. + \ This\n alternative is allowed only occasionally and noncommercially, and\n + \ only if you received the object code with such an offer, in accord\n with + subsection 6b.\n\n d) Convey the object code by offering access from a designated\n + \ place (gratis or for a charge), and offer equivalent access to the\n Corresponding + Source in the same way through the same place at no\n further charge. You + need not require recipients to copy the\n Corresponding Source along with the + object code. If the place to\n copy the object code is a network server, the + Corresponding Source\n may be on a different server (operated by you or a third + party)\n that supports equivalent copying facilities, provided you maintain\n + \ clear directions next to the object code saying where to find the\n Corresponding + Source. Regardless of what server hosts the\n Corresponding Source, you remain + obligated to ensure that it is\n available for as long as needed to satisfy + these requirements.\n\n e) Convey the object code using peer-to-peer transmission, + provided\n you inform other peers where the object code and Corresponding\n + \ Source of the work are being offered to the general public at no\n charge + under subsection 6d.\n\n A separable portion of the object code, whose source + code is excluded\nfrom the Corresponding Source as a System Library, need not + be\nincluded in conveying the object code work.\n\n A \"User Product\" is either + (1) a \"consumer product\", which means any\ntangible personal property which + is normally used for personal, family,\nor household purposes, or (2) anything + designed or sold for incorporation\ninto a dwelling. In determining whether a + product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. + \ For a particular\nproduct received by a particular user, \"normally used\" refers + to a\ntypical or common use of that class of product, regardless of the status\nof + the particular user or of the way in which the particular user\nactually uses, + or expects or is expected to use, the product. A product\nis a consumer product + regardless of whether the product has substantial\ncommercial, industrial or non-consumer + uses, unless such uses represent\nthe only significant mode of use of the product.\n\n + \ \"Installation Information\" for a User Product means any methods,\nprocedures, + authorization keys, or other information required to install\nand execute modified + versions of a covered work in that User Product from\na modified version of its + Corresponding Source. The information must\nsuffice to ensure that the continued + functioning of the modified object\ncode is in no case prevented or interfered + with solely because\nmodification has been made.\n\n If you convey an object + code work under this section in, or with, or\nspecifically for use in, a User + Product, and the conveying occurs as\npart of a transaction in which the right + of possession and use of the\nUser Product is transferred to the recipient in + perpetuity or for a\nfixed term (regardless of how the transaction is characterized), + the\nCorresponding Source conveyed under this section must be accompanied\nby + the Installation Information. But this requirement does not apply\nif neither + you nor any third party retains the ability to install\nmodified object code on + the User Product (for example, the work has\nbeen installed in ROM).\n\n The + requirement to provide Installation Information does not include a\nrequirement + to continue to provide support service, warranty, or updates\nfor a work that + has been modified or installed by the recipient, or for\nthe User Product in which + it has been modified or installed. Access to a\nnetwork may be denied when the + modification itself materially and\nadversely affects the operation of the network + or violates the rules and\nprotocols for communication across the network.\n\n + \ Corresponding Source conveyed, and Installation Information provided,\nin accord + with this section must be in a format that is publicly\ndocumented (and with an + implementation available to the public in\nsource code form), and must require + no special password or key for\nunpacking, reading or copying.\n\n 7. Additional + Terms.\n\n \"Additional permissions\" are terms that supplement the terms of + this\nLicense by making exceptions from one or more of its conditions.\nAdditional + permissions that are applicable to the entire Program shall\nbe treated as though + they were included in this License, to the extent\nthat they are valid under applicable + law. If additional permissions\napply only to part of the Program, that part + may be used separately\nunder those permissions, but the entire Program remains + governed by\nthis License without regard to the additional permissions.\n\n When + you convey a copy of a covered work, you may at your option\nremove any additional + permissions from that copy, or from any part of\nit. (Additional permissions + may be written to require their own\nremoval in certain cases when you modify + the work.) You may place\nadditional permissions on material, added by you to + a covered work,\nfor which you have or can give appropriate copyright permission.\n\n + \ Notwithstanding any other provision of this License, for material you\nadd to + a covered work, you may (if authorized by the copyright holders of\nthat material) + supplement the terms of this License with terms:\n\n a) Disclaiming warranty + or limiting liability differently from the\n terms of sections 15 and 16 of + this License; or\n\n b) Requiring preservation of specified reasonable legal + notices or\n author attributions in that material or in the Appropriate Legal\n + \ Notices displayed by works containing it; or\n\n c) Prohibiting misrepresentation + of the origin of that material, or\n requiring that modified versions of such + material be marked in\n reasonable ways as different from the original version; + or\n\n d) Limiting the use for publicity purposes of names of licensors or\n + \ authors of the material; or\n\n e) Declining to grant rights under trademark + law for use of some\n trade names, trademarks, or service marks; or\n\n f) + Requiring indemnification of licensors and authors of that\n material by anyone + who conveys the material (or modified versions of\n it) with contractual assumptions + of liability to the recipient, for\n any liability that these contractual assumptions + directly impose on\n those licensors and authors.\n\n All other non-permissive + additional terms are considered \"further\nrestrictions\" within the meaning of + section 10. If the Program as you\nreceived it, or any part of it, contains a + notice stating that it is\ngoverned by this License along with a term that is + a further\nrestriction, you may remove that term. If a license document contains\na + further restriction but permits relicensing or conveying under this\nLicense, + you may add to a covered work material governed by the terms\nof that license + document, provided that the further restriction does\nnot survive such relicensing + or conveying.\n\n If you add terms to a covered work in accord with this section, + you\nmust place, in the relevant source files, a statement of the\nadditional + terms that apply to those files, or a notice indicating\nwhere to find the applicable + terms.\n\n Additional terms, permissive or non-permissive, may be stated in the\nform + of a separately written license, or stated as exceptions;\nthe above requirements + apply either way.\n\n 8. Termination.\n\n You may not propagate or modify a + covered work except as expressly\nprovided under this License. Any attempt otherwise + to propagate or\nmodify it is void, and will automatically terminate your rights + under\nthis License (including any patent licenses granted under the third\nparagraph + of section 11).\n\n However, if you cease all violation of this License, then + your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, + unless and until the copyright holder explicitly and\nfinally terminates your + license, and (b) permanently, if the copyright\nholder fails to notify you of + the violation by some reasonable means\nprior to 60 days after the cessation.\n\n + \ Moreover, your license from a particular copyright holder is\nreinstated permanently + if the copyright holder notifies you of the\nviolation by some reasonable means, + this is the first time you have\nreceived notice of violation of this License + (for any work) from that\ncopyright holder, and you cure the violation prior to + 30 days after\nyour receipt of the notice.\n\n Termination of your rights under + this section does not terminate the\nlicenses of parties who have received copies + or rights from you under\nthis License. If your rights have been terminated and + not permanently\nreinstated, you do not qualify to receive new licenses for the + same\nmaterial under section 10.\n\n 9. Acceptance Not Required for Having Copies.\n\n + \ You are not required to accept this License in order to receive or\nrun a copy + of the Program. Ancillary propagation of a covered work\noccurring solely as + a consequence of using peer-to-peer transmission\nto receive a copy likewise does + not require acceptance. However,\nnothing other than this License grants you + permission to propagate or\nmodify any covered work. These actions infringe copyright + if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered + work, you indicate your acceptance of this License to do so.\n\n 10. Automatic + Licensing of Downstream Recipients.\n\n Each time you convey a covered work, + the recipient automatically\nreceives a license from the original licensors, to + run, modify and\npropagate that work, subject to this License. You are not responsible\nfor + enforcing compliance by third parties with this License.\n\n An \"entity transaction\" + is a transaction transferring control of an\norganization, or substantially all + assets of one, or subdividing an\norganization, or merging organizations. If + propagation of a covered\nwork results from an entity transaction, each party + to that\ntransaction who receives a copy of the work also receives whatever\nlicenses + to the work the party's predecessor in interest had or could\ngive under the previous + paragraph, plus a right to possession of the\nCorresponding Source of the work + from the predecessor in interest, if\nthe predecessor has it or can get it with + reasonable efforts.\n\n You may not impose any further restrictions on the exercise + of the\nrights granted or affirmed under this License. For example, you may\nnot + impose a license fee, royalty, or other charge for exercise of\nrights granted + under this License, and you may not initiate litigation\n(including a cross-claim + or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by + making, using, selling, offering for\nsale, or importing the Program or any portion + of it.\n\n 11. Patents.\n\n A \"contributor\" is a copyright holder who authorizes + use under this\nLicense of the Program or a work on which the Program is based. + \ The\nwork thus licensed is called the contributor's \"contributor version\".\n\n + \ A contributor's \"essential patent claims\" are all patent claims\nowned or + controlled by the contributor, whether already acquired or\nhereafter acquired, + that would be infringed by some manner, permitted\nby this License, of making, + using, or selling its contributor version,\nbut do not include claims that would + be infringed only as a\nconsequence of further modification of the contributor + version. For\npurposes of this definition, \"control\" includes the right to + grant\npatent sublicenses in a manner consistent with the requirements of\nthis + License.\n\n Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent + license under the contributor's essential patent claims, to\nmake, use, sell, + offer for sale, import and otherwise run, modify and\npropagate the contents of + its contributor version.\n\n In the following three paragraphs, a \"patent license\" + is any express\nagreement or commitment, however denominated, not to enforce a + patent\n(such as an express permission to practice a patent or covenant not to\nsue + for patent infringement). To \"grant\" such a patent license to a\nparty means + to make such an agreement or commitment not to enforce a\npatent against the party.\n\n + \ If you convey a covered work, knowingly relying on a patent license,\nand the + Corresponding Source of the work is not available for anyone\nto copy, free of + charge and under the terms of this License, through a\npublicly available network + server or other readily accessible means,\nthen you must either (1) cause the + Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of + the benefit of the\npatent license for this particular work, or (3) arrange, in + a manner\nconsistent with the requirements of this License, to extend the patent\nlicense + to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge + that, but for the patent license, your conveying the\ncovered work in a country, + or your recipient's use of the covered work\nin a country, would infringe one + or more identifiable patents in that\ncountry that you have reason to believe + are valid.\n\n If, pursuant to or in connection with a single transaction or\narrangement, + you convey, or propagate by procuring conveyance of, a\ncovered work, and grant + a patent license to some of the parties\nreceiving the covered work authorizing + them to use, propagate, modify\nor convey a specific copy of the covered work, + then the patent license\nyou grant is automatically extended to all recipients + of the covered\nwork and works based on it.\n\n A patent license is \"discriminatory\" + if it does not include within\nthe scope of its coverage, prohibits the exercise + of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically + granted under this License. You may not convey a covered\nwork if you are a party + to an arrangement with a third party that is\nin the business of distributing + software, under which you make payment\nto the third party based on the extent + of your activity of conveying\nthe work, and under which the third party grants, + to any of the\nparties who would receive the covered work from you, a discriminatory\npatent + license (a) in connection with copies of the covered work\nconveyed by you (or + copies made from those copies), or (b) primarily\nfor and in connection with specific + products or compilations that\ncontain the covered work, unless you entered into + that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n + \ Nothing in this License shall be construed as excluding or limiting\nany implied + license or other defenses to infringement that may\notherwise be available to + you under applicable patent law.\n\n 12. No Surrender of Others' Freedom.\n\n + \ If conditions are imposed on you (whether by court order, agreement or\notherwise) + that contradict the conditions of this License, they do not\nexcuse you from the + conditions of this License. If you cannot convey a\ncovered work so as to satisfy + simultaneously your obligations under this\nLicense and any other pertinent obligations, + then as a consequence you may\nnot convey it at all. For example, if you agree + to terms that obligate you\nto collect a royalty for further conveying from those + to whom you convey\nthe Program, the only way you could satisfy both those terms + and this\nLicense would be to refrain entirely from conveying the Program.\n\n + \ 13. Use with the GNU Affero General Public License.\n\n Notwithstanding any + other provision of this License, you have\npermission to link or combine any covered + work with a work licensed\nunder version 3 of the GNU Affero General Public License + into a single\ncombined work, and to convey the resulting work. The terms of + this\nLicense will continue to apply to the part which is the covered work,\nbut + the special requirements of the GNU Affero General Public License,\nsection 13, + concerning interaction through a network will apply to the\ncombination as such.\n\n + \ 14. Revised Versions of this License.\n\n The Free Software Foundation may + publish revised and/or new versions of\nthe GNU General Public License from time + to time. Such new versions will\nbe similar in spirit to the present version, + but may differ in detail to\naddress new problems or concerns.\n\n Each version + is given a distinguishing version number. If the\nProgram specifies that a certain + numbered version of the GNU General\nPublic License \"or any later version\" applies + to it, you have the\noption of following the terms and conditions either of that + numbered\nversion or of any later version published by the Free Software\nFoundation. + \ If the Program does not specify a version number of the\nGNU General Public + License, you may choose any version ever published\nby the Free Software Foundation.\n\n + \ If the Program specifies that a proxy can decide which future\nversions of the + GNU General Public License can be used, that proxy's\npublic statement of acceptance + of a version permanently authorizes you\nto choose that version for the Program.\n\n + \ Later license versions may give you additional or different\npermissions. However, + no additional obligations are imposed on any\nauthor or copyright holder as a + result of your choosing to follow a\nlater version.\n\n 15. Disclaimer of Warranty.\n\n + \ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE + LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER + PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND + PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, + YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n 16. + Limitation of Liability.\n\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR + AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES + AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT + OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS + OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES + OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH + HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n + \ 17. Interpretation of Sections 15 and 16.\n\n If the disclaimer of warranty + and limitation of liability provided\nabove cannot be given local legal effect + according to their terms,\nreviewing courts shall apply local law that most closely + approximates\nan absolute waiver of all civil liability in connection with the\nProgram, + unless a warranty or assumption of liability accompanies a\ncopy of the Program + in return for a fee.\n\n END OF TERMS AND CONDITIONS\n\n How + to Apply These Terms to Your New Programs\n\n If you develop a new program, and + you want it to be of the greatest\npossible use to the public, the best way to + achieve this is to make it\nfree software which everyone can redistribute and + change under these terms.\n\n To do so, attach the following notices to the program. + \ It is safest\nto attach them to the start of each source file to most effectively\nstate + the exclusion of warranty; and each file should have at least\nthe \"copyright\" + line and a pointer to where the full notice is found.\n\n \n Copyright (C) + \ \n\n This program is free software: you can redistribute + it and/or modify\n it under the terms of the GNU General Public License as + published by\n the Free Software Foundation, either version 3 of the License, + or\n (at your option) any later version.\n\n This program is distributed + in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even + the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + \ See the\n GNU General Public License for more details.\n\n You should + have received a copy of the GNU General Public License\n along with this program. + \ If not, see .\n\nAlso add information on how + to contact you by electronic and paper mail.\n\n If the program does terminal + interaction, make it output a short\nnotice like this when it starts in an interactive + mode:\n\n Copyright (C) \n This program + comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n This is free + software, and you are welcome to redistribute it\n under certain conditions; + type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' + should show the appropriate\nparts of the General Public License. Of course, + your program's commands\nmight be different; for a GUI interface, you would use + an \"about box\".\n\n You should also get your employer (if you work as a programmer) + or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor + more information on this, and how to apply and follow the GNU GPL, see\n.\n\n + \ The GNU General Public License does not permit incorporating your program\ninto + proprietary programs. If your program is a subroutine library, you\nmay consider + it more useful to permit linking proprietary applications with\nthe library. If + this is what you want to do, use the GNU Lesser General\nPublic License instead + of this License. But first, please read\n.\n" +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml similarity index 96% rename from .licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml rename to .licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml index 41a75b12e..2fdbca217 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/arduino-cli/i18n.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml @@ -1,13 +1,28 @@ --- -name: github.com/arduino/arduino-cli/i18n -version: v0.35.0 +name: github.com/arduino/pluggable-discovery-protocol-handler/v2 +version: v2.2.0 type: go -summary: -homepage: https://pkg.go.dev/github.com/arduino/arduino-cli/i18n -license: gpl-3.0-only +summary: Package discovery is a library for handling the Arduino Pluggable-Discovery + protocol (https://github.com/arduino/tooling-rfcs/blob/main/RFCs/0002-pluggable-discovery.md#pluggable-discovery-api-via-stdinstdout) +homepage: https://pkg.go.dev/github.com/arduino/pluggable-discovery-protocol-handler/v2 +license: other licenses: -- sources: arduino-cli@v0.35.0/LICENSE.txt - text: |2 +- sources: LICENSE.txt + text: | + This file includes licensing information for serial-discovery + + Copyright (c) 2018 ARDUINO SA (www.arduino.cc) + + The software is released under the GNU General Public License, which covers the main body + of the serial-discovery code. The terms of this license can be found at: + https://www.gnu.org/licenses/gpl-3.0.en.html + + You can be released from the requirements of the above licenses by purchasing + a commercial license. Buying such a license is mandatory if you want to modify or + otherwise use the software for commercial activities involving the Arduino + software without disclosing the source code of your own applications. To purchase + a commercial license, send an email to license@arduino.cc + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 @@ -682,20 +697,13 @@ licenses: the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . -- sources: arduino-cli@v0.35.0/license_header.tpl - text: | - This file is part of arduino-cli. +- sources: README.md + text: |- + Copyright (c) 2021 ARDUINO SA (www.arduino.cc) - Copyright{{ if .Year }} {{.Year}}{{ end }} {{.Holder}} - - This software is released under the GNU General Public License version 3, - which covers the main part of arduino-cli. - The terms of this license can be found at: + The software is released under the GNU General Public License, which covers the main body + of the serial-discovery code. The terms of this license can be found at: https://www.gnu.org/licenses/gpl-3.0.en.html - You can be released from the requirements of the above licenses by purchasing - a commercial license. Buying such a license is mandatory if you want to - modify or otherwise use the software for commercial activities involving the - Arduino software without disclosing the source code of your own applications. - To purchase a commercial license, send an email to license@arduino.cc. + See [LICENSE.txt](https://github.com/arduino/pluggable-discovery-protocol-handler/blob/master/LICENSE.txt) for details. notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml b/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml deleted file mode 100644 index 9f13e6e9a..000000000 --- a/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext.dep.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: github.com/leonelquinteros/gotext -version: v1.4.0 -type: go -summary: Package gotext implements GNU gettext utilities. -homepage: https://pkg.go.dev/github.com/leonelquinteros/gotext -license: mit -licenses: -- sources: LICENSE - text: | - The MIT License (MIT) - - Copyright (c) 2016 Leonel Quinteros - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -- sources: README.md - text: "[MIT license](LICENSE)" -notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml b/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml deleted file mode 100644 index e80ad4e09..000000000 --- a/.licenses/arduino-create-agent/go/github.com/leonelquinteros/gotext/plurals.dep.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -name: github.com/leonelquinteros/gotext/plurals -version: v1.4.0 -type: go -summary: Package plurals is the pluralform compiler to get the correct translation - id of the plural string -homepage: https://pkg.go.dev/github.com/leonelquinteros/gotext/plurals -license: mit -licenses: -- sources: gotext@v1.4.0/LICENSE - text: | - The MIT License (MIT) - - Copyright (c) 2016 Leonel Quinteros - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -- sources: gotext@v1.4.0/README.md - text: "[MIT license](LICENSE)" -notices: [] diff --git a/conn.go b/conn.go index 90b24be84..02b13ba8d 100644 --- a/conn.go +++ b/conn.go @@ -161,7 +161,7 @@ func uploadHandler(c *gin.Context) { go func() { // Resolve commandline - commandline, err := upload.PartiallyResolve(data.Board, filePath, tmpdir, data.Commandline, data.Extra, &Tools) + commandline, err := upload.PartiallyResolve(data.Board, filePath, tmpdir, data.Commandline, data.Extra, Tools) if err != nil { send(map[string]string{uploadStatusStr: "Error", "Msg": err.Error()}) return diff --git a/go.mod b/go.mod index a142c60fd..730f97a28 100644 --- a/go.mod +++ b/go.mod @@ -5,8 +5,9 @@ go 1.21 require ( fyne.io/systray v1.10.0 github.com/ProtonMail/go-crypto v1.1.0-alpha.0 - github.com/arduino/arduino-cli v0.35.0 github.com/arduino/go-paths-helper v1.12.0 + github.com/arduino/go-serial-utils v0.1.2 + github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 github.com/gin-contrib/cors v1.5.0 @@ -28,6 +29,7 @@ require ( require ( github.com/AnatolyRugalev/goregen v0.1.0 // indirect + github.com/arduino/go-properties-orderedmap v1.8.0 // indirect github.com/bytedance/sonic v1.10.1 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.0 // indirect @@ -56,13 +58,13 @@ require ( github.com/kr/binarydist v0.1.0 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/leodido/go-urn v1.2.4 // indirect - github.com/leonelquinteros/gotext v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/smartystreets/goconvey v1.6.4 // indirect github.com/tevino/abool v1.2.0 // indirect @@ -76,5 +78,6 @@ require ( golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.32.0 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 9df4e0c7e..aaaeb6b14 100644 --- a/go.sum +++ b/go.sum @@ -4,10 +4,15 @@ github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBW github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/arduino/arduino-cli v0.35.0 h1:tkSpGun1hMgJPkvZJjofejWD+ivhCpvsl49H4n81iSc= -github.com/arduino/arduino-cli v0.35.0/go.mod h1:9aoXZdVGQ9uwf2M1nCSB+T051KbldslMFiJaHVycVsg= +github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= +github.com/arduino/go-properties-orderedmap v1.8.0 h1:wEfa6hHdpezrVOh787OmClsf/Kd8qB+zE3P2Xbrn0CQ= +github.com/arduino/go-properties-orderedmap v1.8.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= +github.com/arduino/go-serial-utils v0.1.2 h1:MRFwME4w/uaVkJ1R+wzz4KSbI9cF9IDVrYorazvjpTk= +github.com/arduino/go-serial-utils v0.1.2/go.mod h1:kzIsNPgz8DFAd1sAFKve4ubxrdGcwQ4XzvRLlztsgnE= +github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 h1:v7og6LpskewFabmaShKVzWXl5MXbmsxaRP3yo4dJta8= +github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0/go.mod h1:1dgblsmK2iBx3L5iNTyRIokeaxbTLUrYiUbHBK6yC3Y= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= @@ -97,8 +102,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= -github.com/leonelquinteros/gotext v1.4.0 h1:2NHPCto5IoMXbrT0bldPrxj0qM5asOCwtb1aUQZ1tys= -github.com/leonelquinteros/gotext v1.4.0/go.mod h1:yZGXREmoGTtBvZHNcc+Yfug49G/2spuF/i/Qlsvz1Us= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= @@ -123,8 +126,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= diff --git a/hub.go b/hub.go index a4f966fbc..a162dd01a 100755 --- a/hub.go +++ b/hub.go @@ -177,7 +177,7 @@ func checkCmd(m []byte) { // will catch send and sendnobuf and sendraw go spWrite(s) } else if strings.HasPrefix(sl, "list") { - go spList() + go serialPorts.List() } else if strings.HasPrefix(sl, "downloadtool") { go func() { args := strings.Split(s, " ") diff --git a/main.go b/main.go index 2a4df151f..65b8219ad 100755 --- a/main.go +++ b/main.go @@ -26,6 +26,7 @@ import ( "io" "os" "os/exec" + "regexp" "runtime" "runtime/debug" "strconv" @@ -69,24 +70,27 @@ var ( // iniflags var ( - address = iniConf.String("address", "127.0.0.1", "The address where to listen. Defaults to localhost") - appName = iniConf.String("appName", "", "") - gcType = iniConf.String("gc", "std", "Type of garbage collection. std = Normal garbage collection allowing system to decide (this has been known to cause a stop the world in the middle of a CNC job which can cause lost responses from the CNC controller and thus stalled jobs. use max instead to solve.), off = let memory grow unbounded (you have to send in the gc command manually to garbage collect or you will run out of RAM eventually), max = Force garbage collection on each recv or send on a serial port (this minimizes stop the world events and thus lost serial responses, but increases CPU usage)") - hostname = iniConf.String("hostname", "unknown-hostname", "Override the hostname we get from the OS") - httpProxy = iniConf.String("httpProxy", "", "Proxy server for HTTP requests") - httpsProxy = iniConf.String("httpsProxy", "", "Proxy server for HTTPS requests") - indexURL = iniConf.String("indexURL", "https://downloads.arduino.cc/packages/package_index.json", "The address from where to download the index json containing the location of upload tools") - iniConf = flag.NewFlagSet("ini", flag.ContinueOnError) - logDump = iniConf.String("log", "off", "off = (default)") - origins = iniConf.String("origins", "", "Allowed origin list for CORS") - regExpFilter = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") - signatureKey = iniConf.String("signatureKey", globals.SignatureKey, "Pem-encoded public key to verify signed commandlines") - updateURL = iniConf.String("updateUrl", "", "") - verbose = iniConf.Bool("v", true, "show debug logging") - crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") - autostartMacOS = iniConf.Bool("autostartMacOS", true, "the Arduino Create Agent is able to start automatically after login on macOS (launchd agent)") + address = iniConf.String("address", "127.0.0.1", "The address where to listen. Defaults to localhost") + appName = iniConf.String("appName", "", "") + gcType = iniConf.String("gc", "std", "Type of garbage collection. std = Normal garbage collection allowing system to decide (this has been known to cause a stop the world in the middle of a CNC job which can cause lost responses from the CNC controller and thus stalled jobs. use max instead to solve.), off = let memory grow unbounded (you have to send in the gc command manually to garbage collect or you will run out of RAM eventually), max = Force garbage collection on each recv or send on a serial port (this minimizes stop the world events and thus lost serial responses, but increases CPU usage)") + hostname = iniConf.String("hostname", "unknown-hostname", "Override the hostname we get from the OS") + httpProxy = iniConf.String("httpProxy", "", "Proxy server for HTTP requests") + httpsProxy = iniConf.String("httpsProxy", "", "Proxy server for HTTPS requests") + indexURL = iniConf.String("indexURL", "https://downloads.arduino.cc/packages/package_index.json", "The address from where to download the index json containing the location of upload tools") + iniConf = flag.NewFlagSet("ini", flag.ContinueOnError) + logDump = iniConf.String("log", "off", "off = (default)") + origins = iniConf.String("origins", "", "Allowed origin list for CORS") + portsFilterRegexp = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") + signatureKey = iniConf.String("signatureKey", globals.SignatureKey, "Pem-encoded public key to verify signed commandlines") + updateURL = iniConf.String("updateUrl", "", "") + verbose = iniConf.Bool("v", true, "show debug logging") + crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") + autostartMacOS = iniConf.Bool("autostartMacOS", true, "the Arduino Create Agent is able to start automatically after login on macOS (launchd agent)") ) +// the ports filter provided by the user via the -regex flag, if any +var portsFilter *regexp.Regexp + var homeTemplate = template.Must(template.New("home").Parse(homeTemplateHTML)) // If you navigate to this server's homepage, you'll get this HTML @@ -97,7 +101,7 @@ var homeTemplateHTML string // global clients var ( - Tools tools.Tools + Tools *tools.Tools Systray systray.Systray Index *index.Resource ) @@ -247,7 +251,7 @@ func loop() { // Instantiate Index and Tools Index = index.Init(*indexURL, config.GetDataDir()) - Tools = *tools.New(config.GetDataDir(), Index, logger) + Tools = tools.New(config.GetDataDir(), Index, logger) // see if we are supposed to wait 5 seconds if *isLaunchSelf { @@ -302,19 +306,13 @@ func loop() { } // see if they provided a regex filter - if len(*regExpFilter) > 0 { - log.Printf("You specified a serial port regular expression filter: %v\n", *regExpFilter) - } - - // list serial ports - portList, _ := enumerateSerialPorts() - log.Println("Your serial ports:") - if len(portList) == 0 { - log.Println("\tThere are no serial ports to list.") - } - for _, element := range portList { - log.Printf("\t%v\n", element) - + if len(*portsFilterRegexp) > 0 { + log.Printf("You specified a serial port regular expression filter: %v\n", *portsFilterRegexp) + if filter, err := regexp.Compile("(?i)" + *portsFilterRegexp); err != nil { + log.Panicf("Error compiling the regex filter: %v\n", err) + } else { + portsFilter = filter + } } if !*verbose { @@ -344,6 +342,8 @@ func loop() { } } + // launch the discoveries for the running system + go serialPorts.Run() // launch the hub routine which is the singleton for the websocket server go h.run() // launch our serial port routine @@ -351,8 +351,6 @@ func loop() { // launch our dummy data routine //go d.run() - go discoverLoop() - r := gin.New() socketHandler := wsHandler().ServeHTTP diff --git a/serial.go b/serial.go index 86124faf3..393f77658 100755 --- a/serial.go +++ b/serial.go @@ -19,12 +19,14 @@ package main import ( "encoding/json" + "slices" "strconv" "strings" "sync" "time" - "github.com/arduino/arduino-create-agent/upload" + discovery "github.com/arduino/pluggable-discovery-protocol-handler/v2" + "github.com/sirupsen/logrus" ) type writeRequest struct { @@ -49,10 +51,10 @@ type serialhub struct { mu sync.Mutex } -// SpPortList is the serial port list -type SpPortList struct { - Ports []SpPortItem - Mu sync.Mutex `json:"-"` +// SerialPortList is the serial port list +type SerialPortList struct { + Ports []*SpPortItem + portsLock sync.Mutex } // SpPortItem is the serial port item @@ -70,7 +72,7 @@ type SpPortItem struct { } // serialPorts contains the ports attached to the machine -var serialPorts SpPortList +var serialPorts SerialPortList var sh = serialhub{ //write: make(chan *serport, chan []byte), @@ -103,30 +105,39 @@ func (sh *serialhub) run() { sh.mu.Unlock() case wr := <-sh.write: // if user sent in the commands as one text mode line - write(wr) + switch wr.buffer { + case "send": + wr.p.sendBuffered <- wr.d + case "sendnobuf": + wr.p.sendNoBuf <- []byte(wr.d) + case "sendraw": + wr.p.sendRaw <- wr.d + } + // no default since we alredy verified in spWrite() } } } -func write(wr writeRequest) { - switch wr.buffer { - case "send": - wr.p.sendBuffered <- wr.d - case "sendnobuf": - wr.p.sendNoBuf <- []byte(wr.d) - case "sendraw": - wr.p.sendRaw <- wr.d +func (sh *serialhub) FindPortByName(portname string) (*serport, bool) { + sh.mu.Lock() + defer sh.mu.Unlock() + + for port := range sh.ports { + if strings.EqualFold(port.portConf.Name, portname) { + // we found our port + //spHandlerClose(port) + return port, true + } } - // no default since we alredy verified in spWrite() + return nil, false } -// spList broadcasts a Json representation of the ports found -func spList() { - var ls []byte - var err error - serialPorts.Mu.Lock() - ls, err = json.MarshalIndent(&serialPorts, "", "\t") - serialPorts.Mu.Unlock() +// List broadcasts a Json representation of the ports found +func (sp *SerialPortList) List() { + sp.portsLock.Lock() + ls, err := json.MarshalIndent(sp, "", "\t") + sp.portsLock.Unlock() + if err != nil { //log.Println(err) h.broadcastSys <- []byte("Error creating json on port list " + @@ -136,72 +147,118 @@ func spList() { } } -// discoverLoop periodically update the list of ports found -func discoverLoop() { - serialPorts.Mu.Lock() - serialPorts.Ports = make([]SpPortItem, 0) - serialPorts.Mu.Unlock() +// Run is the main loop for port discovery and management +func (sp *SerialPortList) Run() { + for retries := 0; retries < 10; retries++ { + sp.runSerialDiscovery() - go func() { - for { - if !upload.Busy { - updateSerialPortList() - } - time.Sleep(2 * time.Second) - } - }() + logrus.Errorf("Serial discovery stopped working, restarting it in 10 seconds...") + time.Sleep(10 * time.Second) + } + logrus.Errorf("Failed restarting serial discovery. Giving up...") } -var serialEnumeratorLock sync.Mutex - -func updateSerialPortList() { - if !serialEnumeratorLock.TryLock() { - return +func (sp *SerialPortList) runSerialDiscovery() { + // First ensure that all the discoveries are available + if err := Tools.Download("builtin", "serial-discovery", "latest", "keep"); err != nil { + logrus.Errorf("Error downloading serial-discovery: %s", err) + panic(err) } - defer serialEnumeratorLock.Unlock() - ports, err := enumerateSerialPorts() + sd, err := Tools.GetLocation("serial-discovery") if err != nil { - // TODO: report error? + logrus.Errorf("Error downloading serial-discovery: %s", err) + panic(err) + } + d := discovery.NewClient("serial", sd+"/serial-discovery") + dLogger := logrus.WithField("discovery", "serial") + if *verbose { + d.SetLogger(dLogger) + } + d.SetUserAgent("arduino-create-agent/" + version) + if err := d.Run(); err != nil { + logrus.Errorf("Error running serial-discovery: %s", err) + panic(err) + } + defer d.Quit() - // Empty port list if they can not be detected - ports = []OsSerialPort{} + events, err := d.StartSync(10) + if err != nil { + logrus.Errorf("Error starting event watcher on serial-discovery: %s", err) + panic(err) } - list := spListDual(ports) - serialPorts.Mu.Lock() - serialPorts.Ports = list - serialPorts.Mu.Unlock() -} -func spListDual(list []OsSerialPort) []SpPortItem { - // we have a full clean list of ports now. iterate thru them - // to append the open/close state, baud rates, etc to make - // a super clean nice list to send back to browser - spl := []SpPortItem{} - - for _, item := range list { - port := SpPortItem{ - Name: item.Name, - SerialNumber: item.ISerial, - DeviceClass: item.DeviceClass, - IsOpen: false, - IsPrimary: false, - Baud: 0, - BufferAlgorithm: "", - Ver: version, - VendorID: item.IDVendor, - ProductID: item.IDProduct, + logrus.Infof("Serial discovery started, watching for events") + for ev := range events { + logrus.WithField("event", ev).Debugf("Serial discovery event") + switch ev.Type { + case "add": + sp.add(ev.Port) + case "remove": + sp.remove(ev.Port) } + } + + sp.reset() + logrus.Errorf("Serial discovery stopped.") +} + +func (sp *SerialPortList) reset() { + sp.portsLock.Lock() + defer sp.portsLock.Unlock() + sp.Ports = []*SpPortItem{} +} + +func (sp *SerialPortList) add(addedPort *discovery.Port) { + if addedPort.Protocol != "serial" { + return + } + props := addedPort.Properties + if !props.ContainsKey("vid") { + return + } + vid, pid := props.Get("vid"), props.Get("pid") + if vid == "0x0000" || pid == "0x0000" { + return + } + if portsFilter != nil && !portsFilter.MatchString(addedPort.Address) { + logrus.Debugf("ignoring port not matching filter. port: %v\n", addedPort.Address) + return + } - // figure out if port is open - if myport, isFound := findPortByName(item.Name); isFound { - // and update data with the open port parameters - port.IsOpen = true - port.Baud = myport.portConf.Baud - port.BufferAlgorithm = myport.BufferType + sp.portsLock.Lock() + defer sp.portsLock.Unlock() + + // If the port is already in the list, just update the metadata... + for _, oldPort := range sp.Ports { + if oldPort.Name == addedPort.Address { + oldPort.SerialNumber = props.Get("serialNumber") + oldPort.VendorID = vid + oldPort.ProductID = pid + return } - spl = append(spl, port) } - return spl + // ...otherwise, add it to the list + sp.Ports = append(sp.Ports, &SpPortItem{ + Name: addedPort.Address, + SerialNumber: props.Get("serialNumber"), + VendorID: vid, + ProductID: pid, + Ver: version, + IsOpen: false, + IsPrimary: false, + Baud: 0, + BufferAlgorithm: "", + }) +} + +func (sp *SerialPortList) remove(removedPort *discovery.Port) { + sp.portsLock.Lock() + defer sp.portsLock.Unlock() + + // Remove the port from the list + sp.Ports = slices.DeleteFunc(sp.Ports, func(oldPort *SpPortItem) bool { + return oldPort.Name == removedPort.Address + }) } func spErr(err string) { @@ -216,7 +273,7 @@ func spClose(portname string) { // that should cause an unregister channel call back // to myself - myport, isFound := findPortByName(portname) + myport, isFound := sh.FindPortByName(portname) if isFound { // we found our port @@ -244,7 +301,7 @@ func spWrite(arg string) { //log.Println("The data is:" + args[2] + "---") // see if we have this port open - myport, isFound := findPortByName(portname) + myport, isFound := sh.FindPortByName(portname) if !isFound { // we couldn't find the port, so send err diff --git a/seriallist.go b/seriallist.go deleted file mode 100755 index fd1046185..000000000 --- a/seriallist.go +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2022 Arduino SA -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published -// by the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -// Supports Windows, Linux, Mac, and Raspberry Pi - -package main - -import ( - "fmt" - "regexp" - "strings" - - log "github.com/sirupsen/logrus" - "go.bug.st/serial/enumerator" -) - -// OsSerialPort is the Os serial port -type OsSerialPort struct { - Name string - DeviceClass string - Manufacturer string - Product string - IDProduct string - IDVendor string - ISerial string -} - -// enumerateSerialPorts will return the OS serial port -func enumerateSerialPorts() ([]OsSerialPort, error) { - // will timeout in 2 seconds - arrPorts := []OsSerialPort{} - ports, err := enumerator.GetDetailedPortsList() - if err != nil { - return arrPorts, err - } - - for _, element := range ports { - if element.IsUSB { - vid := element.VID - pid := element.PID - vidString := fmt.Sprintf("0x%s", vid) - pidString := fmt.Sprintf("0x%s", pid) - if vid != "0000" && pid != "0000" { - arrPorts = append(arrPorts, OsSerialPort{Name: element.Name, IDVendor: vidString, IDProduct: pidString, ISerial: element.SerialNumber}) - } - } - } - - // see if we should filter the list - if len(*regExpFilter) > 0 { - // yes, user asked for a filter - reFilter := regexp.MustCompile("(?i)" + *regExpFilter) - - newarrPorts := []OsSerialPort{} - for _, element := range arrPorts { - // if matches regex, include - if reFilter.MatchString(element.Name) { - newarrPorts = append(newarrPorts, element) - } else { - log.Debugf("serial port did not match. port: %v\n", element) - } - - } - arrPorts = newarrPorts - } - - return arrPorts, err -} - -func findPortByName(portname string) (*serport, bool) { - portnamel := strings.ToLower(portname) - sh.mu.Lock() - defer sh.mu.Unlock() - for port := range sh.ports { - if strings.ToLower(port.portConf.Name) == portnamel { - // we found our port - //spHandlerClose(port) - return port, true - } - } - return nil, false -} diff --git a/serialport.go b/serialport.go index 104311faf..09fd2cda1 100755 --- a/serialport.go +++ b/serialport.go @@ -232,8 +232,7 @@ func (p *serport) writerNoBuf() { log.Println(msgstr) h.broadcastSys <- []byte(msgstr) p.portIo.Close() - updateSerialPortList() - spList() + serialPorts.List() } // this method runs as its own thread because it's instantiated @@ -327,8 +326,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { sh.register <- p defer func() { sh.unregister <- p }() - updateSerialPortList() - spList() + serialPorts.List() // this is internally buffered thread to not send to serial port if blocked go p.writerBuffered() @@ -339,8 +337,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { p.reader(buftype) - updateSerialPortList() - spList() + serialPorts.List() } func spHandlerClose(p *serport) { @@ -352,6 +349,5 @@ func spHandlerClose(p *serport) { func spCloseReal(p *serport) { p.bufferwatcher.Close() p.portIo.Close() - updateSerialPortList() - spList() + serialPorts.List() } diff --git a/upload/upload.go b/upload/upload.go index 6e899c817..613d72957 100644 --- a/upload/upload.go +++ b/upload/upload.go @@ -23,16 +23,13 @@ import ( "runtime" "strings" - "github.com/arduino/arduino-cli/arduino/serialutils" "github.com/arduino/arduino-create-agent/utilities" + serialutils "github.com/arduino/go-serial-utils" shellwords "github.com/mattn/go-shellwords" "github.com/pkg/errors" "go.bug.st/serial/enumerator" ) -// Busy tells wether the programmer is doing something -var Busy = false - // Extra contains some options used during the upload type Extra struct { Use1200bpsTouch bool `json:"use_1200bps_touch"` @@ -49,7 +46,7 @@ func PartiallyResolve(board, file, platformPath, commandline string, extra Extra commandline = strings.Replace(commandline, "{fqbn}", board, -1) // search for runtime variables and replace with values from Locater - var runtimeRe = regexp.MustCompile("\\{(.*?)\\}") + var runtimeRe = regexp.MustCompile(`\{(.*?)\}`) runtimeVars := runtimeRe.FindAllString(commandline, -1) for _, element := range runtimeVars { @@ -82,9 +79,6 @@ func fixupPort(port, commandline string) string { // Serial performs a serial upload func Serial(port, commandline string, extra Extra, l Logger) error { - Busy = true - defer func() { Busy = false }() - // some boards needs to be resetted if extra.Use1200bpsTouch { var err error @@ -120,7 +114,7 @@ func Kill() { // sometimes) and an error (usually because the port listing failed) func reset(port string, wait bool, l Logger) (string, error) { info(l, "Restarting in bootloader mode") - newPort, err := serialutils.Reset(port, wait, nil, false) // TODO use callbacks to print as the cli does + newPort, err := serialutils.Reset(port, wait, false, nil, nil) // TODO use callbacks to print reset progress if err != nil { info(l, err) return "", err From 35cb0e6311692948dfce8af31736f2da476cc2f9 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Fri, 22 Mar 2024 15:49:50 +0100 Subject: [PATCH 176/233] change label and url in the tray icon menu (#929) --- systray/systray_real.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systray/systray_real.go b/systray/systray_real.go index d1d14f9bc..9e4e5aac1 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -55,7 +55,7 @@ func (s *Systray) start() { menuVer.Disable() // Add links - mURL := systray.AddMenuItem("Go to Arduino Create", "Arduino Create") + mURL := systray.AddMenuItem("Go to Arduino Cloud", "Arduino Cloud") mDebug := systray.AddMenuItem("Open Debug Console", "Debug console") mConfig := systray.AddMenuItem("Open Configuration", "Config File") @@ -85,7 +85,7 @@ func (s *Systray) start() { for { select { case <-mURL.ClickedCh: - _ = open.Start("https://create.arduino.cc") + _ = open.Start("https://app.arduino.cc") case <-mDebug.ClickedCh: _ = open.Start(s.DebugURL()) case <-mConfig.ClickedCh: From 8885398c69ce47c9977eefda0fc6adcef44cb008 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 15:53:43 +0100 Subject: [PATCH 177/233] Bump codecov/codecov-action from 3 to 4 (#831) * Bump codecov/codecov-action from 3 to 4 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v3...v4) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * expose the token, this is intentional. https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .github/workflows/test-go-task.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 51925c49e..8a7c733ba 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -96,11 +96,26 @@ jobs: GO_MODULE_PATH: ${{ matrix.module.path }} run: task go:test + # A token is used to avoid intermittent spurious job failures caused by rate limiting. + - name: Set up Codecov upload token + if: runner.os == 'Linux' + run: | + if [[ "${{ github.repository }}" == "arduino/arduino-create-agent" ]]; then + # In order to avoid uploads of data from forks, only use the token for runs in the arduino/arduino-create-agent repo. + # Token is intentionally exposed. + # See: https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954 + CODECOV_TOKEN=fe64847a-368e-4f95-9212-1f7a6835043f + else + # codecov/codecov-action does unauthenticated upload if empty string is passed via the `token` input. + CODECOV_TOKEN="" + fi + echo "CODECOV_TOKEN=$CODECOV_TOKEN" >> "$GITHUB_ENV" + - name: Send unit tests coverage to Codecov if: runner.os == 'Linux' - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: - token: ${{ secrets.CODECOV_TOKEN }} + token: ${{ env.CODECOV_TOKEN }} files: ${{ matrix.module.path }}coverage_unit.txt flags: ${{ matrix.module.codecov-flags }} fail_ci_if_error: ${{ github.repository == 'arduino/arduino-create-agent' }} From b3df25ca21111699f1992964b4d8f3bf7ec82e9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 16:08:48 +0100 Subject: [PATCH 178/233] Bump geekyeggo/delete-artifact from 2 to 5 (#924) Bumps [geekyeggo/delete-artifact](https://github.com/geekyeggo/delete-artifact) from 2 to 5. - [Release notes](https://github.com/geekyeggo/delete-artifact/releases) - [Changelog](https://github.com/GeekyEggo/delete-artifact/blob/main/CHANGELOG.md) - [Commits](https://github.com/geekyeggo/delete-artifact/compare/v2...v5) --- updated-dependencies: - dependency-name: geekyeggo/delete-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/sync-labels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 9ecf638e8..d0a553526 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -115,7 +115,7 @@ jobs: path: ${{ env.CONFIGURATIONS_FOLDER }} - name: Remove unneeded artifact - uses: geekyeggo/delete-artifact@v2 + uses: geekyeggo/delete-artifact@v5 with: name: ${{ env.CONFIGURATIONS_ARTIFACT }} From 4bd6852d115c91097b2087cd7837e9ad8919da4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 17:06:46 +0100 Subject: [PATCH 179/233] Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 (#917) * Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 Bumps [github.com/gin-contrib/cors](https://github.com/gin-contrib/cors) from 1.5.0 to 1.7.0. - [Release notes](https://github.com/gin-contrib/cors/releases) - [Changelog](https://github.com/gin-contrib/cors/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/cors/compare/v1.5.0...v1.7.0) --- updated-dependencies: - dependency-name: github.com/gin-contrib/cors dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../gabriel-vasile/mimetype.dep.yml | 2 +- .../mimetype/internal/charset.dep.yml | 4 +- .../mimetype/internal/json.dep.yml | 4 +- .../mimetype/internal/magic.dep.yml | 4 +- .../go/github.com/gin-contrib/cors.dep.yml | 4 +- .../go-playground/validator/v10.dep.yml | 3 +- .../go/github.com/leodido/go-urn.dep.yml | 2 +- .../leodido/go-urn/scim/schema.dep.yml | 32 ++++++++++++ .../github.com/pelletier/go-toml/v2.dep.yml | 2 +- .../go-toml/v2/internal/characters.dep.yml | 8 +-- .../go-toml/v2/internal/danger.dep.yml | 8 +-- .../go-toml/v2/internal/tracker.dep.yml | 8 +-- .../pelletier/go-toml/v2/unstable.dep.yml | 6 +-- .../go/golang.org/x/crypto/argon2.dep.yml | 6 +-- .../go/golang.org/x/crypto/blake2b.dep.yml | 6 +-- .../go/golang.org/x/crypto/cast5.dep.yml | 6 +-- .../go/golang.org/x/crypto/sha3.dep.yml | 6 +-- .../go/golang.org/x/net/html.dep.yml | 6 +-- .../go/golang.org/x/net/html/atom.dep.yml | 6 +-- .../go/golang.org/x/net/http2.dep.yml | 6 +-- .../go/golang.org/x/net/http2/h2c.dep.yml | 6 +-- .../golang.org/x/net/internal/socks.dep.yml | 6 +-- .../go/golang.org/x/net/proxy.dep.yml | 6 +-- .../go/golang.org/x/sys/unix.dep.yml | 6 +-- .../protobuf/encoding/protowire.dep.yml | 6 +-- .../protobuf/internal/detrand.dep.yml | 6 +-- .../internal/encoding/messageset.dep.yml | 6 +-- .../protobuf/internal/errors.dep.yml | 6 +-- .../protobuf/internal/flags.dep.yml | 6 +-- .../protobuf/internal/genid.dep.yml | 6 +-- .../protobuf/internal/order.dep.yml | 6 +-- .../protobuf/internal/pragma.dep.yml | 6 +-- .../protobuf/internal/strs.dep.yml | 6 +-- .../google.golang.org/protobuf/proto.dep.yml | 6 +-- .../protobuf/reflect/protoreflect.dep.yml | 6 +-- .../protobuf/reflect/protoregistry.dep.yml | 6 +-- .../protobuf/runtime/protoiface.dep.yml | 6 +-- go.mod | 26 +++++----- go.sum | 52 +++++++++---------- 39 files changed, 171 insertions(+), 138 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/leodido/go-urn/scim/schema.dep.yml diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml index 12fdb4635..898030905 100644 --- a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gabriel-vasile/mimetype -version: v1.4.2 +version: v1.4.3 type: go summary: Package mimetype uses magic number signatures to detect the MIME type of a file. diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml index 038243c66..ae2d894c1 100644 --- a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/charset.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gabriel-vasile/mimetype/internal/charset -version: v1.4.2 +version: v1.4.3 type: go summary: homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype/internal/charset license: mit licenses: -- sources: mimetype@v1.4.2/LICENSE +- sources: mimetype@v1.4.3/LICENSE text: | MIT License diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml index 8e1a017c0..f6a55e8ba 100644 --- a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/json.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gabriel-vasile/mimetype/internal/json -version: v1.4.2 +version: v1.4.3 type: go summary: Package json provides a JSON value parser state machine. homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype/internal/json license: mit licenses: -- sources: mimetype@v1.4.2/LICENSE +- sources: mimetype@v1.4.3/LICENSE text: | MIT License diff --git a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml index 9664f18a9..cacd38ad9 100644 --- a/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gabriel-vasile/mimetype/internal/magic.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/gabriel-vasile/mimetype/internal/magic -version: v1.4.2 +version: v1.4.3 type: go summary: Package magic holds the matching functions used to find MIME types. homepage: https://pkg.go.dev/github.com/gabriel-vasile/mimetype/internal/magic license: mit licenses: -- sources: mimetype@v1.4.2/LICENSE +- sources: mimetype@v1.4.3/LICENSE text: | MIT License diff --git a/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml index fa909a062..64947d500 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml @@ -1,8 +1,8 @@ --- name: github.com/gin-contrib/cors -version: v1.5.0 +version: v1.7.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-contrib/cors license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml index 581146f15..27ea0223c 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-playground/validator/v10 -version: v10.15.5 +version: v10.19.0 type: go summary: Package validator implements value validations for structs and individual fields based on tags. @@ -35,3 +35,4 @@ licenses: text: Distributed under MIT License, please see license file within the code for more details. notices: [] +... diff --git a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml index 356e48500..5c146cf19 100644 --- a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/leodido/go-urn -version: v1.2.4 +version: v1.4.0 type: go summary: homepage: https://pkg.go.dev/github.com/leodido/go-urn diff --git a/.licenses/arduino-create-agent/go/github.com/leodido/go-urn/scim/schema.dep.yml b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn/scim/schema.dep.yml new file mode 100644 index 000000000..db9fe5292 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/leodido/go-urn/scim/schema.dep.yml @@ -0,0 +1,32 @@ +--- +name: github.com/leodido/go-urn/scim/schema +version: v1.4.0 +type: go +summary: +homepage: https://pkg.go.dev/github.com/leodido/go-urn/scim/schema +license: mit +licenses: +- sources: go-urn@v1.4.0/LICENSE + text: | + MIT License + + Copyright (c) 2018 Leonardo Di Donato + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml index 57fb6f416..d5fa95e44 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/pelletier/go-toml/v2 -version: v2.1.0 +version: v2.1.1 type: go summary: Package toml is a library to read and write TOML documents. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2 diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml index 7fa750d2d..1b6309e3a 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/characters -version: v2.1.0 +version: v2.1.1 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters license: other licenses: -- sources: v2@v2.1.0/LICENSE +- sources: v2@v2.1.1/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.0/README.md +- sources: v2@v2.1.1/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml index efe373edd..a1cd40f5c 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/danger -version: v2.1.0 +version: v2.1.1 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger license: other licenses: -- sources: v2@v2.1.0/LICENSE +- sources: v2@v2.1.1/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.0/README.md +- sources: v2@v2.1.1/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml index 80f5141e3..3b5b51597 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/tracker -version: v2.1.0 +version: v2.1.1 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker license: other licenses: -- sources: v2@v2.1.0/LICENSE +- sources: v2@v2.1.1/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.0/README.md +- sources: v2@v2.1.1/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml index cae3f2e7d..c37f1e4ea 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/pelletier/go-toml/v2/unstable -version: v2.1.0 +version: v2.1.1 type: go summary: Package unstable provides APIs that do not meet the backward compatibility guarantees yet. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable license: other licenses: -- sources: v2@v2.1.0/LICENSE +- sources: v2@v2.1.1/LICENSE text: | The MIT License (MIT) @@ -31,6 +31,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.0/README.md +- sources: v2@v2.1.1/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml index 8991ec2a4..d1d74d423 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/argon2 -version: v0.18.0 +version: v0.21.0 type: go summary: Package argon2 implements the key derivation function Argon2. homepage: https://pkg.go.dev/golang.org/x/crypto/argon2 license: bsd-3-clause licenses: -- sources: crypto@v0.18.0/LICENSE +- sources: crypto@v0.21.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.18.0/PATENTS +- sources: crypto@v0.21.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml index aac455e02..6ab357baf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/blake2b -version: v0.18.0 +version: v0.21.0 type: go summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693 and the extendable output function (XOF) BLAKE2Xb. homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b license: bsd-3-clause licenses: -- sources: crypto@v0.18.0/LICENSE +- sources: crypto@v0.21.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.18.0/PATENTS +- sources: crypto@v0.21.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml index bcdeb0258..04ad057a3 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/crypto/cast5 -version: v0.18.0 +version: v0.21.0 type: go summary: Package cast5 implements CAST5, as defined in RFC 2144. homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 license: bsd-3-clause licenses: -- sources: crypto@v0.18.0/LICENSE +- sources: crypto@v0.21.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.18.0/PATENTS +- sources: crypto@v0.21.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml index 98e5ee0c4..45a62ab94 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/crypto/sha3 -version: v0.18.0 +version: v0.21.0 type: go summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length hash functions defined by FIPS-202. homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 license: bsd-3-clause licenses: -- sources: crypto@v0.18.0/LICENSE +- sources: crypto@v0.21.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.18.0/PATENTS +- sources: crypto@v0.21.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml index f867c1a98..058ba18b2 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/html -version: v0.20.0 +version: v0.22.0 type: go summary: Package html implements an HTML5-compliant tokenizer and parser. homepage: https://pkg.go.dev/golang.org/x/net/html license: other licenses: -- sources: net@v0.20.0/LICENSE +- sources: net@v0.22.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.20.0/PATENTS +- sources: net@v0.22.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml index 51aa31e4d..dcac31fa0 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml @@ -1,6 +1,6 @@ --- name: golang.org/x/net/html/atom -version: v0.20.0 +version: v0.22.0 type: go summary: 'Package atom provides integer codes (also known as atoms) for a fixed set of frequently occurring HTML strings: tag names and attribute keys such as "p" and @@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed homepage: https://pkg.go.dev/golang.org/x/net/html/atom license: other licenses: -- sources: net@v0.20.0/LICENSE +- sources: net@v0.22.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.20.0/PATENTS +- sources: net@v0.22.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml index 7337b512f..b4fbb5f5f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2 -version: v0.20.0 +version: v0.22.0 type: go summary: Package http2 implements the HTTP/2 protocol. homepage: https://pkg.go.dev/golang.org/x/net/http2 license: bsd-3-clause licenses: -- sources: net@v0.20.0/LICENSE +- sources: net@v0.22.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.20.0/PATENTS +- sources: net@v0.22.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml index 8ea9ff42a..ae2032104 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/http2/h2c -version: v0.20.0 +version: v0.22.0 type: go summary: Package h2c implements the unencrypted "h2c" form of HTTP/2. homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c license: bsd-3-clause licenses: -- sources: net@v0.20.0/LICENSE +- sources: net@v0.22.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.20.0/PATENTS +- sources: net@v0.22.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml index a517a2500..74501f355 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/net/internal/socks -version: v0.20.0 +version: v0.22.0 type: go summary: Package socks provides a SOCKS version 5 client implementation. homepage: https://pkg.go.dev/golang.org/x/net/internal/socks license: other licenses: -- sources: net@v0.20.0/LICENSE +- sources: net@v0.22.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.20.0/PATENTS +- sources: net@v0.22.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml index 252e83dda..7204f88c7 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml @@ -1,13 +1,13 @@ --- name: golang.org/x/net/proxy -version: v0.20.0 +version: v0.22.0 type: go summary: Package proxy provides support for a variety of protocols to proxy network data. homepage: https://pkg.go.dev/golang.org/x/net/proxy license: other licenses: -- sources: net@v0.20.0/LICENSE +- sources: net@v0.22.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: net@v0.20.0/PATENTS +- sources: net@v0.22.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index e04edef84..923a8975f 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,12 +1,12 @@ --- name: golang.org/x/sys/unix -version: v0.16.0 +version: v0.18.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix license: bsd-3-clause licenses: -- sources: sys@v0.16.0/LICENSE +- sources: sys@v0.18.0/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.16.0/PATENTS +- sources: sys@v0.18.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml index 893bb78df..82d6c4b98 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/encoding/protowire -version: v1.32.0 +version: v1.33.0 type: go summary: Package protowire parses and formats the raw wire encoding. homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml index 8a8e4027e..b840c82c7 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/detrand -version: v1.32.0 +version: v1.33.0 type: go summary: Package detrand provides deterministically random functionality. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml index 8a167b8a5..42bdcec62 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/encoding/messageset -version: v1.32.0 +version: v1.33.0 type: go summary: Package messageset encodes and decodes the obsolete MessageSet wire format. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml index 6aa38301e..4fff88a10 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/errors -version: v1.32.0 +version: v1.33.0 type: go summary: Package errors implements functions to manipulate errors. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml index 4b9ed00ff..415889a9e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/flags -version: v1.32.0 +version: v1.33.0 type: go summary: Package flags provides a set of flags controlled by build tags. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml index 6c5e5e9b0..7e4239655 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/genid -version: v1.32.0 +version: v1.33.0 type: go summary: Package genid contains constants for declarations in descriptor.proto and the well-known types. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml index 82fc654dc..c334e9736 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/order -version: v1.32.0 +version: v1.33.0 type: go summary: Package order provides ordered access to messages and maps. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml index a433d6dae..e6c40660d 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/internal/pragma -version: v1.32.0 +version: v1.33.0 type: go summary: Package pragma provides types that can be embedded into a struct to statically enforce or prevent certain language properties. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml index d8737a578..58e0e8827 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/internal/strs -version: v1.32.0 +version: v1.33.0 type: go summary: Package strs provides string manipulation functionality specific to protobuf. homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml index b62bb6ab0..4de64e7ec 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/proto -version: v1.32.0 +version: v1.33.0 type: go summary: Package proto provides functions operating on protocol buffer messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/proto license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml index 0f835606d..4f664cb91 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/reflect/protoreflect -version: v1.32.0 +version: v1.33.0 type: go summary: Package protoreflect provides interfaces to dynamically manipulate messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml index d65478d49..7bb57b49d 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml @@ -1,13 +1,13 @@ --- name: google.golang.org/protobuf/reflect/protoregistry -version: v1.32.0 +version: v1.33.0 type: go summary: Package protoregistry provides data structures to register and lookup protobuf descriptor types. homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml index 1d019473f..78e9d749e 100644 --- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml +++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml @@ -1,12 +1,12 @@ --- name: google.golang.org/protobuf/runtime/protoiface -version: v1.32.0 +version: v1.33.0 type: go summary: Package protoiface contains types referenced or implemented by messages. homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface license: bsd-3-clause licenses: -- sources: protobuf@v1.32.0/LICENSE +- sources: protobuf@v1.33.0/LICENSE text: | Copyright (c) 2018 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: protobuf@v1.32.0/PATENTS +- sources: protobuf@v1.33.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 730f97a28..91f932f2d 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 - github.com/gin-contrib/cors v1.5.0 + github.com/gin-contrib/cors v1.7.0 github.com/gin-gonic/gin v1.9.1 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 @@ -23,26 +23,26 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.14.6 - golang.org/x/sys v0.16.0 + golang.org/x/sys v0.18.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) require ( github.com/AnatolyRugalev/goregen v0.1.0 // indirect github.com/arduino/go-properties-orderedmap v1.8.0 // indirect - github.com/bytedance/sonic v1.10.1 // indirect + github.com/bytedance/sonic v1.11.2 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect - github.com/chenzhuoyu/iasm v0.9.0 // indirect + github.com/chenzhuoyu/iasm v0.9.1 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/creack/goselect v0.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-chi/chi/v5 v5.0.11 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.15.5 // indirect + github.com/go-playground/validator/v10 v10.19.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus/v5 v5.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect @@ -54,15 +54,15 @@ require ( github.com/juju/errors v1.0.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect github.com/klauspost/compress v1.17.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.5 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/kr/binarydist v0.1.0 // indirect github.com/kr/pretty v0.3.1 // indirect - github.com/leodido/go-urn v1.2.4 // indirect + github.com/leodido/go-urn v1.4.0 // indirect github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.1.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect @@ -71,13 +71,13 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect github.com/ulikunitz/xz v0.5.11 // indirect - golang.org/x/arch v0.5.0 // indirect - golang.org/x/crypto v0.18.0 // indirect + golang.org/x/arch v0.7.0 // indirect + golang.org/x/crypto v0.21.0 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.20.0 // indirect + golang.org/x/net v0.22.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.17.0 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index aaaeb6b14..be5fdb860 100644 --- a/go.sum +++ b/go.sum @@ -17,14 +17,15 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= -github.com/bytedance/sonic v1.10.1 h1:7a1wuFXL1cMy7a3f7/VFcEtriuXQnUBhtoVfOZiaysc= -github.com/bytedance/sonic v1.10.1/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= +github.com/bytedance/sonic v1.11.2 h1:ywfwo0a/3j9HR8wsYGWsIWl2mvRsI950HyoxiBERw5A= +github.com/bytedance/sonic v1.11.2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= -github.com/chenzhuoyu/iasm v0.9.0 h1:9fhXjVzq5hUy2gkhhgHl95zG2cEAhw9OSGs8toWWAwo= github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= +github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= +github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= @@ -38,10 +39,10 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI= github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= -github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= -github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= -github.com/gin-contrib/cors v1.5.0 h1:DgGKV7DDoOn36DFkNtbHrjoRiT5ExCe+PC9/xp7aKvk= -github.com/gin-contrib/cors v1.5.0/go.mod h1:TvU7MAZ3EwrPLI2ztzTt3tqgvBCq+wn8WpZmfADjupI= +github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= +github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= +github.com/gin-contrib/cors v1.7.0 h1:wZX2wuZ0o7rV2/1i7gb4Jn+gW7HBqaP91fizJkBUJOA= +github.com/gin-contrib/cors v1.7.0/go.mod h1:cI+h6iOAyxKRtUtC6iF/Si1KSFvGm/gK+kshxlCi8ro= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= @@ -56,8 +57,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= -github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4= +github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= @@ -88,8 +89,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= -github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kr/binarydist v0.1.0 h1:6kAoLA9FMMnNGSehX0s1PdjbEaACznAv/W219j2uvyo= github.com/kr/binarydist v0.1.0/go.mod h1:DY7S//GCoz1BCd0B0EVrinCKAZN3pXe+MDaIZbXQVgM= @@ -100,8 +101,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= -github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ= github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s= github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4= @@ -117,8 +118,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= -github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI= +github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -147,7 +148,6 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= @@ -166,16 +166,16 @@ go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= goa.design/goa/v3 v3.14.6 h1:mbu6n9be7puIqhn95zZaccn+k3QVqiR5teLvIrznt5c= goa.design/goa/v3 v3.14.6/go.mod h1:wcdZ2jy4oC2R93R3kBWKqyDapkVLQbILkOLXcqWMXHY= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y= -golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc= +golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -183,16 +183,16 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= From 4deb6424138f0e0ecb4f08e8af1276c4192a0d91 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 20:13:25 +0100 Subject: [PATCH 180/233] Bump goa.design/goa/v3 from 3.14.6 to 3.15.2 (#921) * Bump goa.design/goa/v3 from 3.14.6 to 3.15.2 Bumps goa.design/goa/v3 from 3.14.6 to 3.15.2. --- updated-dependencies: - dependency-name: goa.design/goa/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update licenses * bump goa --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/go-chi/chi/v5.dep.yml | 2 +- .../go/github.com/google/uuid.dep.yml | 2 +- .../go/goa.design/goa/v3/http.dep.yml | 4 ++-- .../goa.design/goa/v3/http/middleware.dep.yml | 4 ++-- .../go/goa.design/goa/v3/middleware.dep.yml | 4 ++-- .../go/goa.design/goa/v3/pkg.dep.yml | 4 ++-- gen/http/cli/arduino_create_agent/cli.go | 2 +- gen/http/tools/client/cli.go | 2 +- gen/http/tools/client/client.go | 2 +- gen/http/tools/client/encode_decode.go | 2 +- gen/http/tools/client/paths.go | 2 +- gen/http/tools/client/types.go | 2 +- gen/http/tools/server/encode_decode.go | 2 +- gen/http/tools/server/paths.go | 2 +- gen/http/tools/server/server.go | 2 +- gen/http/tools/server/types.go | 2 +- gen/tools/client.go | 2 +- gen/tools/endpoints.go | 2 +- gen/tools/service.go | 2 +- gen/tools/views/view.go | 2 +- go.mod | 10 +++++----- go.sum | 20 +++++++++---------- 22 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml index 57a10174e..ed956774e 100644 --- a/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/go-chi/chi/v5.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/go-chi/chi/v5 -version: v5.0.11 +version: v5.0.12 type: go summary: Package chi is a small, idiomatic and composable router for building HTTP services. diff --git a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml index f5f347770..e01f5c108 100644 --- a/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/google/uuid.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/google/uuid -version: v1.5.0 +version: v1.6.0 type: go summary: Package uuid generates and inspects UUIDs. homepage: https://pkg.go.dev/github.com/google/uuid diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml index fb20bfd51..e5895ae5b 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml @@ -1,13 +1,13 @@ --- name: goa.design/goa/v3/http -version: v3.14.6 +version: v3.15.2 type: go summary: Package http contains HTTP specific constructs that complement the code generated by Goa. homepage: https://pkg.go.dev/goa.design/goa/v3/http license: mit licenses: -- sources: v3@v3.14.6/LICENSE +- sources: v3@v3.15.2/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml index b7e6310ff..38592f929 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml @@ -1,6 +1,6 @@ --- name: goa.design/goa/v3/http/middleware -version: v3.14.6 +version: v3.15.2 type: go summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to provide ancilliary functionality such as capturing HTTP details into the request @@ -8,7 +8,7 @@ summary: Package middleware contains HTTP middlewares that wrap a HTTP handler t homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware license: mit licenses: -- sources: v3@v3.14.6/LICENSE +- sources: v3@v3.15.2/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml index 4974138e5..dadcb49d3 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml @@ -1,12 +1,12 @@ --- name: goa.design/goa/v3/middleware -version: v3.14.6 +version: v3.15.2 type: go summary: Package middleware contains transport independent middlewares. homepage: https://pkg.go.dev/goa.design/goa/v3/middleware license: mit licenses: -- sources: v3@v3.14.6/LICENSE +- sources: v3@v3.15.2/LICENSE text: | The MIT License (MIT) diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml index 7acdbd65d..c6366883f 100644 --- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml +++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml @@ -1,6 +1,6 @@ --- name: goa.design/goa/v3/pkg -version: v3.14.6 +version: v3.15.2 type: go summary: Package goa implements a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client @@ -8,7 +8,7 @@ summary: Package goa implements a Go framework for writing microservices that pr homepage: https://pkg.go.dev/goa.design/goa/v3/pkg license: mit licenses: -- sources: v3@v3.14.6/LICENSE +- sources: v3@v3.15.2/LICENSE text: | The MIT License (MIT) diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go index cc8fa2b3c..f7f301769 100644 --- a/gen/http/cli/arduino_create_agent/cli.go +++ b/gen/http/cli/arduino_create_agent/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // arduino-create-agent HTTP client CLI support package // diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go index 0ef560d4c..2e502af92 100644 --- a/gen/http/tools/client/cli.go +++ b/gen/http/tools/client/cli.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools HTTP client CLI support package // diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go index 0ffc2b813..3ada9a97d 100644 --- a/gen/http/tools/client/client.go +++ b/gen/http/tools/client/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools client HTTP transport // diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go index 8e265b393..4e887370e 100644 --- a/gen/http/tools/client/encode_decode.go +++ b/gen/http/tools/client/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools HTTP client encoders and decoders // diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go index 0c837aae9..a4e8e0f20 100644 --- a/gen/http/tools/client/paths.go +++ b/gen/http/tools/client/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go index 167a7bd68..47fe921d2 100644 --- a/gen/http/tools/client/types.go +++ b/gen/http/tools/client/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools HTTP client types // diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go index 96030487d..d8df0910c 100644 --- a/gen/http/tools/server/encode_decode.go +++ b/gen/http/tools/server/encode_decode.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools HTTP server encoders and decoders // diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go index 910488f08..01a007cae 100644 --- a/gen/http/tools/server/paths.go +++ b/gen/http/tools/server/paths.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // HTTP request path constructors for the tools service. // diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go index 7e8bc3049..fad105afd 100644 --- a/gen/http/tools/server/server.go +++ b/gen/http/tools/server/server.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools HTTP server // diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go index 4f7e6261c..aa3091679 100644 --- a/gen/http/tools/server/types.go +++ b/gen/http/tools/server/types.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools HTTP server types // diff --git a/gen/tools/client.go b/gen/tools/client.go index 358134d19..59f85886a 100644 --- a/gen/tools/client.go +++ b/gen/tools/client.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools client // diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go index 9e63ef162..02507a819 100644 --- a/gen/tools/endpoints.go +++ b/gen/tools/endpoints.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools endpoints // diff --git a/gen/tools/service.go b/gen/tools/service.go index c987a5837..028cb5129 100644 --- a/gen/tools/service.go +++ b/gen/tools/service.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools service // diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go index 6e36c9402..c1dcaaa7e 100644 --- a/gen/tools/views/view.go +++ b/gen/tools/views/view.go @@ -1,4 +1,4 @@ -// Code generated by goa v3.14.6, DO NOT EDIT. +// Code generated by goa v3.15.2, DO NOT EDIT. // // tools views // diff --git a/go.mod b/go.mod index 91f932f2d..bf9d2d109 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 - goa.design/goa/v3 v3.14.6 + goa.design/goa/v3 v3.15.2 golang.org/x/sys v0.18.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) @@ -39,14 +39,14 @@ require ( github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-chi/chi/v5 v5.0.11 // indirect + github.com/go-chi/chi/v5 v5.0.12 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.19.0 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus/v5 v5.0.4 // indirect github.com/google/go-cmp v0.5.9 // indirect - github.com/google/uuid v1.5.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/h2non/filetype v1.1.3 // indirect @@ -73,10 +73,10 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/arch v0.7.0 // indirect golang.org/x/crypto v0.21.0 // indirect - golang.org/x/mod v0.14.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.22.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.17.0 // indirect + golang.org/x/tools v0.19.0 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index be5fdb860..7b01d1c39 100644 --- a/go.sum +++ b/go.sum @@ -47,8 +47,8 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-chi/chi/v5 v5.0.11 h1:BnpYbFZ3T3S1WMpD79r7R5ThWX40TaFB7L31Y8xqSwA= -github.com/go-chi/chi/v5 v5.0.11/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s= +github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU= github.com/go-ini/ini v1.62.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= @@ -66,8 +66,8 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A= github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb/go.mod h1:MBpz1MS3P4HtRcBpQU4HcjvWXZ9q+JWacMEh2/BFYbg= github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 h1:vKXGRzlhWE9TUVhLqAOcgQbfYvReAnsvQQIcnvWMfcg= @@ -163,16 +163,16 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6Gj github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= -goa.design/goa/v3 v3.14.6 h1:mbu6n9be7puIqhn95zZaccn+k3QVqiR5teLvIrznt5c= -goa.design/goa/v3 v3.14.6/go.mod h1:wcdZ2jy4oC2R93R3kBWKqyDapkVLQbILkOLXcqWMXHY= +goa.design/goa/v3 v3.15.2 h1:ziyJuVR+GSBBmQ/Nkr7FDZx9qtEBpRA6wle3hYqJT9Q= +goa.design/goa/v3 v3.15.2/go.mod h1:zZLxqfk8mZu0Q6fmnnflXYbIJ6BA3SVSB6LSz7Tzcv4= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc= golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= @@ -189,8 +189,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= +golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From a7857ddd1bd2fc52da218b44849bde6cc0ea7e12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:45:29 +0100 Subject: [PATCH 181/233] Bump github.com/ProtonMail/go-crypto from 1.1.0-alpha.0 to 1.1.0-alpha.2 (#922) * Bump github.com/ProtonMail/go-crypto from 1.1.0-alpha.0 to 1.1.0-alpha.2 Bumps [github.com/ProtonMail/go-crypto](https://github.com/ProtonMail/go-crypto) from 1.1.0-alpha.0 to 1.1.0-alpha.2. - [Release notes](https://github.com/ProtonMail/go-crypto/releases) - [Commits](https://github.com/ProtonMail/go-crypto/compare/v1.1.0-alpha.0...v1.1.0-alpha.2) --- updated-dependencies: - dependency-name: github.com/ProtonMail/go-crypto dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/brainpool.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/eax.dep.yml | 6 +++--- .../ProtonMail/go-crypto/internal/byteutil.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/ocb.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/openpgp.dep.yml | 6 +++--- .../ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml | 6 +++--- .../ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml | 6 +++--- .../ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml | 6 +++--- .../ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml | 6 +++--- .../github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml | 6 +++--- .../go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 24 files changed, 69 insertions(+), 69 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml index 9ff05f5a5..08606aa3f 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/bitcurves -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/bitcurves license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml index a37d0d26d..5cc5c2938 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/brainpool -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package brainpool implements Brainpool elliptic curves. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/brainpool license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml index f0d43c6a4..24d186b3c 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/eax -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: 'Package eax provides an implementation of the EAX (encrypt-authenticate-translate) mode of operation, as described in Bellare, Rogaway, and Wagner "THE EAX MODE OF @@ -9,7 +9,7 @@ summary: 'Package eax provides an implementation of the EAX (encrypt-authenticat homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/eax license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -38,7 +38,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml index 78102ff1e..a3835acbf 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/internal/byteutil -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/internal/byteutil license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml index 898ffe498..4ca8e6a7f 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/ocb -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: 'Package ocb provides an implementation of the OCB (offset codebook) mode of operation, as described in RFC-7253 of the IRTF and in Rogaway, Bellare, Black @@ -9,7 +9,7 @@ summary: 'Package ocb provides an implementation of the OCB (offset codebook) mo homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/ocb license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -38,7 +38,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml index 09fabf560..b2cfe5b0e 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml index 930bb2e60..c8b82bc49 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/aes/keywrap -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package keywrap is an implementation of the RFC 3394 AES key wrapping algorithm. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml index 7d2324655..5d827c6f9 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/armor -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/armor license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml index 8c45634fe..19bbd5b3c 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ecdh -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package ecdh implements ECDH encryption, suitable for OpenPGP, as specified in RFC 6637, section 8. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdh license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml index d3346dfe2..6d4935361 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ecdsa -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package ecdsa implements ECDSA signature, suitable for OpenPGP, as specified in RFC 6637, section 5. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdsa license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml index a59bb0e5c..619142d7b 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ed25519 -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package ed25519 implements the ed25519 signature algorithm for OpenPGP as defined in the Open PGP crypto refresh. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ed25519 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml index 4733dccd3..ba001ce30 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ed448 -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package ed448 implements the ed448 signature algorithm for OpenPGP as defined in the Open PGP crypto refresh. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ed448 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml index ae036b97f..a197e12e7 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/eddsa -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package eddsa implements EdDSA signature, suitable for OpenPGP, as specified in https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/eddsa license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml index a6222424e..01278f3d4 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/elgamal -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml index ff687c4e1..cb6ba9441 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/errors -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml index e50857d96..9671f9971 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/algorithm -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml index cc6828898..080c67ae9 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/ecc -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/ecc license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml index 5db542f7f..871478bef 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/encoding -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package encoding implements openpgp packet field encodings as specified in RFC 4880 and 6637. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/encoding license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml index ac45a2968..990c817b3 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/packet -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml index 3c2d46e6d..3ec86e4b8 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/s2k -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1, and Argon2 specified in draft-ietf-openpgp-crypto-refresh-08 @@ -8,7 +8,7 @@ summary: Package s2k implements the various OpenPGP string-to-key transforms as homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml index 7c38b0920..79e3c7c83 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/x25519 -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/x25519 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml index bd8314c86..21d2d9e9c 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/x448 -version: v1.1.0-alpha.0 +version: v1.1.0-alpha.2 type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/x448 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.0/LICENSE +- sources: go-crypto@v1.1.0-alpha.2/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.0/PATENTS +- sources: go-crypto@v1.1.0-alpha.2/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index bf9d2d109..a04a54e1f 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( fyne.io/systray v1.10.0 - github.com/ProtonMail/go-crypto v1.1.0-alpha.0 + github.com/ProtonMail/go-crypto v1.1.0-alpha.2 github.com/arduino/go-paths-helper v1.12.0 github.com/arduino/go-serial-utils v0.1.2 github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 diff --git a/go.sum b/go.sum index 7b01d1c39..2680e44c1 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ fyne.io/systray v1.10.0 h1:Yr1D9Lxeiw3+vSuZWPlaHC8BMjIHZXJKkek706AfYQk= fyne.io/systray v1.10.0/go.mod h1:oM2AQqGJ1AMo4nNqZFYU8xYygSBZkW2hmdJ7n4yjedE= github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBWpuJGYfE= github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= -github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= -github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= From f6a4740263a80597fb6446d7d1c6683088aba903 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 11:51:04 +0100 Subject: [PATCH 182/233] Bump github.com/gin-contrib/cors from 1.7.0 to 1.7.1 (#930) * Bump github.com/gin-contrib/cors from 1.7.0 to 1.7.1 Bumps [github.com/gin-contrib/cors](https://github.com/gin-contrib/cors) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/gin-contrib/cors/releases) - [Changelog](https://github.com/gin-contrib/cors/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/cors/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: github.com/gin-contrib/cors dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/gin-contrib/cors.dep.yml | 2 +- .../go/github.com/pelletier/go-toml/v2.dep.yml | 2 +- .../go-toml/v2/internal/characters.dep.yml | 6 +++--- .../pelletier/go-toml/v2/internal/danger.dep.yml | 6 +++--- .../pelletier/go-toml/v2/internal/tracker.dep.yml | 6 +++--- .../pelletier/go-toml/v2/unstable.dep.yml | 6 +++--- go.mod | 6 +++--- go.sum | 13 +++++++------ 8 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml index 64947d500..17338019c 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/gin-contrib/cors -version: v1.7.0 +version: v1.7.1 type: go summary: homepage: https://pkg.go.dev/github.com/gin-contrib/cors diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml index d5fa95e44..5606d7166 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/pelletier/go-toml/v2 -version: v2.1.1 +version: v2.2.0 type: go summary: Package toml is a library to read and write TOML documents. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2 diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml index 1b6309e3a..f8d606fcd 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/characters -version: v2.1.1 +version: v2.2.0 type: go summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters license: other licenses: -- sources: v2@v2.1.1/LICENSE +- sources: v2@v2.2.0/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.1/README.md +- sources: v2@v2.2.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml index a1cd40f5c..0861b3f27 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/danger -version: v2.1.1 +version: v2.2.0 type: go summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger license: other licenses: -- sources: v2@v2.1.1/LICENSE +- sources: v2@v2.2.0/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.1/README.md +- sources: v2@v2.2.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml index 3b5b51597..5f2e85da2 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/pelletier/go-toml/v2/internal/tracker -version: v2.1.1 +version: v2.2.0 type: go summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker license: other licenses: -- sources: v2@v2.1.1/LICENSE +- sources: v2@v2.2.0/LICENSE text: | The MIT License (MIT) @@ -30,6 +30,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.1/README.md +- sources: v2@v2.2.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml index c37f1e4ea..db67db5b2 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/pelletier/go-toml/v2/unstable -version: v2.1.1 +version: v2.2.0 type: go summary: Package unstable provides APIs that do not meet the backward compatibility guarantees yet. homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable license: other licenses: -- sources: v2@v2.1.1/LICENSE +- sources: v2@v2.2.0/LICENSE text: | The MIT License (MIT) @@ -31,6 +31,6 @@ licenses: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -- sources: v2@v2.1.1/README.md +- sources: v2@v2.2.0/README.md text: The MIT License (MIT). Read [LICENSE](LICENSE). notices: [] diff --git a/go.mod b/go.mod index a04a54e1f..cae29b64f 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v3 v3.1.1 - github.com/gin-contrib/cors v1.7.0 + github.com/gin-contrib/cors v1.7.1 github.com/gin-gonic/gin v1.9.1 github.com/go-ini/ini v1.62.0 github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49 @@ -30,7 +30,7 @@ require ( require ( github.com/AnatolyRugalev/goregen v0.1.0 // indirect github.com/arduino/go-properties-orderedmap v1.8.0 // indirect - github.com/bytedance/sonic v1.11.2 // indirect + github.com/bytedance/sonic v1.11.3 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.1 // indirect github.com/cloudflare/circl v1.3.7 // indirect @@ -62,7 +62,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.1.1 // indirect + github.com/pelletier/go-toml/v2 v2.2.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect diff --git a/go.sum b/go.sum index 2680e44c1..c10f8d734 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdn github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= -github.com/bytedance/sonic v1.11.2 h1:ywfwo0a/3j9HR8wsYGWsIWl2mvRsI950HyoxiBERw5A= -github.com/bytedance/sonic v1.11.2/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= +github.com/bytedance/sonic v1.11.3 h1:jRN+yEjakWh8aK5FzrciUHG8OFXK+4/KrAX/ysEtHAA= +github.com/bytedance/sonic v1.11.3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= @@ -41,8 +41,8 @@ github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZs github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI= github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0= github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk= -github.com/gin-contrib/cors v1.7.0 h1:wZX2wuZ0o7rV2/1i7gb4Jn+gW7HBqaP91fizJkBUJOA= -github.com/gin-contrib/cors v1.7.0/go.mod h1:cI+h6iOAyxKRtUtC6iF/Si1KSFvGm/gK+kshxlCi8ro= +github.com/gin-contrib/cors v1.7.1 h1:s9SIppU/rk8enVvkzwiC2VK3UZ/0NNGsWfUKvV55rqs= +github.com/gin-contrib/cors v1.7.1/go.mod h1:n/Zj7B4xyrgk/cX1WCX2dkzFfaNm/xJb6oIUk7WTtps= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= @@ -118,8 +118,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI= -github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= +github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -142,6 +142,7 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= From b0a9091c2f7b0c6569befad9f62d2b4aa78dc442 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:10:08 +0100 Subject: [PATCH 183/233] move tests using staging index to production one (#932) --- index/index_test.go | 4 ++-- main_test.go | 4 ++-- tools/tools.go | 2 +- v2/pkgs/tools_test.go | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/index/index_test.go b/index/index_test.go index ea6433574..4a19a02be 100644 --- a/index/index_test.go +++ b/index/index_test.go @@ -9,12 +9,12 @@ import ( ) func TestInit(t *testing.T) { - indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + indexURL := "https://downloads.arduino.cc/packages/package_index.json" // Instantiate Index tempDir := paths.New(t.TempDir()).Join(".arduino-create") Index := Init(indexURL, tempDir) require.DirExists(t, tempDir.String()) - fileName := "package_staging_index.json" + fileName := "package_index.json" signatureName := fileName + ".sig" parsedURL, _ := url.Parse(indexURL) require.Equal(t, Index.IndexURL, *parsedURL) diff --git a/main_test.go b/main_test.go index 9abb5d781..c8276bba8 100644 --- a/main_test.go +++ b/main_test.go @@ -89,7 +89,7 @@ func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { func TestInstallToolV2(t *testing.T) { - indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + indexURL := "https://downloads.arduino.cc/packages/package_index.json" // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) @@ -170,7 +170,7 @@ func TestInstallToolV2(t *testing.T) { } func TestInstalledHead(t *testing.T) { - indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + indexURL := "https://downloads.arduino.cc/packages/package_index.json" // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) diff --git a/tools/tools.go b/tools/tools.go index ac3e6109b..e641db351 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -37,7 +37,7 @@ import ( // Usage: // You have to call the New() function passing it the required parameters: // -// index = index.Init("https://downloads.arduino.cc/packages/package_staging_index.json", dataDir) +// index = index.Init("https://downloads.arduino.cc/packages/package_index.json", dataDir) // tools := tools.New(dataDir, index, logger) // Tools will represent the installed tools diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index ae76ebfa0..78c56398f 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -41,7 +41,7 @@ func TestTools(t *testing.T) { } defer os.RemoveAll(tmp) - indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + indexURL := "https://downloads.arduino.cc/packages/package_index.json" // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) @@ -122,7 +122,7 @@ func TestEvilFilename(t *testing.T) { // Initialize indexes with a temp folder tmp := t.TempDir() - indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + indexURL := "https://downloads.arduino.cc/packages/package_index.json" // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) @@ -191,7 +191,7 @@ func TestInstalledHead(t *testing.T) { // Initialize indexes with a temp folder tmp := t.TempDir() - indexURL := "https://downloads.arduino.cc/packages/package_staging_index.json" + indexURL := "https://downloads.arduino.cc/packages/package_index.json" // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) From 51f4ee412e75db3b578c000ae223805484d6b424 Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Mon, 15 Apr 2024 09:34:29 +0200 Subject: [PATCH 184/233] Remove existing certificates from the keychain (#933) * Add function to uninstall certificate from the system keychain * Remove certificates from the keychain using the systray icon * Improve error messages when installing and uninstalling certificates * Remove certificate from the keychain if an error occurs during install --- certificates/install_darwin.go | 45 ++++++++++++++++++++++++++++++++- certificates/install_default.go | 6 +++++ systray/systray_real.go | 12 +++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/certificates/install_darwin.go b/certificates/install_darwin.go index 134a4bc0c..2c84d7dcb 100644 --- a/certificates/install_darwin.go +++ b/certificates/install_darwin.go @@ -18,7 +18,9 @@ package certificates //inspired by https://stackoverflow.com/questions/12798950/ios-install-ssl-certificate-programmatically /* +// Explicitly tell the GCC compiler that the language is Objective-C. #cgo CFLAGS: -x objective-c +// Pass the list of macOS frameworks needed by this piece of Objective-C code. #cgo LDFLAGS: -framework Cocoa #import @@ -61,6 +63,32 @@ const char *installCert(const char *path) { return ""; } +const char *uninstallCert() { + // Each line is a key-value of the dictionary. Note: the the inverted order, value first then key. + NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys: + (id)kSecClassCertificate, kSecClass, + CFSTR("Arduino"), kSecAttrLabel, + kSecMatchLimitOne, kSecMatchLimit, + kCFBooleanTrue, kSecReturnAttributes, + nil]; + + OSStatus err = noErr; + // Use this function to check for errors + err = SecItemCopyMatching((CFDictionaryRef)dict, nil); + if (err == noErr) { + err = SecItemDelete((CFDictionaryRef)dict); + if (err != noErr) { + NSString *errString = [@"Could not delete the certificates. Error: " stringByAppendingFormat:@"%d", err]; + NSLog(@"%@", errString); + return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];; + } + } else if (err != errSecItemNotFound){ + NSString *errString = [@"Error: " stringByAppendingFormat:@"%d", err]; + NSLog(@"%@", errString); + return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];; + } + return ""; +} */ import "C" import ( @@ -82,7 +110,22 @@ func InstallCertificate(cert *paths.Path) error { p := C.installCert(ccert) s := C.GoString(p) if len(s) != 0 { - oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Error installing certificates\"") + oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Arduino Agent: Error installing certificates\"") + _ = oscmd.Run() + _ = UninstallCertificates() + return errors.New(s) + } + return nil +} + +// UninstallCertificates will uninstall the certificates from the system keychain on macos, +// if something goes wrong will show a dialog with the error and return an error +func UninstallCertificates() error { + log.Infof("Uninstalling certificates") + p := C.uninstallCert() + s := C.GoString(p) + if len(s) != 0 { + oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Arduino Agent: Error uninstalling certificates\"") _ = oscmd.Run() return errors.New(s) } diff --git a/certificates/install_default.go b/certificates/install_default.go index 2a1cf794f..1b7f24bb9 100644 --- a/certificates/install_default.go +++ b/certificates/install_default.go @@ -30,3 +30,9 @@ func InstallCertificate(cert *paths.Path) error { log.Warn("platform not supported for the certificate install") return errors.New("platform not supported for the certificate install") } + +// UninstallCertificates won't do anything on unsupported Operative Systems +func UninstallCertificates() error { + log.Warn("platform not supported for the certificates uninstall") + return errors.New("platform not supported for the certificates uninstall") +} diff --git a/systray/systray_real.go b/systray/systray_real.go index 9e4e5aac1..62e52e21d 100644 --- a/systray/systray_real.go +++ b/systray/systray_real.go @@ -64,12 +64,15 @@ func (s *Systray) start() { s.updateMenuItem(mRmCrashes, config.LogsIsEmpty()) mGenCerts := systray.AddMenuItem("Generate and Install HTTPS certificates", "HTTPS Certs") + mRemoveCerts := systray.AddMenuItem("Remove HTTPS certificates", "") // On linux/windows chrome/firefox/edge(chromium) the agent works without problems on plain HTTP, // so we disable the menuItem to generate/install the certificates if runtime.GOOS != "darwin" { s.updateMenuItem(mGenCerts, true) + s.updateMenuItem(mRemoveCerts, true) } else { s.updateMenuItem(mGenCerts, config.CertsExist()) + s.updateMenuItem(mRemoveCerts, !config.CertsExist()) } // Add pause/quit @@ -103,6 +106,15 @@ func (s *Systray) start() { cert.DeleteCertificates(certDir) } s.Restart() + case <-mRemoveCerts.ClickedCh: + err := cert.UninstallCertificates() + if err != nil { + log.Errorf("cannot uninstall certificates something went wrong: %s", err) + } else { + certDir := config.GetCertificatesDir() + cert.DeleteCertificates(certDir) + } + s.Restart() case <-mPause.ClickedCh: s.Pause() case <-mQuit.ClickedCh: From 8e28a0ca4fdf76152c36abb2a2dfe894301879c4 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 16 Apr 2024 16:47:06 +0200 Subject: [PATCH 185/233] Removed unnecessary use of channels (#938) --- main.go | 2 - serial.go | 114 +++++++++++++++++++------------------------------- serialport.go | 4 +- 3 files changed, 44 insertions(+), 76 deletions(-) diff --git a/main.go b/main.go index 65b8219ad..45ae5259c 100755 --- a/main.go +++ b/main.go @@ -346,8 +346,6 @@ func loop() { go serialPorts.Run() // launch the hub routine which is the singleton for the websocket server go h.run() - // launch our serial port routine - go sh.run() // launch our dummy data routine //go d.run() diff --git a/serial.go b/serial.go index 393f77658..f576c60a5 100755 --- a/serial.go +++ b/serial.go @@ -29,25 +29,10 @@ import ( "github.com/sirupsen/logrus" ) -type writeRequest struct { - p *serport - d string - buffer string -} - type serialhub struct { // Opened serial ports. ports map[*serport]bool - //write chan *serport, chan []byte - write chan writeRequest - - // Register requests from the connections. - register chan *serport - - // Unregister requests from connections. - unregister chan *serport - mu sync.Mutex } @@ -75,46 +60,39 @@ type SpPortItem struct { var serialPorts SerialPortList var sh = serialhub{ - //write: make(chan *serport, chan []byte), - write: make(chan writeRequest), - register: make(chan *serport), - unregister: make(chan *serport), - ports: make(map[*serport]bool), + ports: make(map[*serport]bool), } -func (sh *serialhub) run() { - - //log.Print("Inside run of serialhub") - //cmdIdCtr := 0 - - for { - select { - case p := <-sh.register: - sh.mu.Lock() - //log.Print("Registering a port: ", p.portConf.Name) - h.broadcastSys <- []byte("{\"Cmd\":\"Open\",\"Desc\":\"Got register/open on port.\",\"Port\":\"" + p.portConf.Name + "\",\"Baud\":" + strconv.Itoa(p.portConf.Baud) + ",\"BufferType\":\"" + p.BufferType + "\"}") - sh.ports[p] = true - sh.mu.Unlock() - case p := <-sh.unregister: - sh.mu.Lock() - //log.Print("Unregistering a port: ", p.portConf.Name) - h.broadcastSys <- []byte("{\"Cmd\":\"Close\",\"Desc\":\"Got unregister/close on port.\",\"Port\":\"" + p.portConf.Name + "\",\"Baud\":" + strconv.Itoa(p.portConf.Baud) + "}") - delete(sh.ports, p) - close(p.sendBuffered) - close(p.sendNoBuf) - sh.mu.Unlock() - case wr := <-sh.write: - // if user sent in the commands as one text mode line - switch wr.buffer { - case "send": - wr.p.sendBuffered <- wr.d - case "sendnobuf": - wr.p.sendNoBuf <- []byte(wr.d) - case "sendraw": - wr.p.sendRaw <- wr.d - } - // no default since we alredy verified in spWrite() - } +// Register serial ports from the connections. +func (sh *serialhub) Register(port *serport) { + sh.mu.Lock() + //log.Print("Registering a port: ", p.portConf.Name) + h.broadcastSys <- []byte("{\"Cmd\":\"Open\",\"Desc\":\"Got register/open on port.\",\"Port\":\"" + port.portConf.Name + "\",\"Baud\":" + strconv.Itoa(port.portConf.Baud) + ",\"BufferType\":\"" + port.BufferType + "\"}") + sh.ports[port] = true + sh.mu.Unlock() +} + +// Unregister requests from connections. +func (sh *serialhub) Unregister(port *serport) { + sh.mu.Lock() + //log.Print("Unregistering a port: ", p.portConf.Name) + h.broadcastSys <- []byte("{\"Cmd\":\"Close\",\"Desc\":\"Got unregister/close on port.\",\"Port\":\"" + port.portConf.Name + "\",\"Baud\":" + strconv.Itoa(port.portConf.Baud) + "}") + delete(sh.ports, port) + close(port.sendBuffered) + close(port.sendNoBuf) + sh.mu.Unlock() +} + +// Write data to the serial port. +func (sh *serialhub) Write(port *serport, data string, sendMode string) { + // if user sent in the commands as one text mode line + switch sendMode { + case "send": + port.sendBuffered <- data + case "sendnobuf": + port.sendNoBuf <- []byte(data) + case "sendraw": + port.sendRaw <- data } } @@ -296,38 +274,30 @@ func spWrite(arg string) { spErr(errstr) return } + bufferingMode := args[0] portname := strings.Trim(args[1], " ") - //log.Println("The port to write to is:" + portname + "---") - //log.Println("The data is:" + args[2] + "---") + data := args[2] - // see if we have this port open - myport, isFound := sh.FindPortByName(portname) + //log.Println("The port to write to is:" + portname + "---") + //log.Println("The data is:" + data + "---") - if !isFound { + // See if we have this port open + port, ok := sh.FindPortByName(portname) + if !ok { // we couldn't find the port, so send err spErr("We could not find the serial port " + portname + " that you were trying to write to.") return } - // we found our port - // create our write request - var wr writeRequest - wr.p = myport - - // see if args[0] is send or sendnobuf or sendraw - switch args[0] { + // see if bufferingMode is valid + switch bufferingMode { case "send", "sendnobuf", "sendraw": - wr.buffer = args[0] + // valid buffering mode, go ahead default: spErr("Unsupported send command:" + args[0] + ". Please specify a valid one") return } - // include newline or not in the write? that is the question. - // for now lets skip the newline - //wr.d = []byte(args[2] + "\n") - wr.d = args[2] //[]byte(args[2]) - // send it to the write channel - sh.write <- wr + sh.Write(port, data, bufferingMode) } diff --git a/serialport.go b/serialport.go index 09fd2cda1..084d7c9a9 100755 --- a/serialport.go +++ b/serialport.go @@ -323,8 +323,8 @@ func spHandlerOpen(portname string, baud int, buftype string) { bw.Init() p.bufferwatcher = bw - sh.register <- p - defer func() { sh.unregister <- p }() + sh.Register(p) + defer sh.Unregister(p) serialPorts.List() From c42fcd727840bc4ae112b2836f8194290b5054ad Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 16 Apr 2024 17:55:43 +0200 Subject: [PATCH 186/233] Restore functionality of 'is_open' field in portlist (#939) * Restore functionality of 'is_open' field in portlist * Added comments --- serial.go | 29 +++++++++++++++++++++++++++++ serialport.go | 4 ++++ 2 files changed, 33 insertions(+) diff --git a/serial.go b/serial.go index f576c60a5..96778734f 100755 --- a/serial.go +++ b/serial.go @@ -239,6 +239,35 @@ func (sp *SerialPortList) remove(removedPort *discovery.Port) { }) } +// MarkPortAsOpened marks a port as opened by the user +func (sp *SerialPortList) MarkPortAsOpened(portname string) { + sp.portsLock.Lock() + defer sp.portsLock.Unlock() + port := sp.getPortByName(portname) + if port != nil { + port.IsOpen = true + } +} + +// MarkPortAsClosed marks a port as no more opened by the user +func (sp *SerialPortList) MarkPortAsClosed(portname string) { + sp.portsLock.Lock() + defer sp.portsLock.Unlock() + port := sp.getPortByName(portname) + if port != nil { + port.IsOpen = false + } +} + +func (sp *SerialPortList) getPortByName(portname string) *SpPortItem { + for _, port := range sp.Ports { + if port.Name == portname { + return port + } + } + return nil +} + func spErr(err string) { //log.Println("Sending err back: ", err) //h.broadcastSys <- []byte(err) diff --git a/serialport.go b/serialport.go index 084d7c9a9..43c810ff2 100755 --- a/serialport.go +++ b/serialport.go @@ -39,6 +39,7 @@ type serport struct { // The serial port connection. portConf *SerialConfig portIo io.ReadWriteCloser + portName string // Keep track of whether we're being actively closed // just so we don't show scary error messages @@ -305,6 +306,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { sendRaw: make(chan string), portConf: conf, portIo: sp, + portName: portname, BufferType: buftype} var bw Bufferflow @@ -326,6 +328,7 @@ func spHandlerOpen(portname string, baud int, buftype string) { sh.Register(p) defer sh.Unregister(p) + serialPorts.MarkPortAsOpened(portname) serialPorts.List() // this is internally buffered thread to not send to serial port if blocked @@ -349,5 +352,6 @@ func spHandlerClose(p *serport) { func spCloseReal(p *serport) { p.bufferwatcher.Close() p.portIo.Close() + serialPorts.MarkPortAsClosed(p.portName) serialPorts.List() } From a462190f4f0050254a2c76187123bf12572f59ae Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 17 Apr 2024 13:51:44 +0200 Subject: [PATCH 187/233] Another round of code clean-up (#940) * Removed unused variable * Removed always-true condition * Make Write a method of serport * Removed useless counter itemsInBuffer * Made spCloseRead a method of serialport * Inlined spHandlerClose --- conn.go | 4 ---- serial.go | 29 ++++------------------------- serialport.go | 41 ++++++++++++++++++++--------------------- 3 files changed, 24 insertions(+), 50 deletions(-) diff --git a/conn.go b/conn.go index 02b13ba8d..727a5cadb 100644 --- a/conn.go +++ b/conn.go @@ -124,9 +124,6 @@ func uploadHandler(c *gin.Context) { return } - var filePaths []string - filePaths = append(filePaths, filePath) - tmpdir, err := os.MkdirTemp("", "extrafiles") if err != nil { c.String(http.StatusBadRequest, err.Error()) @@ -139,7 +136,6 @@ func uploadHandler(c *gin.Context) { c.String(http.StatusBadRequest, err.Error()) return } - filePaths = append(filePaths, path) log.Printf("Saving %s on %s", extraFile.Filename, path) err = os.MkdirAll(filepath.Dir(path), 0744) diff --git a/serial.go b/serial.go index 96778734f..64e5b8f7f 100755 --- a/serial.go +++ b/serial.go @@ -83,19 +83,6 @@ func (sh *serialhub) Unregister(port *serport) { sh.mu.Unlock() } -// Write data to the serial port. -func (sh *serialhub) Write(port *serport, data string, sendMode string) { - // if user sent in the commands as one text mode line - switch sendMode { - case "send": - port.sendBuffered <- data - case "sendnobuf": - port.sendNoBuf <- []byte(data) - case "sendraw": - port.sendRaw <- data - } -} - func (sh *serialhub) FindPortByName(portname string) (*serport, bool) { sh.mu.Lock() defer sh.mu.Unlock() @@ -275,18 +262,10 @@ func spErr(err string) { } func spClose(portname string) { - // look up the registered port by name - // then call the close method inside serialport - // that should cause an unregister channel call back - // to myself - - myport, isFound := sh.FindPortByName(portname) - - if isFound { - // we found our port - spHandlerClose(myport) + if myport, ok := sh.FindPortByName(portname); ok { + h.broadcastSys <- []byte("Closing serial port " + portname) + myport.Close() } else { - // we couldn't find the port, so send err spErr("We could not find the serial port " + portname + " that you were trying to close.") } } @@ -328,5 +307,5 @@ func spWrite(arg string) { } // send it to the write channel - sh.Write(port, data, bufferingMode) + port.Write(data, bufferingMode) } diff --git a/serialport.go b/serialport.go index 43c810ff2..a11483f63 100755 --- a/serialport.go +++ b/serialport.go @@ -47,9 +47,6 @@ type serport struct { isClosingDueToError bool - // counter incremented on queue, decremented on write - itemsInBuffer int - // buffered channel containing up to 25600 outbound messages. sendBuffered chan string @@ -161,18 +158,29 @@ func (p *serport) reader(buftype string) { // Keep track of time difference between two consecutive read with n == 0 and err == nil // we get here if the port has been disconnected while open (cpu usage will jump to 100%) // let's close the port only if the events are extremely fast (<1ms) - if err == nil { - diff := time.Since(timeCheckOpen) - if diff.Nanoseconds() < 1000000 { - p.isClosingDueToError = true - break - } - timeCheckOpen = time.Now() + diff := time.Since(timeCheckOpen) + if diff.Nanoseconds() < 1000000 { + p.isClosingDueToError = true + break } + timeCheckOpen = time.Now() } } if p.isClosingDueToError { - spCloseReal(p) + p.Close() + } +} + +// Write data to the serial port. +func (p *serport) Write(data string, sendMode string) { + // if user sent in the commands as one text mode line + switch sendMode { + case "send": + p.sendBuffered <- data + case "sendnobuf": + p.sendNoBuf <- []byte(data) + case "sendraw": + p.sendRaw <- data } } @@ -213,10 +221,6 @@ func (p *serport) writerNoBuf() { // if we get here, we were able to write successfully // to the serial port because it blocks until it can write - // decrement counter - p.itemsInBuffer-- - log.Printf("itemsInBuffer:%v\n", p.itemsInBuffer) - // FINALLY, OF ALL THE CODE IN THIS PROJECT // WE TRULY/FINALLY GET TO WRITE TO THE SERIAL PORT! n2, err := p.portIo.Write(data) @@ -343,13 +347,8 @@ func spHandlerOpen(portname string, baud int, buftype string) { serialPorts.List() } -func spHandlerClose(p *serport) { +func (p *serport) Close() { p.isClosing = true - h.broadcastSys <- []byte("Closing serial port " + p.portConf.Name) - spCloseReal(p) -} - -func spCloseReal(p *serport) { p.bufferwatcher.Close() p.portIo.Close() serialPorts.MarkPortAsClosed(p.portName) From d9135cd39bd3828c3b4ce3464e7e2d6a13adf5d8 Mon Sep 17 00:00:00 2001 From: Alby <30591904+Xayton@users.noreply.github.com> Date: Tue, 30 Apr 2024 16:47:07 +0200 Subject: [PATCH 188/233] Improve the "Debug Console" to add functionality and fix bugs (#944) * Update the home.html file that powers the "Debug Console": - Improved the CSS code and JS code - Added the support for the "show 'list'" options as a select - Add an additional section to show only the "list" commands, when the user selects such option - Fixed the code detecting "list" messages, as it was missing cases where the JSON content had a "Ports" property but its value was null instead of an empty array. * The Debug Console is now jQuery-free. - The code has been restructured to be simpler and avoid global variable as much as possible. --- home.html | 503 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 294 insertions(+), 209 deletions(-) diff --git a/home.html b/home.html index 30c241f22..e66b7c975 100644 --- a/home.html +++ b/home.html @@ -1,236 +1,321 @@ + -Arduino Create Agent Debug Console - - - - - + + - + function exportLogs() { + const link = document.createElement('a'); + link.setAttribute('download', 'agent-log.txt'); + const text = document.getElementById('log').textContent; + link.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); + link.click(); + } + + - -
+ + +
+

-            
+
+
+
\ No newline at end of file

From 01c2e3e9003f7543cc732f322dbdc6d45cb19918 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 May 2024 11:54:52 +0200
Subject: [PATCH 189/233] Bump golang.org/x/sys from 0.18.0 to 0.19.0 (#934)

* Bump golang.org/x/sys from 0.18.0 to 0.19.0

Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.18.0 to 0.19.0.
- [Commits](https://github.com/golang/sys/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] 

* update licenses

---------

Signed-off-by: dependabot[bot] 
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Umberto Baldi 
---
 .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml   | 6 +++---
 go.mod                                                      | 2 +-
 go.sum                                                      | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml
index 923a8975f..9e39a68f6 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/sys/unix
-version: v0.18.0
+version: v0.19.0
 type: go
 summary: Package unix contains an interface to the low-level operating system primitives.
 homepage: https://pkg.go.dev/golang.org/x/sys/unix
 license: bsd-3-clause
 licenses:
-- sources: sys@v0.18.0/LICENSE
+- sources: sys@v0.19.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: sys@v0.18.0/PATENTS
+- sources: sys@v0.19.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/go.mod b/go.mod
index cae29b64f..4e3b29fbd 100644
--- a/go.mod
+++ b/go.mod
@@ -23,7 +23,7 @@ require (
 	github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9
 	go.bug.st/serial v1.6.1
 	goa.design/goa/v3 v3.15.2
-	golang.org/x/sys v0.18.0
+	golang.org/x/sys v0.19.0
 	gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa
 )
 
diff --git a/go.sum b/go.sum
index c10f8d734..99d5ebb86 100644
--- a/go.sum
+++ b/go.sum
@@ -184,8 +184,8 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
-golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
+golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
 golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=

From e78d61888a6b5fd6ab2dd6cdfd6161328d5ffcc7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 May 2024 12:14:18 +0200
Subject: [PATCH 190/233] Bump goa.design/goa/v3 from 3.15.2 to 3.16.1 (#937)

* Bump goa.design/goa/v3 from 3.15.2 to 3.16.1

Bumps goa.design/goa/v3 from 3.15.2 to 3.16.1.

---
updated-dependencies:
- dependency-name: goa.design/goa/v3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] 

* update licenses

* run `goa gen github.com/arduino/arduino-create-agent/design`

---------

Signed-off-by: dependabot[bot] 
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Umberto Baldi 
---
 .../go/goa.design/goa/v3/http.dep.yml         |  4 ++--
 .../goa.design/goa/v3/http/middleware.dep.yml |  4 ++--
 .../go/goa.design/goa/v3/middleware.dep.yml   |  4 ++--
 .../go/goa.design/goa/v3/pkg.dep.yml          |  4 ++--
 .../go/golang.org/x/crypto/argon2.dep.yml     |  6 ++---
 .../go/golang.org/x/crypto/blake2b.dep.yml    |  6 ++---
 .../go/golang.org/x/crypto/cast5.dep.yml      |  6 ++---
 .../go/golang.org/x/crypto/sha3.dep.yml       |  6 ++---
 .../go/golang.org/x/net/html.dep.yml          |  6 ++---
 .../go/golang.org/x/net/html/atom.dep.yml     |  6 ++---
 .../go/golang.org/x/net/http2.dep.yml         |  6 ++---
 .../go/golang.org/x/net/http2/h2c.dep.yml     |  6 ++---
 .../golang.org/x/net/internal/socks.dep.yml   |  6 ++---
 .../go/golang.org/x/net/proxy.dep.yml         |  6 ++---
 gen/http/cli/arduino_create_agent/cli.go      |  2 +-
 gen/http/tools/client/cli.go                  |  2 +-
 gen/http/tools/client/client.go               |  2 +-
 gen/http/tools/client/encode_decode.go        |  2 +-
 gen/http/tools/client/paths.go                |  2 +-
 gen/http/tools/client/types.go                |  2 +-
 gen/http/tools/server/encode_decode.go        |  2 +-
 gen/http/tools/server/paths.go                |  2 +-
 gen/http/tools/server/server.go               |  2 +-
 gen/http/tools/server/types.go                |  2 +-
 gen/tools/client.go                           |  2 +-
 gen/tools/endpoints.go                        |  2 +-
 gen/tools/service.go                          |  2 +-
 gen/tools/views/view.go                       |  2 +-
 go.mod                                        | 11 +++++----
 go.sum                                        | 24 +++++++++----------
 30 files changed, 70 insertions(+), 69 deletions(-)

diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml
index e5895ae5b..5b8731876 100644
--- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml
+++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: goa.design/goa/v3/http
-version: v3.15.2
+version: v3.16.1
 type: go
 summary: Package http contains HTTP specific constructs that complement the code generated
   by Goa.
 homepage: https://pkg.go.dev/goa.design/goa/v3/http
 license: mit
 licenses:
-- sources: v3@v3.15.2/LICENSE
+- sources: v3@v3.16.1/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml
index 38592f929..193108077 100644
--- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml
+++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/http/middleware.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: goa.design/goa/v3/http/middleware
-version: v3.15.2
+version: v3.16.1
 type: go
 summary: Package middleware contains HTTP middlewares that wrap a HTTP handler to
   provide ancilliary functionality such as capturing HTTP details into the request
@@ -8,7 +8,7 @@ summary: Package middleware contains HTTP middlewares that wrap a HTTP handler t
 homepage: https://pkg.go.dev/goa.design/goa/v3/http/middleware
 license: mit
 licenses:
-- sources: v3@v3.15.2/LICENSE
+- sources: v3@v3.16.1/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml
index dadcb49d3..f84516f4f 100644
--- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml
+++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/middleware.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: goa.design/goa/v3/middleware
-version: v3.15.2
+version: v3.16.1
 type: go
 summary: Package middleware contains transport independent middlewares.
 homepage: https://pkg.go.dev/goa.design/goa/v3/middleware
 license: mit
 licenses:
-- sources: v3@v3.15.2/LICENSE
+- sources: v3@v3.16.1/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml
index c6366883f..fc7a78b9d 100644
--- a/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml
+++ b/.licenses/arduino-create-agent/go/goa.design/goa/v3/pkg.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: goa.design/goa/v3/pkg
-version: v3.15.2
+version: v3.16.1
 type: go
 summary: Package goa implements a Go framework for writing microservices that promotes
   best practice by providing a single source of truth from which server code, client
@@ -8,7 +8,7 @@ summary: Package goa implements a Go framework for writing microservices that pr
 homepage: https://pkg.go.dev/goa.design/goa/v3/pkg
 license: mit
 licenses:
-- sources: v3@v3.15.2/LICENSE
+- sources: v3@v3.16.1/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml
index d1d74d423..0829f6347 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/crypto/argon2
-version: v0.21.0
+version: v0.22.0
 type: go
 summary: Package argon2 implements the key derivation function Argon2.
 homepage: https://pkg.go.dev/golang.org/x/crypto/argon2
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.21.0/LICENSE
+- sources: crypto@v0.22.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.21.0/PATENTS
+- sources: crypto@v0.22.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml
index 6ab357baf..6d6d92d28 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: golang.org/x/crypto/blake2b
-version: v0.21.0
+version: v0.22.0
 type: go
 summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693
   and the extendable output function (XOF) BLAKE2Xb.
 homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.21.0/LICENSE
+- sources: crypto@v0.22.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.21.0/PATENTS
+- sources: crypto@v0.22.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml
index 04ad057a3..fa791187f 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/crypto/cast5
-version: v0.21.0
+version: v0.22.0
 type: go
 summary: Package cast5 implements CAST5, as defined in RFC 2144.
 homepage: https://pkg.go.dev/golang.org/x/crypto/cast5
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.21.0/LICENSE
+- sources: crypto@v0.22.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.21.0/PATENTS
+- sources: crypto@v0.22.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml
index 45a62ab94..b8a9b9c4b 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: golang.org/x/crypto/sha3
-version: v0.21.0
+version: v0.22.0
 type: go
 summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and
   the SHAKE variable-output-length hash functions defined by FIPS-202.
 homepage: https://pkg.go.dev/golang.org/x/crypto/sha3
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.21.0/LICENSE
+- sources: crypto@v0.22.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.21.0/PATENTS
+- sources: crypto@v0.22.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml
index 058ba18b2..26dfe21d6 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/html
-version: v0.22.0
+version: v0.24.0
 type: go
 summary: Package html implements an HTML5-compliant tokenizer and parser.
 homepage: https://pkg.go.dev/golang.org/x/net/html
 license: other
 licenses:
-- sources: net@v0.22.0/LICENSE
+- sources: net@v0.24.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.22.0/PATENTS
+- sources: net@v0.24.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml
index dcac31fa0..f929ee976 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: golang.org/x/net/html/atom
-version: v0.22.0
+version: v0.24.0
 type: go
 summary: 'Package atom provides integer codes (also known as atoms) for a fixed set
   of frequently occurring HTML strings: tag names and attribute keys such as "p" and
@@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed
 homepage: https://pkg.go.dev/golang.org/x/net/html/atom
 license: other
 licenses:
-- sources: net@v0.22.0/LICENSE
+- sources: net@v0.24.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -37,7 +37,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.22.0/PATENTS
+- sources: net@v0.24.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml
index b4fbb5f5f..0bc41da62 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/http2
-version: v0.22.0
+version: v0.24.0
 type: go
 summary: Package http2 implements the HTTP/2 protocol.
 homepage: https://pkg.go.dev/golang.org/x/net/http2
 license: bsd-3-clause
 licenses:
-- sources: net@v0.22.0/LICENSE
+- sources: net@v0.24.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.22.0/PATENTS
+- sources: net@v0.24.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml
index ae2032104..c80f2b839 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/http2/h2c
-version: v0.22.0
+version: v0.24.0
 type: go
 summary: Package h2c implements the unencrypted "h2c" form of HTTP/2.
 homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c
 license: bsd-3-clause
 licenses:
-- sources: net@v0.22.0/LICENSE
+- sources: net@v0.24.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.22.0/PATENTS
+- sources: net@v0.24.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml
index 74501f355..58a7adef8 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/internal/socks
-version: v0.22.0
+version: v0.24.0
 type: go
 summary: Package socks provides a SOCKS version 5 client implementation.
 homepage: https://pkg.go.dev/golang.org/x/net/internal/socks
 license: other
 licenses:
-- sources: net@v0.22.0/LICENSE
+- sources: net@v0.24.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.22.0/PATENTS
+- sources: net@v0.24.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml
index 7204f88c7..702446e6b 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: golang.org/x/net/proxy
-version: v0.22.0
+version: v0.24.0
 type: go
 summary: Package proxy provides support for a variety of protocols to proxy network
   data.
 homepage: https://pkg.go.dev/golang.org/x/net/proxy
 license: other
 licenses:
-- sources: net@v0.22.0/LICENSE
+- sources: net@v0.24.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.22.0/PATENTS
+- sources: net@v0.24.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/gen/http/cli/arduino_create_agent/cli.go b/gen/http/cli/arduino_create_agent/cli.go
index f7f301769..a4d856292 100644
--- a/gen/http/cli/arduino_create_agent/cli.go
+++ b/gen/http/cli/arduino_create_agent/cli.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // arduino-create-agent HTTP client CLI support package
 //
diff --git a/gen/http/tools/client/cli.go b/gen/http/tools/client/cli.go
index 2e502af92..0f02f74bd 100644
--- a/gen/http/tools/client/cli.go
+++ b/gen/http/tools/client/cli.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools HTTP client CLI support package
 //
diff --git a/gen/http/tools/client/client.go b/gen/http/tools/client/client.go
index 3ada9a97d..70e5ec54b 100644
--- a/gen/http/tools/client/client.go
+++ b/gen/http/tools/client/client.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools client HTTP transport
 //
diff --git a/gen/http/tools/client/encode_decode.go b/gen/http/tools/client/encode_decode.go
index 4e887370e..b39e94bbe 100644
--- a/gen/http/tools/client/encode_decode.go
+++ b/gen/http/tools/client/encode_decode.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools HTTP client encoders and decoders
 //
diff --git a/gen/http/tools/client/paths.go b/gen/http/tools/client/paths.go
index a4e8e0f20..b6f7666d5 100644
--- a/gen/http/tools/client/paths.go
+++ b/gen/http/tools/client/paths.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // HTTP request path constructors for the tools service.
 //
diff --git a/gen/http/tools/client/types.go b/gen/http/tools/client/types.go
index 47fe921d2..ed091792b 100644
--- a/gen/http/tools/client/types.go
+++ b/gen/http/tools/client/types.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools HTTP client types
 //
diff --git a/gen/http/tools/server/encode_decode.go b/gen/http/tools/server/encode_decode.go
index d8df0910c..c1ab298ca 100644
--- a/gen/http/tools/server/encode_decode.go
+++ b/gen/http/tools/server/encode_decode.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools HTTP server encoders and decoders
 //
diff --git a/gen/http/tools/server/paths.go b/gen/http/tools/server/paths.go
index 01a007cae..f071aff60 100644
--- a/gen/http/tools/server/paths.go
+++ b/gen/http/tools/server/paths.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // HTTP request path constructors for the tools service.
 //
diff --git a/gen/http/tools/server/server.go b/gen/http/tools/server/server.go
index fad105afd..ad339e3de 100644
--- a/gen/http/tools/server/server.go
+++ b/gen/http/tools/server/server.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools HTTP server
 //
diff --git a/gen/http/tools/server/types.go b/gen/http/tools/server/types.go
index aa3091679..72bacd4e9 100644
--- a/gen/http/tools/server/types.go
+++ b/gen/http/tools/server/types.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools HTTP server types
 //
diff --git a/gen/tools/client.go b/gen/tools/client.go
index 59f85886a..54ee57cb3 100644
--- a/gen/tools/client.go
+++ b/gen/tools/client.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools client
 //
diff --git a/gen/tools/endpoints.go b/gen/tools/endpoints.go
index 02507a819..de609c5f9 100644
--- a/gen/tools/endpoints.go
+++ b/gen/tools/endpoints.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools endpoints
 //
diff --git a/gen/tools/service.go b/gen/tools/service.go
index 028cb5129..94440d66e 100644
--- a/gen/tools/service.go
+++ b/gen/tools/service.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools service
 //
diff --git a/gen/tools/views/view.go b/gen/tools/views/view.go
index c1dcaaa7e..272e2449b 100644
--- a/gen/tools/views/view.go
+++ b/gen/tools/views/view.go
@@ -1,4 +1,4 @@
-// Code generated by goa v3.15.2, DO NOT EDIT.
+// Code generated by goa v3.16.1, DO NOT EDIT.
 //
 // tools views
 //
diff --git a/go.mod b/go.mod
index 4e3b29fbd..682a067cc 100644
--- a/go.mod
+++ b/go.mod
@@ -22,7 +22,7 @@ require (
 	github.com/stretchr/testify v1.9.0
 	github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9
 	go.bug.st/serial v1.6.1
-	goa.design/goa/v3 v3.15.2
+	goa.design/goa/v3 v3.16.1
 	golang.org/x/sys v0.19.0
 	gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa
 )
@@ -72,11 +72,12 @@ require (
 	github.com/ugorji/go v1.1.6 // indirect
 	github.com/ulikunitz/xz v0.5.11 // indirect
 	golang.org/x/arch v0.7.0 // indirect
-	golang.org/x/crypto v0.21.0 // indirect
-	golang.org/x/mod v0.16.0 // indirect
-	golang.org/x/net v0.22.0 // indirect
+	golang.org/x/crypto v0.22.0 // indirect
+	golang.org/x/mod v0.17.0 // indirect
+	golang.org/x/net v0.24.0 // indirect
+	golang.org/x/sync v0.7.0 // indirect
 	golang.org/x/text v0.14.0 // indirect
-	golang.org/x/tools v0.19.0 // indirect
+	golang.org/x/tools v0.20.0 // indirect
 	google.golang.org/protobuf v1.33.0 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/go.sum b/go.sum
index 99d5ebb86..8bd2bd284 100644
--- a/go.sum
+++ b/go.sum
@@ -164,21 +164,21 @@ github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6Gj
 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
 go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY=
 go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE=
-goa.design/goa/v3 v3.15.2 h1:ziyJuVR+GSBBmQ/Nkr7FDZx9qtEBpRA6wle3hYqJT9Q=
-goa.design/goa/v3 v3.15.2/go.mod h1:zZLxqfk8mZu0Q6fmnnflXYbIJ6BA3SVSB6LSz7Tzcv4=
+goa.design/goa/v3 v3.16.1 h1:yZwbKrfMpE8+sz0uf+n+BtArVOFQ0kNSC0twQKwQb04=
+goa.design/goa/v3 v3.16.1/go.mod h1:Yd42LR0PYDbHSbsbF3vNd4YY/O+LG20Jb7+IyNdkQic=
 golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
 golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc=
 golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
-golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
-golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
-golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
+golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
+golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
+golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
-golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
+golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
+golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
+golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -190,8 +190,8 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
 golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
-golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
+golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
+golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
 google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
 google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

From 2d6395d6e440dba8a00aebee12ad31032d9db248 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 May 2024 12:33:04 +0200
Subject: [PATCH 191/233] Bump github.com/gin-contrib/cors from 1.7.1 to 1.7.2
 (#945)

* Bump github.com/gin-contrib/cors from 1.7.1 to 1.7.2

Bumps [github.com/gin-contrib/cors](https://github.com/gin-contrib/cors) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/gin-contrib/cors/releases)
- [Changelog](https://github.com/gin-contrib/cors/blob/master/.goreleaser.yaml)
- [Commits](https://github.com/gin-contrib/cors/compare/v1.7.1...v1.7.2)

---
updated-dependencies:
- dependency-name: github.com/gin-contrib/cors
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] 

* update licenses

---------

Signed-off-by: dependabot[bot] 
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Umberto Baldi 
---
 .../go/github.com/gin-contrib/cors.dep.yml    |  2 +-
 .../go-playground/validator/v10.dep.yml       |  2 +-
 .../github.com/pelletier/go-toml/v2.dep.yml   |  2 +-
 .../go-toml/v2/internal/characters.dep.yml    |  6 ++--
 .../go-toml/v2/internal/danger.dep.yml        |  6 ++--
 .../go-toml/v2/internal/tracker.dep.yml       |  6 ++--
 .../pelletier/go-toml/v2/unstable.dep.yml     |  6 ++--
 .../protobuf/encoding/protowire.dep.yml       |  6 ++--
 .../protobuf/internal/detrand.dep.yml         |  6 ++--
 .../internal/encoding/messageset.dep.yml      |  6 ++--
 .../protobuf/internal/errors.dep.yml          |  6 ++--
 .../protobuf/internal/flags.dep.yml           |  6 ++--
 .../protobuf/internal/genid.dep.yml           |  6 ++--
 .../protobuf/internal/order.dep.yml           |  6 ++--
 .../protobuf/internal/pragma.dep.yml          |  6 ++--
 .../protobuf/internal/strs.dep.yml            |  6 ++--
 .../google.golang.org/protobuf/proto.dep.yml  |  6 ++--
 .../protobuf/reflect/protoreflect.dep.yml     |  6 ++--
 .../protobuf/reflect/protoregistry.dep.yml    |  6 ++--
 .../protobuf/runtime/protoiface.dep.yml       |  6 ++--
 go.mod                                        | 15 ++++----
 go.sum                                        | 35 +++++++++----------
 22 files changed, 78 insertions(+), 80 deletions(-)

diff --git a/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml
index 17338019c..a24f26880 100644
--- a/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/gin-contrib/cors.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: github.com/gin-contrib/cors
-version: v1.7.1
+version: v1.7.2
 type: go
 summary:
 homepage: https://pkg.go.dev/github.com/gin-contrib/cors
diff --git a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml
index 27ea0223c..59a2acb5e 100644
--- a/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/go-playground/validator/v10.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: github.com/go-playground/validator/v10
-version: v10.19.0
+version: v10.20.0
 type: go
 summary: Package validator implements value validations for structs and individual
   fields based on tags.
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml
index 5606d7166..5ac1d339d 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: github.com/pelletier/go-toml/v2
-version: v2.2.0
+version: v2.2.1
 type: go
 summary: Package toml is a library to read and write TOML documents.
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml
index f8d606fcd..43981e2c0 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/pelletier/go-toml/v2/internal/characters
-version: v2.2.0
+version: v2.2.1
 type: go
 summary:
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters
 license: other
 licenses:
-- sources: v2@v2.2.0/LICENSE
+- sources: v2@v2.2.1/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -30,6 +30,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.0/README.md
+- sources: v2@v2.2.1/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml
index 0861b3f27..d176af23c 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/pelletier/go-toml/v2/internal/danger
-version: v2.2.0
+version: v2.2.1
 type: go
 summary:
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger
 license: other
 licenses:
-- sources: v2@v2.2.0/LICENSE
+- sources: v2@v2.2.1/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -30,6 +30,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.0/README.md
+- sources: v2@v2.2.1/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml
index 5f2e85da2..cd81b3796 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/pelletier/go-toml/v2/internal/tracker
-version: v2.2.0
+version: v2.2.1
 type: go
 summary:
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker
 license: other
 licenses:
-- sources: v2@v2.2.0/LICENSE
+- sources: v2@v2.2.1/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -30,6 +30,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.0/README.md
+- sources: v2@v2.2.1/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml
index db67db5b2..40881d134 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: github.com/pelletier/go-toml/v2/unstable
-version: v2.2.0
+version: v2.2.1
 type: go
 summary: Package unstable provides APIs that do not meet the backward compatibility
   guarantees yet.
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable
 license: other
 licenses:
-- sources: v2@v2.2.0/LICENSE
+- sources: v2@v2.2.1/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -31,6 +31,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.0/README.md
+- sources: v2@v2.2.1/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml
index 82d6c4b98..70d4d3973 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/encoding/protowire
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package protowire parses and formats the raw wire encoding.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml
index b840c82c7..7307e0c1a 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/detrand
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package detrand provides deterministically random functionality.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml
index 42bdcec62..a8e4900e7 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/encoding/messageset
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package messageset encodes and decodes the obsolete MessageSet wire format.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml
index 4fff88a10..b62dc7dbf 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/errors
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package errors implements functions to manipulate errors.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml
index 415889a9e..b81d78ddf 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/flags
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package flags provides a set of flags controlled by build tags.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml
index 7e4239655..f89f5f63f 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: google.golang.org/protobuf/internal/genid
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package genid contains constants for declarations in descriptor.proto and
   the well-known types.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml
index c334e9736..8bcc0919d 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/order
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package order provides ordered access to messages and maps.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml
index e6c40660d..cbfd53219 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: google.golang.org/protobuf/internal/pragma
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package pragma provides types that can be embedded into a struct to statically
   enforce or prevent certain language properties.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml
index 58e0e8827..612070283 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/strs
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package strs provides string manipulation functionality specific to protobuf.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml
index 4de64e7ec..fa722dbd7 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/proto
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package proto provides functions operating on protocol buffer messages.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/proto
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml
index 4f664cb91..14e516165 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/reflect/protoreflect
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package protoreflect provides interfaces to dynamically manipulate messages.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml
index 7bb57b49d..e10cc774d 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: google.golang.org/protobuf/reflect/protoregistry
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package protoregistry provides data structures to register and lookup protobuf
   descriptor types.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml
index 78e9d749e..06f700b41 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/runtime/protoiface
-version: v1.33.0
+version: v1.34.0
 type: go
 summary: Package protoiface contains types referenced or implemented by messages.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.33.0/LICENSE
+- sources: protobuf@v1.34.0/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.33.0/PATENTS
+- sources: protobuf@v1.34.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/go.mod b/go.mod
index 682a067cc..98f31a0f3 100644
--- a/go.mod
+++ b/go.mod
@@ -10,7 +10,7 @@ require (
 	github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0
 	github.com/blang/semver v3.5.1+incompatible
 	github.com/codeclysm/extract/v3 v3.1.1
-	github.com/gin-contrib/cors v1.7.1
+	github.com/gin-contrib/cors v1.7.2
 	github.com/gin-gonic/gin v1.9.1
 	github.com/go-ini/ini v1.62.0
 	github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49
@@ -30,10 +30,11 @@ require (
 require (
 	github.com/AnatolyRugalev/goregen v0.1.0 // indirect
 	github.com/arduino/go-properties-orderedmap v1.8.0 // indirect
-	github.com/bytedance/sonic v1.11.3 // indirect
-	github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect
-	github.com/chenzhuoyu/iasm v0.9.1 // indirect
+	github.com/bytedance/sonic v1.11.6 // indirect
+	github.com/bytedance/sonic/loader v0.1.1 // indirect
 	github.com/cloudflare/circl v1.3.7 // indirect
+	github.com/cloudwego/base64x v0.1.4 // indirect
+	github.com/cloudwego/iasm v0.2.0 // indirect
 	github.com/creack/goselect v0.1.2 // indirect
 	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
 	github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect
@@ -42,7 +43,7 @@ require (
 	github.com/go-chi/chi/v5 v5.0.12 // indirect
 	github.com/go-playground/locales v0.14.1 // indirect
 	github.com/go-playground/universal-translator v0.18.1 // indirect
-	github.com/go-playground/validator/v10 v10.19.0 // indirect
+	github.com/go-playground/validator/v10 v10.20.0 // indirect
 	github.com/goccy/go-json v0.10.2 // indirect
 	github.com/godbus/dbus/v5 v5.0.4 // indirect
 	github.com/google/go-cmp v0.5.9 // indirect
@@ -62,7 +63,7 @@ require (
 	github.com/mattn/go-isatty v0.0.20 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
-	github.com/pelletier/go-toml/v2 v2.2.0 // indirect
+	github.com/pelletier/go-toml/v2 v2.2.1 // indirect
 	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
 	github.com/rogpeppe/go-internal v1.12.0 // indirect
 	github.com/sergi/go-diff v1.3.1 // indirect
@@ -78,7 +79,7 @@ require (
 	golang.org/x/sync v0.7.0 // indirect
 	golang.org/x/text v0.14.0 // indirect
 	golang.org/x/tools v0.20.0 // indirect
-	google.golang.org/protobuf v1.33.0 // indirect
+	google.golang.org/protobuf v1.34.0 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff --git a/go.sum b/go.sum
index 8bd2bd284..0af64eff0 100644
--- a/go.sum
+++ b/go.sum
@@ -15,19 +15,16 @@ github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 h1:v7og6Lpskew
 github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0/go.mod h1:1dgblsmK2iBx3L5iNTyRIokeaxbTLUrYiUbHBK6yC3Y=
 github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
 github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
-github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
-github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM=
-github.com/bytedance/sonic v1.11.3 h1:jRN+yEjakWh8aK5FzrciUHG8OFXK+4/KrAX/ysEtHAA=
-github.com/bytedance/sonic v1.11.3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4=
-github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
-github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
-github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0=
-github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA=
-github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog=
-github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0=
-github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog=
+github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0=
+github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4=
+github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM=
+github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
 github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
 github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
+github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y=
+github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
+github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg=
+github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
 github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg=
 github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ=
 github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0=
@@ -41,8 +38,8 @@ github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZs
 github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI=
 github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
 github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
-github.com/gin-contrib/cors v1.7.1 h1:s9SIppU/rk8enVvkzwiC2VK3UZ/0NNGsWfUKvV55rqs=
-github.com/gin-contrib/cors v1.7.1/go.mod h1:n/Zj7B4xyrgk/cX1WCX2dkzFfaNm/xJb6oIUk7WTtps=
+github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQw=
+github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E=
 github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
 github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
 github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
@@ -57,8 +54,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o
 github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
 github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
 github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
-github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4=
-github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
+github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8=
+github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
 github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
 github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
@@ -118,8 +115,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo=
-github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg=
+github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
 github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -192,8 +189,8 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
 golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
-google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
-google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4=
+google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

From 6cbc955fba968519cdfdc756b5a6a19b744a91cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 May 2024 14:41:49 +0200
Subject: [PATCH 192/233] Bump golang.org/x/sys from 0.19.0 to 0.20.0 (#947)

* Bump golang.org/x/sys from 0.19.0 to 0.20.0

Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.19.0 to 0.20.0.
- [Commits](https://github.com/golang/sys/compare/v0.19.0...v0.20.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] 

* Update licenses

---------

Signed-off-by: dependabot[bot] 
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MatteoPologruto 
---
 .../arduino-create-agent/go/golang.org/x/sys/unix.dep.yml   | 6 +++---
 go.mod                                                      | 2 +-
 go.sum                                                      | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml
index 9e39a68f6..8c6dd955b 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/sys/unix
-version: v0.19.0
+version: v0.20.0
 type: go
 summary: Package unix contains an interface to the low-level operating system primitives.
 homepage: https://pkg.go.dev/golang.org/x/sys/unix
 license: bsd-3-clause
 licenses:
-- sources: sys@v0.19.0/LICENSE
+- sources: sys@v0.20.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: sys@v0.19.0/PATENTS
+- sources: sys@v0.20.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/go.mod b/go.mod
index 98f31a0f3..52ce382b7 100644
--- a/go.mod
+++ b/go.mod
@@ -23,7 +23,7 @@ require (
 	github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9
 	go.bug.st/serial v1.6.1
 	goa.design/goa/v3 v3.16.1
-	golang.org/x/sys v0.19.0
+	golang.org/x/sys v0.20.0
 	gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa
 )
 
diff --git a/go.sum b/go.sum
index 0af64eff0..18a9e17a2 100644
--- a/go.sum
+++ b/go.sum
@@ -181,8 +181,8 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
-golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
+golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
 golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=

From bf5b8e4bfadd5902180f64a1ebdaf577e57f4c25 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 May 2024 15:29:58 +0200
Subject: [PATCH 193/233] Bump github.com/gin-gonic/gin from 1.9.1 to 1.10.0
 (#948)

* Bump github.com/gin-gonic/gin from 1.9.1 to 1.10.0

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.9.1...v1.10.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] 

* Update licenses

---------

Signed-off-by: dependabot[bot] 
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MatteoPologruto 
---
 .../go/github.com/gin-gonic/gin.dep.yml       |  2 +-
 .../github.com/gin-gonic/gin/binding.dep.yml  |  6 ++--
 .../gin-gonic/gin/internal/bytesconv.dep.yml  |  6 ++--
 .../gin-gonic/gin/internal/json.dep.yml       |  6 ++--
 .../github.com/gin-gonic/gin/render.dep.yml   |  6 ++--
 .../github.com/pelletier/go-toml/v2.dep.yml   |  2 +-
 .../go-toml/v2/internal/characters.dep.yml    |  8 +++---
 .../go-toml/v2/internal/danger.dep.yml        |  8 +++---
 .../go-toml/v2/internal/tracker.dep.yml       |  8 +++---
 .../pelletier/go-toml/v2/unstable.dep.yml     |  6 ++--
 .../go/golang.org/x/crypto/argon2.dep.yml     |  6 ++--
 .../go/golang.org/x/crypto/blake2b.dep.yml    |  6 ++--
 .../go/golang.org/x/crypto/cast5.dep.yml      |  6 ++--
 .../go/golang.org/x/crypto/sha3.dep.yml       |  6 ++--
 .../go/golang.org/x/net/html.dep.yml          |  6 ++--
 .../go/golang.org/x/net/html/atom.dep.yml     |  6 ++--
 .../go/golang.org/x/net/http2.dep.yml         |  6 ++--
 .../go/golang.org/x/net/http2/h2c.dep.yml     |  6 ++--
 .../golang.org/x/net/internal/socks.dep.yml   |  6 ++--
 .../go/golang.org/x/net/proxy.dep.yml         |  6 ++--
 .../x/text/internal/language.dep.yml          |  8 +++---
 .../x/text/internal/language/compact.dep.yml  |  6 ++--
 .../go/golang.org/x/text/internal/tag.dep.yml |  6 ++--
 .../go/golang.org/x/text/language.dep.yml     |  6 ++--
 .../protobuf/encoding/protowire.dep.yml       |  6 ++--
 .../protobuf/internal/detrand.dep.yml         |  6 ++--
 .../internal/encoding/messageset.dep.yml      |  6 ++--
 .../protobuf/internal/errors.dep.yml          |  6 ++--
 .../protobuf/internal/flags.dep.yml           |  6 ++--
 .../protobuf/internal/genid.dep.yml           |  6 ++--
 .../protobuf/internal/order.dep.yml           |  6 ++--
 .../protobuf/internal/pragma.dep.yml          |  6 ++--
 .../protobuf/internal/strs.dep.yml            |  6 ++--
 .../google.golang.org/protobuf/proto.dep.yml  |  6 ++--
 .../protobuf/reflect/protoreflect.dep.yml     |  6 ++--
 .../protobuf/reflect/protoregistry.dep.yml    |  6 ++--
 .../protobuf/runtime/protoiface.dep.yml       |  6 ++--
 go.mod                                        | 14 +++++-----
 go.sum                                        | 28 +++++++++----------
 39 files changed, 132 insertions(+), 132 deletions(-)

diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml
index 00b9d694f..7d4960e69 100644
--- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: github.com/gin-gonic/gin
-version: v1.9.1
+version: v1.10.0
 type: go
 summary: Package gin implements a HTTP web framework called gin.
 homepage: https://pkg.go.dev/github.com/gin-gonic/gin
diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml
index 00c113b44..6801615fa 100644
--- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/gin-gonic/gin/binding
-version: v1.9.1
+version: v1.10.0
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding
 license: mit
 licenses:
-- sources: gin@v1.9.1/LICENSE
+- sources: gin@v1.10.0/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml
index 351014520..c9d7afd9a 100644
--- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/gin-gonic/gin/internal/bytesconv
-version: v1.9.1
+version: v1.10.0
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv
 license: mit
 licenses:
-- sources: gin@v1.9.1/LICENSE
+- sources: gin@v1.10.0/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml
index 22d75578c..57739599b 100644
--- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/gin-gonic/gin/internal/json
-version: v1.9.1
+version: v1.10.0
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json
 license: mit
 licenses:
-- sources: gin@v1.9.1/LICENSE
+- sources: gin@v1.10.0/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml
index 3ad37b2e2..5b0dc5bbb 100644
--- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/gin-gonic/gin/render
-version: v1.9.1
+version: v1.10.0
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render
 license: mit
 licenses:
-- sources: gin@v1.9.1/LICENSE
+- sources: gin@v1.10.0/LICENSE
   text: |
     The MIT License (MIT)
 
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml
index 5ac1d339d..44cb14185 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: github.com/pelletier/go-toml/v2
-version: v2.2.1
+version: v2.2.2
 type: go
 summary: Package toml is a library to read and write TOML documents.
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml
index 43981e2c0..afddf80f5 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/pelletier/go-toml/v2/internal/characters
-version: v2.2.1
+version: v2.2.2
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters
 license: other
 licenses:
-- sources: v2@v2.2.1/LICENSE
+- sources: v2@v2.2.2/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -30,6 +30,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.1/README.md
+- sources: v2@v2.2.2/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml
index d176af23c..5fe64d014 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/pelletier/go-toml/v2/internal/danger
-version: v2.2.1
+version: v2.2.2
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger
 license: other
 licenses:
-- sources: v2@v2.2.1/LICENSE
+- sources: v2@v2.2.2/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -30,6 +30,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.1/README.md
+- sources: v2@v2.2.2/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml
index cd81b3796..6b73e51e6 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: github.com/pelletier/go-toml/v2/internal/tracker
-version: v2.2.1
+version: v2.2.2
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker
 license: other
 licenses:
-- sources: v2@v2.2.1/LICENSE
+- sources: v2@v2.2.2/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -30,6 +30,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.1/README.md
+- sources: v2@v2.2.2/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml
index 40881d134..4fc5a61cb 100644
--- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml
+++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/unstable.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: github.com/pelletier/go-toml/v2/unstable
-version: v2.2.1
+version: v2.2.2
 type: go
 summary: Package unstable provides APIs that do not meet the backward compatibility
   guarantees yet.
 homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/unstable
 license: other
 licenses:
-- sources: v2@v2.2.1/LICENSE
+- sources: v2@v2.2.2/LICENSE
   text: |
     The MIT License (MIT)
 
@@ -31,6 +31,6 @@ licenses:
     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     SOFTWARE.
-- sources: v2@v2.2.1/README.md
+- sources: v2@v2.2.2/README.md
   text: The MIT License (MIT). Read [LICENSE](LICENSE).
 notices: []
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml
index 0829f6347..cc73f399f 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/argon2.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/crypto/argon2
-version: v0.22.0
+version: v0.23.0
 type: go
 summary: Package argon2 implements the key derivation function Argon2.
 homepage: https://pkg.go.dev/golang.org/x/crypto/argon2
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.22.0/LICENSE
+- sources: crypto@v0.23.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.22.0/PATENTS
+- sources: crypto@v0.23.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml
index 6d6d92d28..ef8816c59 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/blake2b.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: golang.org/x/crypto/blake2b
-version: v0.22.0
+version: v0.23.0
 type: go
 summary: Package blake2b implements the BLAKE2b hash algorithm defined by RFC 7693
   and the extendable output function (XOF) BLAKE2Xb.
 homepage: https://pkg.go.dev/golang.org/x/crypto/blake2b
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.22.0/LICENSE
+- sources: crypto@v0.23.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.22.0/PATENTS
+- sources: crypto@v0.23.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml
index fa791187f..369aae2e1 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/cast5.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/crypto/cast5
-version: v0.22.0
+version: v0.23.0
 type: go
 summary: Package cast5 implements CAST5, as defined in RFC 2144.
 homepage: https://pkg.go.dev/golang.org/x/crypto/cast5
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.22.0/LICENSE
+- sources: crypto@v0.23.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.22.0/PATENTS
+- sources: crypto@v0.23.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml
index b8a9b9c4b..1ef1c7c9f 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: golang.org/x/crypto/sha3
-version: v0.22.0
+version: v0.23.0
 type: go
 summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and
   the SHAKE variable-output-length hash functions defined by FIPS-202.
 homepage: https://pkg.go.dev/golang.org/x/crypto/sha3
 license: bsd-3-clause
 licenses:
-- sources: crypto@v0.22.0/LICENSE
+- sources: crypto@v0.23.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: crypto@v0.22.0/PATENTS
+- sources: crypto@v0.23.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml
index 26dfe21d6..be34abd7f 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/html
-version: v0.24.0
+version: v0.25.0
 type: go
 summary: Package html implements an HTML5-compliant tokenizer and parser.
 homepage: https://pkg.go.dev/golang.org/x/net/html
 license: other
 licenses:
-- sources: net@v0.24.0/LICENSE
+- sources: net@v0.25.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.24.0/PATENTS
+- sources: net@v0.25.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml
index f929ee976..49ddaa0f3 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/html/atom.dep.yml
@@ -1,6 +1,6 @@
 ---
 name: golang.org/x/net/html/atom
-version: v0.24.0
+version: v0.25.0
 type: go
 summary: 'Package atom provides integer codes (also known as atoms) for a fixed set
   of frequently occurring HTML strings: tag names and attribute keys such as "p" and
@@ -8,7 +8,7 @@ summary: 'Package atom provides integer codes (also known as atoms) for a fixed
 homepage: https://pkg.go.dev/golang.org/x/net/html/atom
 license: other
 licenses:
-- sources: net@v0.24.0/LICENSE
+- sources: net@v0.25.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -37,7 +37,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.24.0/PATENTS
+- sources: net@v0.25.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml
index 0bc41da62..4e442b810 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/http2
-version: v0.24.0
+version: v0.25.0
 type: go
 summary: Package http2 implements the HTTP/2 protocol.
 homepage: https://pkg.go.dev/golang.org/x/net/http2
 license: bsd-3-clause
 licenses:
-- sources: net@v0.24.0/LICENSE
+- sources: net@v0.25.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.24.0/PATENTS
+- sources: net@v0.25.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml
index c80f2b839..38586be25 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/http2/h2c.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/http2/h2c
-version: v0.24.0
+version: v0.25.0
 type: go
 summary: Package h2c implements the unencrypted "h2c" form of HTTP/2.
 homepage: https://pkg.go.dev/golang.org/x/net/http2/h2c
 license: bsd-3-clause
 licenses:
-- sources: net@v0.24.0/LICENSE
+- sources: net@v0.25.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.24.0/PATENTS
+- sources: net@v0.25.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml
index 58a7adef8..5e49f37c5 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/internal/socks.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/net/internal/socks
-version: v0.24.0
+version: v0.25.0
 type: go
 summary: Package socks provides a SOCKS version 5 client implementation.
 homepage: https://pkg.go.dev/golang.org/x/net/internal/socks
 license: other
 licenses:
-- sources: net@v0.24.0/LICENSE
+- sources: net@v0.25.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.24.0/PATENTS
+- sources: net@v0.25.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml
index 702446e6b..a87c7e359 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/net/proxy.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: golang.org/x/net/proxy
-version: v0.24.0
+version: v0.25.0
 type: go
 summary: Package proxy provides support for a variety of protocols to proxy network
   data.
 homepage: https://pkg.go.dev/golang.org/x/net/proxy
 license: other
 licenses:
-- sources: net@v0.24.0/LICENSE
+- sources: net@v0.25.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: net@v0.24.0/PATENTS
+- sources: net@v0.25.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml
index 42b866d40..988bad3c9 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/text/internal/language
-version: v0.14.0
+version: v0.15.0
 type: go
-summary:
+summary: 
 homepage: https://pkg.go.dev/golang.org/x/text/internal/language
 license: bsd-3-clause
 licenses:
-- sources: text@v0.14.0/LICENSE
+- sources: text@v0.15.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: text@v0.14.0/PATENTS
+- sources: text@v0.15.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml
index 8c839abc4..d6e0022d2 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language/compact.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/text/internal/language/compact
-version: v0.14.0
+version: v0.15.0
 type: go
 summary: Package compact defines a compact representation of language tags.
 homepage: https://pkg.go.dev/golang.org/x/text/internal/language/compact
 license: bsd-3-clause
 licenses:
-- sources: text@v0.14.0/LICENSE
+- sources: text@v0.15.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: text@v0.14.0/PATENTS
+- sources: text@v0.15.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml
index ee82cf388..f5b00b4eb 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/tag.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/text/internal/tag
-version: v0.14.0
+version: v0.15.0
 type: go
 summary: Package tag contains functionality handling tags and related data.
 homepage: https://pkg.go.dev/golang.org/x/text/internal/tag
 license: bsd-3-clause
 licenses:
-- sources: text@v0.14.0/LICENSE
+- sources: text@v0.15.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: text@v0.14.0/PATENTS
+- sources: text@v0.15.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml
index 31167ba6c..ee9e1f0d0 100644
--- a/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml
+++ b/.licenses/arduino-create-agent/go/golang.org/x/text/language.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: golang.org/x/text/language
-version: v0.14.0
+version: v0.15.0
 type: go
 summary: Package language implements BCP 47 language tags and related functionality.
 homepage: https://pkg.go.dev/golang.org/x/text/language
 license: bsd-3-clause
 licenses:
-- sources: text@v0.14.0/LICENSE
+- sources: text@v0.15.0/LICENSE
   text: |
     Copyright (c) 2009 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: text@v0.14.0/PATENTS
+- sources: text@v0.15.0/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml
index 70d4d3973..d935d1df6 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/encoding/protowire.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/encoding/protowire
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package protowire parses and formats the raw wire encoding.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/encoding/protowire
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml
index 7307e0c1a..1b4a97a55 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/detrand.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/detrand
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package detrand provides deterministically random functionality.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/detrand
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml
index a8e4900e7..8cf22dded 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/encoding/messageset.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/encoding/messageset
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package messageset encodes and decodes the obsolete MessageSet wire format.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/messageset
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml
index b62dc7dbf..ee63cc3d2 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/errors.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/errors
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package errors implements functions to manipulate errors.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/errors
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml
index b81d78ddf..4ad5ad854 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/flags.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/flags
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package flags provides a set of flags controlled by build tags.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/flags
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml
index f89f5f63f..74669222b 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/genid.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: google.golang.org/protobuf/internal/genid
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package genid contains constants for declarations in descriptor.proto and
   the well-known types.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/genid
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml
index 8bcc0919d..43e239a6b 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/order.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/order
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package order provides ordered access to messages and maps.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/order
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml
index cbfd53219..b8f4d4e96 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/pragma.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: google.golang.org/protobuf/internal/pragma
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package pragma provides types that can be embedded into a struct to statically
   enforce or prevent certain language properties.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/pragma
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml
index 612070283..a2137bf66 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/internal/strs.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/internal/strs
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package strs provides string manipulation functionality specific to protobuf.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/strs
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml
index fa722dbd7..bcbae244e 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/proto.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/proto
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package proto provides functions operating on protocol buffer messages.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/proto
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml
index 14e516165..d38294499 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoreflect.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/reflect/protoreflect
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package protoreflect provides interfaces to dynamically manipulate messages.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoreflect
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml
index e10cc774d..737474192 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/reflect/protoregistry.dep.yml
@@ -1,13 +1,13 @@
 ---
 name: google.golang.org/protobuf/reflect/protoregistry
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package protoregistry provides data structures to register and lookup protobuf
   descriptor types.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/reflect/protoregistry
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -36,7 +36,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml
index 06f700b41..559ff53fc 100644
--- a/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml
+++ b/.licenses/arduino-create-agent/go/google.golang.org/protobuf/runtime/protoiface.dep.yml
@@ -1,12 +1,12 @@
 ---
 name: google.golang.org/protobuf/runtime/protoiface
-version: v1.34.0
+version: v1.34.1
 type: go
 summary: Package protoiface contains types referenced or implemented by messages.
 homepage: https://pkg.go.dev/google.golang.org/protobuf/runtime/protoiface
 license: bsd-3-clause
 licenses:
-- sources: protobuf@v1.34.0/LICENSE
+- sources: protobuf@v1.34.1/LICENSE
   text: |
     Copyright (c) 2018 The Go Authors. All rights reserved.
 
@@ -35,7 +35,7 @@ licenses:
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- sources: protobuf@v1.34.0/PATENTS
+- sources: protobuf@v1.34.1/PATENTS
   text: |
     Additional IP Rights Grant (Patents)
 
diff --git a/go.mod b/go.mod
index 52ce382b7..b1f0f8fda 100644
--- a/go.mod
+++ b/go.mod
@@ -11,7 +11,7 @@ require (
 	github.com/blang/semver v3.5.1+incompatible
 	github.com/codeclysm/extract/v3 v3.1.1
 	github.com/gin-contrib/cors v1.7.2
-	github.com/gin-gonic/gin v1.9.1
+	github.com/gin-gonic/gin v1.10.0
 	github.com/go-ini/ini v1.62.0
 	github.com/googollee/go-socket.io v0.0.0-20181101151912-c8aeb1ed9b49
 	github.com/mattn/go-shellwords v1.0.12
@@ -63,7 +63,7 @@ require (
 	github.com/mattn/go-isatty v0.0.20 // indirect
 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 	github.com/modern-go/reflect2 v1.0.2 // indirect
-	github.com/pelletier/go-toml/v2 v2.2.1 // indirect
+	github.com/pelletier/go-toml/v2 v2.2.2 // indirect
 	github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
 	github.com/rogpeppe/go-internal v1.12.0 // indirect
 	github.com/sergi/go-diff v1.3.1 // indirect
@@ -72,14 +72,14 @@ require (
 	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
 	github.com/ugorji/go v1.1.6 // indirect
 	github.com/ulikunitz/xz v0.5.11 // indirect
-	golang.org/x/arch v0.7.0 // indirect
-	golang.org/x/crypto v0.22.0 // indirect
+	golang.org/x/arch v0.8.0 // indirect
+	golang.org/x/crypto v0.23.0 // indirect
 	golang.org/x/mod v0.17.0 // indirect
-	golang.org/x/net v0.24.0 // indirect
+	golang.org/x/net v0.25.0 // indirect
 	golang.org/x/sync v0.7.0 // indirect
-	golang.org/x/text v0.14.0 // indirect
+	golang.org/x/text v0.15.0 // indirect
 	golang.org/x/tools v0.20.0 // indirect
-	google.golang.org/protobuf v1.34.0 // indirect
+	google.golang.org/protobuf v1.34.1 // indirect
 	gopkg.in/ini.v1 v1.67.0 // indirect
 	gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff --git a/go.sum b/go.sum
index 18a9e17a2..278446a66 100644
--- a/go.sum
+++ b/go.sum
@@ -42,8 +42,8 @@ github.com/gin-contrib/cors v1.7.2 h1:oLDHxdg8W/XDoN/8zamqk/Drgt4oVZDvaV0YmvVICQ
 github.com/gin-contrib/cors v1.7.2/go.mod h1:SUJVARKgQ40dmrzgXEVxj2m7Ig1v1qIboQkPDTQ9t2E=
 github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
 github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
-github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
-github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
+github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU=
+github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y=
 github.com/go-chi/chi/v5 v5.0.12 h1:9euLV5sTrTNTRUU9POmDUvfxyj6LAABLUcEWO+JJb4s=
 github.com/go-chi/chi/v5 v5.0.12/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
 github.com/go-ini/ini v1.62.0 h1:7VJT/ZXjzqSrvtraFp4ONq80hTcRQth1c9ZnQ3uNQvU=
@@ -115,8 +115,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
 github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
-github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg=
-github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
+github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
 github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -164,16 +164,16 @@ go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE=
 goa.design/goa/v3 v3.16.1 h1:yZwbKrfMpE8+sz0uf+n+BtArVOFQ0kNSC0twQKwQb04=
 goa.design/goa/v3 v3.16.1/go.mod h1:Yd42LR0PYDbHSbsbF3vNd4YY/O+LG20Jb7+IyNdkQic=
 golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
-golang.org/x/arch v0.7.0 h1:pskyeJh/3AmoQ8CPE95vxHLqp1G1GfGNXTmcl9NEKTc=
-golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
+golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc=
+golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
-golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
+golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
+golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
 golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
 golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
-golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
+golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
+golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
 golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
 golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -184,13 +184,13 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
 golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
+golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
 golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
-google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4=
-google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
+google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

From 222a50545708dcce9478cfae10242af434025614 Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Wed, 8 May 2024 15:43:01 +0200
Subject: [PATCH 194/233] Manage the HTTPS certificate from the menu and ask
 Safari users to install it at startup (#941)

* Add function to retrieve certificates expiration date

* Check the certificate expiration date

* Obtain certificates info using the systray icon

* Manage errors that may occur retrieving certificates expiration date

* Obtain default browser name on macOS

* Prompt Safari users to install HTTPS certificates and check if they are outdated when the Agent is started

* Skip some tests on macOS because the user is prompted to install certificates

* Set installCerts value in config.ini if certicates are manually installed

* Always set installCerts if the certificates exist

* Add "Arduino Agent" to the title of dialogs

* Fix check for pressed buttons

* Move osascript execution function to Utilities to avoid code duplication

* Modify certificate management from the systray menu

* Install certificates if they are missing and the flag inside the config is set to true

* Avoid code duplication

* Fix button order and title

* Do not restart the Agent if no action is performed on the certificate

* Do not modify the config if the default browser is not Safari

* Small messages/titles fixes

---------

Co-authored-by: Xayton <30591904+Xayton@users.noreply.github.com>
---
 certificates/certificates.go    | 48 +++++++++++++++++
 certificates/install_darwin.go  | 94 ++++++++++++++++++++++++++++++---
 certificates/install_default.go | 12 +++++
 config/config.go                | 18 +++++++
 main.go                         | 63 +++++++++++++++++++---
 systray/systray_real.go         | 59 +++++++++++++--------
 tests/test_info.py              |  6 +++
 tests/test_v2.py                |  6 +++
 tests/test_ws.py                |  9 ++++
 utilities/utilities.go          |  7 +++
 10 files changed, 285 insertions(+), 37 deletions(-)

diff --git a/certificates/certificates.go b/certificates/certificates.go
index 990fa2e01..baac7c337 100644
--- a/certificates/certificates.go
+++ b/certificates/certificates.go
@@ -30,8 +30,10 @@ import (
 	"math/big"
 	"net"
 	"os"
+	"strings"
 	"time"
 
+	"github.com/arduino/arduino-create-agent/utilities"
 	"github.com/arduino/go-paths-helper"
 	log "github.com/sirupsen/logrus"
 )
@@ -267,3 +269,49 @@ func DeleteCertificates(certDir *paths.Path) {
 	certDir.Join("cert.pem").Remove()
 	certDir.Join("cert.cer").Remove()
 }
+
+// isExpired checks if a certificate is expired or about to expire (less than 1 month)
+func isExpired() (bool, error) {
+	bound := time.Now().AddDate(0, 1, 0)
+	dateS, err := GetExpirationDate()
+	if err != nil {
+		return false, err
+	}
+	date, _ := time.Parse(time.DateTime, dateS)
+	return date.Before(bound), nil
+}
+
+// PromptInstallCertsSafari prompts the user to install the HTTPS certificates if they are using Safari
+func PromptInstallCertsSafari() bool {
+	buttonPressed := utilities.UserPrompt("display dialog \"The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\nIf you use Safari, you need to install it.\" buttons {\"Do not install\", \"Install the certificate for Safari\"} default button 2 with title \"Arduino Agent: Install certificate\"")
+	return strings.Contains(string(buttonPressed), "button returned:Install the certificate for Safari")
+}
+
+// PromptExpiredCerts prompts the user to update the HTTPS certificates if they are using Safari
+func PromptExpiredCerts(certDir *paths.Path) {
+	if expired, err := isExpired(); err != nil {
+		log.Errorf("cannot check if certificates are expired something went wrong: %s", err)
+	} else if expired {
+		buttonPressed := utilities.UserPrompt("display dialog \"The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\nYour certificate is expired or close to expiration. Do you want to update it?\" buttons {\"Do not update\", \"Update the certificate for Safari\"} default button 2 with title \"Arduino Agent: Update certificate\"")
+		if strings.Contains(string(buttonPressed), "button returned:Update the certificate for Safari") {
+			err := UninstallCertificates()
+			if err != nil {
+				log.Errorf("cannot uninstall certificates something went wrong: %s", err)
+			} else {
+				DeleteCertificates(certDir)
+				GenerateAndInstallCertificates(certDir)
+			}
+		}
+	}
+}
+
+// GenerateAndInstallCertificates generates and installs the certificates
+func GenerateAndInstallCertificates(certDir *paths.Path) {
+	GenerateCertificates(certDir)
+	err := InstallCertificate(certDir.Join("ca.cert.cer"))
+	// if something goes wrong during the cert install we remove them, so the user is able to retry
+	if err != nil {
+		log.Errorf("cannot install certificates something went wrong: %s", err)
+		DeleteCertificates(certDir)
+	}
+}
diff --git a/certificates/install_darwin.go b/certificates/install_darwin.go
index 2c84d7dcb..892c390b0 100644
--- a/certificates/install_darwin.go
+++ b/certificates/install_darwin.go
@@ -89,15 +89,77 @@ const char *uninstallCert() {
     }
     return "";
 }
+
+const char *getExpirationDate(char *expirationDate){
+    // Create a key-value dictionary used to query the Keychain and look for the "Arduino" root certificate.
+    NSDictionary *getquery = @{
+                (id)kSecClass:     (id)kSecClassCertificate,
+                (id)kSecAttrLabel: @"Arduino",
+                (id)kSecReturnRef: @YES,
+            };
+
+    OSStatus err = noErr;
+    SecCertificateRef cert = NULL;
+
+    // Use this function to check for errors
+    err = SecItemCopyMatching((CFDictionaryRef)getquery, (CFTypeRef *)&cert);
+
+    if (err != noErr){
+        NSString *errString = [@"Error: " stringByAppendingFormat:@"%d", err];
+        NSLog(@"%@", errString);
+        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+
+    // Get data from the certificate. We just need the "invalidity date" property.
+    CFDictionaryRef valuesDict = SecCertificateCopyValues(cert, (__bridge CFArrayRef)@[(__bridge id)kSecOIDInvalidityDate], NULL);
+
+    id expirationDateValue;
+    if(valuesDict){
+        CFDictionaryRef invalidityDateDictionaryRef = CFDictionaryGetValue(valuesDict, kSecOIDInvalidityDate);
+        if(invalidityDateDictionaryRef){
+            CFTypeRef invalidityRef = CFDictionaryGetValue(invalidityDateDictionaryRef, kSecPropertyKeyValue);
+            if(invalidityRef){
+                expirationDateValue = CFBridgingRelease(invalidityRef);
+            }
+        }
+        CFRelease(valuesDict);
+    }
+
+    NSString *outputString = [@"" stringByAppendingFormat:@"%@", expirationDateValue];
+    if([outputString isEqualToString:@""]){
+        NSString *errString = @"Error: the expiration date of the certificate could not be found";
+        NSLog(@"%@", errString);
+        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+
+    // This workaround allows to obtain the expiration date alongside the error message
+    strncpy(expirationDate, [outputString cStringUsingEncoding:[NSString defaultCStringEncoding]], 32);
+    expirationDate[32-1] = 0;
+
+    return "";
+}
+
+const char *getDefaultBrowserName() {
+    NSURL *defaultBrowserURL = [[NSWorkspace sharedWorkspace] URLForApplicationToOpenURL:[NSURL URLWithString:@"http://"]];
+    if (defaultBrowserURL) {
+        NSBundle *defaultBrowserBundle = [NSBundle bundleWithURL:defaultBrowserURL];
+        NSString *defaultBrowser = [defaultBrowserBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
+
+        return [defaultBrowser cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+
+    return "";
+}
 */
 import "C"
 import (
 	"errors"
-	"os/exec"
+	"strings"
 	"unsafe"
 
 	log "github.com/sirupsen/logrus"
 
+	"github.com/arduino/arduino-create-agent/utilities"
 	"github.com/arduino/go-paths-helper"
 )
 
@@ -110,9 +172,8 @@ func InstallCertificate(cert *paths.Path) error {
 	p := C.installCert(ccert)
 	s := C.GoString(p)
 	if len(s) != 0 {
-		oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Arduino Agent: Error installing certificates\"")
-		_ = oscmd.Run()
-		_ = UninstallCertificates()
+		utilities.UserPrompt("display dialog \"" + s + "\" buttons \"OK\" with title \"Arduino Agent: Error installing certificates\"")
+		UninstallCertificates()
 		return errors.New(s)
 	}
 	return nil
@@ -125,9 +186,30 @@ func UninstallCertificates() error {
 	p := C.uninstallCert()
 	s := C.GoString(p)
 	if len(s) != 0 {
-		oscmd := exec.Command("osascript", "-e", "display dialog \""+s+"\" buttons \"OK\" with title \"Arduino Agent: Error uninstalling certificates\"")
-		_ = oscmd.Run()
+		utilities.UserPrompt("display dialog \"" + s + "\" buttons \"OK\" with title \"Arduino Agent: Error uninstalling certificates\"")
 		return errors.New(s)
 	}
 	return nil
 }
+
+// GetExpirationDate returns the expiration date of a certificate stored in the keychain
+func GetExpirationDate() (string, error) {
+	log.Infof("Retrieving certificate's expiration date")
+	dateString := C.CString("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") // 32 characters string
+	defer C.free(unsafe.Pointer(dateString))
+	p := C.getExpirationDate(dateString)
+	s := C.GoString(p)
+	if len(s) != 0 {
+		utilities.UserPrompt("display dialog \"" + s + "\" buttons \"OK\" with title \"Arduino Agent: Error retrieving expiration date\"")
+		return "", errors.New(s)
+	}
+	date := C.GoString(dateString)
+	return strings.ReplaceAll(date, " +0000", ""), nil
+}
+
+// GetDefaultBrowserName returns the name of the default browser
+func GetDefaultBrowserName() string {
+	log.Infof("Retrieving default browser name")
+	p := C.getDefaultBrowserName()
+	return C.GoString(p)
+}
diff --git a/certificates/install_default.go b/certificates/install_default.go
index 1b7f24bb9..8013c018d 100644
--- a/certificates/install_default.go
+++ b/certificates/install_default.go
@@ -36,3 +36,15 @@ func UninstallCertificates() error {
 	log.Warn("platform not supported for the certificates uninstall")
 	return errors.New("platform not supported for the certificates uninstall")
 }
+
+// GetExpirationDate won't do anything on unsupported Operative Systems
+func GetExpirationDate() (string, error) {
+	log.Warn("platform not supported for retrieving certificates expiration date")
+	return "", errors.New("platform not supported for retrieving certificates expiration date")
+}
+
+// GetDefaultBrowserName won't do anything on unsupported Operative Systems
+func GetDefaultBrowserName() string {
+	log.Warn("platform not supported for retrieving default browser name")
+	return ""
+}
diff --git a/config/config.go b/config/config.go
index 437437e59..69d29eeee 100644
--- a/config/config.go
+++ b/config/config.go
@@ -21,6 +21,7 @@ import (
 	"os"
 
 	"github.com/arduino/go-paths-helper"
+	"github.com/go-ini/ini"
 	log "github.com/sirupsen/logrus"
 )
 
@@ -124,3 +125,20 @@ func GenerateConfig(destDir *paths.Path) *paths.Path {
 	log.Infof("generated config in %s", configPath)
 	return configPath
 }
+
+// SetInstallCertsIni sets installCerts value to true in the config
+func SetInstallCertsIni(filename string, value string) error {
+	cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
+	if err != nil {
+		return err
+	}
+	_, err = cfg.Section("").NewKey("installCerts", value)
+	if err != nil {
+		return err
+	}
+	err = cfg.SaveTo(filename)
+	if err != nil {
+		return err
+	}
+	return nil
+}
diff --git a/main.go b/main.go
index 45ae5259c..0231548d4 100755
--- a/main.go
+++ b/main.go
@@ -25,7 +25,6 @@ import (
 	"html/template"
 	"io"
 	"os"
-	"os/exec"
 	"regexp"
 	"runtime"
 	"runtime/debug"
@@ -40,6 +39,7 @@ import (
 	"github.com/arduino/arduino-create-agent/systray"
 	"github.com/arduino/arduino-create-agent/tools"
 	"github.com/arduino/arduino-create-agent/updater"
+	"github.com/arduino/arduino-create-agent/utilities"
 	v2 "github.com/arduino/arduino-create-agent/v2"
 	paths "github.com/arduino/go-paths-helper"
 	cors "github.com/gin-contrib/cors"
@@ -86,6 +86,7 @@ var (
 	verbose           = iniConf.Bool("v", true, "show debug logging")
 	crashreport       = iniConf.Bool("crashreport", false, "enable crashreport logging")
 	autostartMacOS    = iniConf.Bool("autostartMacOS", true, "the Arduino Create Agent is able to start automatically after login on macOS (launchd agent)")
+	installCerts      = iniConf.Bool("installCerts", false, "install the HTTPS certificate for Safari and keep it updated")
 )
 
 // the ports filter provided by the user via the -regex flag, if any
@@ -177,7 +178,7 @@ func loop() {
 	// If we are updating manually from 1.2.7 to 1.3.0 we have to uninstall the old agent manually first.
 	// This check will inform the user if he needs to run the uninstall first
 	if runtime.GOOS == "darwin" && oldInstallExists() {
-		printDialog("Old agent installation of the Arduino Create Agent found, please uninstall it before launching the new one")
+		utilities.UserPrompt("display dialog \"Old agent installation of the Arduino Create Agent found, please uninstall it before launching the new one\" buttons \"OK\" with title \"Error\"")
 		os.Exit(0)
 	}
 
@@ -220,6 +221,32 @@ func loop() {
 		configPath = config.GenerateConfig(configDir)
 	}
 
+	// if the default browser is Safari, prompt the user to install HTTPS certificates
+	// and eventually install them
+	if runtime.GOOS == "darwin" && cert.GetDefaultBrowserName() == "Safari" {
+		if exist, err := installCertsKeyExists(configPath.String()); err != nil {
+			log.Panicf("config.ini cannot be parsed: %s", err)
+		} else if !exist {
+			if config.CertsExist() {
+				err = config.SetInstallCertsIni(configPath.String(), "true")
+				if err != nil {
+					log.Panicf("config.ini cannot be parsed: %s", err)
+				}
+			} else if cert.PromptInstallCertsSafari() {
+				err = config.SetInstallCertsIni(configPath.String(), "true")
+				if err != nil {
+					log.Panicf("config.ini cannot be parsed: %s", err)
+				}
+				cert.GenerateAndInstallCertificates(config.GetCertificatesDir())
+			} else {
+				err = config.SetInstallCertsIni(configPath.String(), "false")
+				if err != nil {
+					log.Panicf("config.ini cannot be parsed: %s", err)
+				}
+			}
+		}
+	}
+
 	// Parse the config.ini
 	args, err := parseIni(configPath.String())
 	if err != nil {
@@ -342,6 +369,24 @@ func loop() {
 		}
 	}
 
+	// check if the HTTPS certificates are expired and prompt the user to update them on macOS
+	if runtime.GOOS == "darwin" && cert.GetDefaultBrowserName() == "Safari" {
+		if *installCerts {
+			if config.CertsExist() {
+				cert.PromptExpiredCerts(config.GetCertificatesDir())
+			} else if cert.PromptInstallCertsSafari() {
+				// installing the certificates from scratch at this point should only happen if
+				// something went wrong during previous installation attempts
+				cert.GenerateAndInstallCertificates(config.GetCertificatesDir())
+			} else {
+				err = config.SetInstallCertsIni(configPath.String(), "false")
+				if err != nil {
+					log.Panicf("config.ini cannot be parsed: %s", err)
+				}
+			}
+		}
+	}
+
 	// launch the discoveries for the running system
 	go serialPorts.Run()
 	// launch the hub routine which is the singleton for the websocket server
@@ -457,12 +502,6 @@ func oldInstallExists() bool {
 	return oldAgentPath.Join("ArduinoCreateAgent.app").Exist()
 }
 
-// printDialog will print a GUI error dialog on macos
-func printDialog(dialogText string) {
-	oscmd := exec.Command("osascript", "-e", "display dialog \""+dialogText+"\" buttons \"OK\" with title \"Error\"")
-	_ = oscmd.Run()
-}
-
 func parseIni(filename string) (args []string, err error) {
 	cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
 	if err != nil {
@@ -487,3 +526,11 @@ func parseIni(filename string) (args []string, err error) {
 
 	return args, nil
 }
+
+func installCertsKeyExists(filename string) (bool, error) {
+	cfg, err := ini.LoadSources(ini.LoadOptions{IgnoreInlineComment: false, AllowPythonMultilineValues: true}, filename)
+	if err != nil {
+		return false, err
+	}
+	return cfg.Section("").HasKey("installCerts"), nil
+}
diff --git a/systray/systray_real.go b/systray/systray_real.go
index 62e52e21d..503373d82 100644
--- a/systray/systray_real.go
+++ b/systray/systray_real.go
@@ -22,11 +22,13 @@ package systray
 import (
 	"os"
 	"runtime"
+	"strings"
 
 	"fyne.io/systray"
 	cert "github.com/arduino/arduino-create-agent/certificates"
 	"github.com/arduino/arduino-create-agent/config"
 	"github.com/arduino/arduino-create-agent/icon"
+	"github.com/arduino/arduino-create-agent/utilities"
 	"github.com/go-ini/ini"
 	log "github.com/sirupsen/logrus"
 	"github.com/skratchdot/open-golang/open"
@@ -63,16 +65,11 @@ func (s *Systray) start() {
 	mRmCrashes := systray.AddMenuItem("Remove crash reports", "")
 	s.updateMenuItem(mRmCrashes, config.LogsIsEmpty())
 
-	mGenCerts := systray.AddMenuItem("Generate and Install HTTPS certificates", "HTTPS Certs")
-	mRemoveCerts := systray.AddMenuItem("Remove HTTPS certificates", "")
+	mManageCerts := systray.AddMenuItem("Manage HTTPS certificate", "HTTPS Certs")
 	// On linux/windows chrome/firefox/edge(chromium) the agent works without problems on plain HTTP,
 	// so we disable the menuItem to generate/install the certificates
 	if runtime.GOOS != "darwin" {
-		s.updateMenuItem(mGenCerts, true)
-		s.updateMenuItem(mRemoveCerts, true)
-	} else {
-		s.updateMenuItem(mGenCerts, config.CertsExist())
-		s.updateMenuItem(mRemoveCerts, !config.CertsExist())
+		s.updateMenuItem(mManageCerts, true)
 	}
 
 	// Add pause/quit
@@ -96,25 +93,41 @@ func (s *Systray) start() {
 			case <-mRmCrashes.ClickedCh:
 				RemoveCrashes()
 				s.updateMenuItem(mRmCrashes, config.LogsIsEmpty())
-			case <-mGenCerts.ClickedCh:
+			case <-mManageCerts.ClickedCh:
+				infoMsg := "The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\n\nYour HTTPS certificate status:\n"
+				buttons := "{\"Install the certificate for Safari\", \"OK\"} default button \"OK\""
 				certDir := config.GetCertificatesDir()
-				cert.GenerateCertificates(certDir)
-				err := cert.InstallCertificate(certDir.Join("ca.cert.cer"))
-				// if something goes wrong during the cert install we remove them, so the user is able to retry
-				if err != nil {
-					log.Errorf("cannot install certificates something went wrong: %s", err)
-					cert.DeleteCertificates(certDir)
-				}
-				s.Restart()
-			case <-mRemoveCerts.ClickedCh:
-				err := cert.UninstallCertificates()
-				if err != nil {
-					log.Errorf("cannot uninstall certificates something went wrong: %s", err)
+				if config.CertsExist() {
+					expDate, err := cert.GetExpirationDate()
+					if err != nil {
+						log.Errorf("cannot get certificates expiration date, something went wrong: %s", err)
+					}
+					infoMsg = infoMsg + "- Certificate installed: Yes\n- Certificate trusted: Yes\n- Certificate expiration date: " + expDate
+					buttons = "{\"Uninstall the certificate for Safari\", \"OK\"} default button \"OK\""
 				} else {
-					certDir := config.GetCertificatesDir()
-					cert.DeleteCertificates(certDir)
+					infoMsg = infoMsg + "- Certificate installed: No\n- Certificate trusted: N/A\n- Certificate expiration date: N/A"
+				}
+				pressedButton := utilities.UserPrompt("display dialog \"" + infoMsg + "\" buttons " + buttons + " with title \"Arduino Agent: Manage HTTPS certificate\"")
+				if strings.Contains(pressedButton, "Install certificate for Safari") {
+					cert.GenerateAndInstallCertificates(certDir)
+					err := config.SetInstallCertsIni(s.currentConfigFilePath.String(), "true")
+					if err != nil {
+						log.Errorf("cannot set installCerts value in config.ini: %s", err)
+					}
+					s.Restart()
+				} else if strings.Contains(pressedButton, "Uninstall certificate for Safari") {
+					err := cert.UninstallCertificates()
+					if err != nil {
+						log.Errorf("cannot uninstall certificates something went wrong: %s", err)
+					} else {
+						cert.DeleteCertificates(certDir)
+						err = config.SetInstallCertsIni(s.currentConfigFilePath.String(), "false")
+						if err != nil {
+							log.Errorf("cannot set installCerts value in config.ini: %s", err)
+						}
+					}
+					s.Restart()
 				}
-				s.Restart()
 			case <-mPause.ClickedCh:
 				s.Pause()
 			case <-mQuit.ClickedCh:
diff --git a/tests/test_info.py b/tests/test_info.py
index 6982ca352..efda3bce8 100644
--- a/tests/test_info.py
+++ b/tests/test_info.py
@@ -15,8 +15,14 @@
 
 import re
 import requests
+import pytest
+from sys import platform
 
 
+@pytest.mark.skipif(
+    platform == "darwin",
+    reason="on macOS the user is prompted to install certificates",
+)
 def test_version(base_url, agent):
     
     resp = requests.get(f"{base_url}/info")
diff --git a/tests/test_v2.py b/tests/test_v2.py
index 9a3778027..5fa44034e 100644
--- a/tests/test_v2.py
+++ b/tests/test_v2.py
@@ -14,8 +14,14 @@
 # along with this program.  If not, see .
 
 import requests
+import pytest
+from sys import platform
 
 
+@pytest.mark.skipif(
+    platform == "darwin",
+    reason="on macOS the user is prompted to install certificates",
+)
 def test_get_tools(base_url, agent):
     
     resp = requests.get(f"{base_url}/v2/pkgs/tools/installed")
diff --git a/tests/test_ws.py b/tests/test_ws.py
index c2623da56..b8004649d 100644
--- a/tests/test_ws.py
+++ b/tests/test_ws.py
@@ -17,16 +17,25 @@
 import json
 import base64
 import pytest
+from sys import platform
 
 from common import running_on_ci
 message = []
 
 
+@pytest.mark.skipif(
+    platform == "darwin",
+    reason="on macOS the user is prompted to install certificates",
+)
 def test_ws_connection(socketio):
     print('my sid is', socketio.sid)
     assert socketio.sid is not None
 
 
+@pytest.mark.skipif(
+    platform == "darwin",
+    reason="on macOS the user is prompted to install certificates",
+)
 def test_list(socketio, message):
     socketio.emit('command', 'list')
     time.sleep(.2)
diff --git a/utilities/utilities.go b/utilities/utilities.go
index 4f40aaf73..63f09103e 100644
--- a/utilities/utilities.go
+++ b/utilities/utilities.go
@@ -149,3 +149,10 @@ func VerifyInput(input string, signature string) error {
 	d := h.Sum(nil)
 	return rsa.VerifyPKCS1v15(rsaKey, crypto.SHA256, d, sign)
 }
+
+// UserPrompt executes an osascript and returns the pressed button
+func UserPrompt(dialog string) string {
+	oscmd := exec.Command("osascript", "-e", dialog)
+	pressedButton, _ := oscmd.Output()
+	return string(pressedButton)
+}

From 3190a1a1326bd841454d5fbb7efd7adc2f6d697e Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Mon, 13 May 2024 15:51:29 +0200
Subject: [PATCH 195/233] Fix buttons and improve handling of certificates when
 Safari is not the default browser (#949)

* Fix check on buttons returning the correct message

* Update certificates regardless of the default browser

* Set installCerts when the certificate is installed from previous versions of the Agent regardless of the default browser

* Do not set installCerts to false if the default browser is not Safari

* Do not ask again to update the certificate if the user refuses once

* Fix user script on macOS

* Check for the presence of the certificate in the keychain to determine if it is installed

* Fix getExpirationDate breaking when the certificate is expired

* Fix return value in case of error

* getExpirationDate rewritten to use the correct expiration field.

* Separate osascript default button from the one to press

* Fix leftover buttons

* Small text fixes in the "manage certificate" dialog

* Simplify error management in getExpirationDate

* Fix compiler warnings and move obj-c code into a separate file.

* certInKeychain returns a bool

* Fix building errors caused by objective-c files on Ubuntu and Windows

* Build objective-c files only on Darwin

* Remove -ld_classic library because XCode is not up to date on the CI

---------

Co-authored-by: Xayton <30591904+Xayton@users.noreply.github.com>
---
 certificates/certificates.go       |  34 +-----
 certificates/certificates_darwin.h |   7 ++
 certificates/certificates_darwin.m | 137 +++++++++++++++++++++++
 certificates/install_darwin.go     | 172 +++++------------------------
 certificates/install_default.go    |  11 +-
 main.go                            |  75 ++++++++-----
 systray/systray_real.go            |  50 +++++----
 utilities/utilities.go             |   6 +-
 8 files changed, 264 insertions(+), 228 deletions(-)
 create mode 100644 certificates/certificates_darwin.h
 create mode 100644 certificates/certificates_darwin.m

diff --git a/certificates/certificates.go b/certificates/certificates.go
index baac7c337..8a8c50d86 100644
--- a/certificates/certificates.go
+++ b/certificates/certificates.go
@@ -30,16 +30,13 @@ import (
 	"math/big"
 	"net"
 	"os"
-	"strings"
 	"time"
 
-	"github.com/arduino/arduino-create-agent/utilities"
 	"github.com/arduino/go-paths-helper"
 	log "github.com/sirupsen/logrus"
 )
 
 var (
-	host      = "localhost"
 	validFrom = ""
 	validFor  = 365 * 24 * time.Hour * 2 // 2 years
 	rsaBits   = 2048
@@ -270,41 +267,16 @@ func DeleteCertificates(certDir *paths.Path) {
 	certDir.Join("cert.cer").Remove()
 }
 
-// isExpired checks if a certificate is expired or about to expire (less than 1 month)
-func isExpired() (bool, error) {
+// IsExpired checks if a certificate is expired or about to expire (less than 1 month)
+func IsExpired() (bool, error) {
 	bound := time.Now().AddDate(0, 1, 0)
-	dateS, err := GetExpirationDate()
+	date, err := GetExpirationDate()
 	if err != nil {
 		return false, err
 	}
-	date, _ := time.Parse(time.DateTime, dateS)
 	return date.Before(bound), nil
 }
 
-// PromptInstallCertsSafari prompts the user to install the HTTPS certificates if they are using Safari
-func PromptInstallCertsSafari() bool {
-	buttonPressed := utilities.UserPrompt("display dialog \"The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\nIf you use Safari, you need to install it.\" buttons {\"Do not install\", \"Install the certificate for Safari\"} default button 2 with title \"Arduino Agent: Install certificate\"")
-	return strings.Contains(string(buttonPressed), "button returned:Install the certificate for Safari")
-}
-
-// PromptExpiredCerts prompts the user to update the HTTPS certificates if they are using Safari
-func PromptExpiredCerts(certDir *paths.Path) {
-	if expired, err := isExpired(); err != nil {
-		log.Errorf("cannot check if certificates are expired something went wrong: %s", err)
-	} else if expired {
-		buttonPressed := utilities.UserPrompt("display dialog \"The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\nYour certificate is expired or close to expiration. Do you want to update it?\" buttons {\"Do not update\", \"Update the certificate for Safari\"} default button 2 with title \"Arduino Agent: Update certificate\"")
-		if strings.Contains(string(buttonPressed), "button returned:Update the certificate for Safari") {
-			err := UninstallCertificates()
-			if err != nil {
-				log.Errorf("cannot uninstall certificates something went wrong: %s", err)
-			} else {
-				DeleteCertificates(certDir)
-				GenerateAndInstallCertificates(certDir)
-			}
-		}
-	}
-}
-
 // GenerateAndInstallCertificates generates and installs the certificates
 func GenerateAndInstallCertificates(certDir *paths.Path) {
 	GenerateCertificates(certDir)
diff --git a/certificates/certificates_darwin.h b/certificates/certificates_darwin.h
new file mode 100644
index 000000000..78ba0ae5f
--- /dev/null
+++ b/certificates/certificates_darwin.h
@@ -0,0 +1,7 @@
+const char *getDefaultBrowserName();
+
+const char *installCert(const char *path);
+const char *uninstallCert();
+const bool certInKeychain();
+
+const char *getExpirationDate(long *expirationDate);
\ No newline at end of file
diff --git a/certificates/certificates_darwin.m b/certificates/certificates_darwin.m
new file mode 100644
index 000000000..0ac511833
--- /dev/null
+++ b/certificates/certificates_darwin.m
@@ -0,0 +1,137 @@
+#import 
+#import 
+#include "certificates_darwin.h"
+
+// Used to return error strings (as NSString) as a C-string to the Go code.
+const char *toErrorString(NSString *errString) {
+    NSLog(@"%@", errString);
+    return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+}
+
+// Returns a string describing the name of the default browser set for the user, nil in case of error.
+const char *getDefaultBrowserName() {
+    NSURL *defaultBrowserURL = [[NSWorkspace sharedWorkspace] URLForApplicationToOpenURL:[NSURL URLWithString:@"http://"]];
+    if (defaultBrowserURL) {
+        NSBundle *defaultBrowserBundle = [NSBundle bundleWithURL:defaultBrowserURL];
+        NSString *defaultBrowser = [defaultBrowserBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
+
+        return [defaultBrowser cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+
+    return "";
+}
+
+// inspired by https://stackoverflow.com/questions/12798950/ios-install-ssl-certificate-programmatically
+const char *installCert(const char *path) {
+    NSURL *url = [NSURL fileURLWithPath:@(path) isDirectory:NO];
+    NSData *rootCertData = [NSData dataWithContentsOfURL:url];
+
+    OSStatus err = noErr;
+    SecCertificateRef rootCert = SecCertificateCreateWithData(kCFAllocatorDefault, (CFDataRef) rootCertData);
+
+    CFTypeRef result;
+
+    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
+        (id)kSecClassCertificate, kSecClass,
+        rootCert, kSecValueRef,
+        nil];
+
+    err = SecItemAdd((CFDictionaryRef)dict, &result);
+
+    if (err == noErr) {
+        NSLog(@"Install root certificate success");
+    } else if (err == errSecDuplicateItem) {
+        NSString *errString = [@"duplicate root certificate entry. Error: " stringByAppendingFormat:@"%d", err];
+        NSLog(@"%@", errString);
+        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    } else {
+        NSString *errString = [@"install root certificate failure. Error: " stringByAppendingFormat:@"%d", err];
+        NSLog(@"%@", errString);
+        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+
+    NSDictionary *newTrustSettings = @{(id)kSecTrustSettingsResult: [NSNumber numberWithInt:kSecTrustSettingsResultTrustRoot]};
+    err = SecTrustSettingsSetTrustSettings(rootCert, kSecTrustSettingsDomainUser, (__bridge CFTypeRef)(newTrustSettings));
+    if (err != errSecSuccess) {
+        NSString *errString = [@"Could not change the trust setting for a certificate. Error: " stringByAppendingFormat:@"%d", err];
+        NSLog(@"%@", errString);
+        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+
+    return "";
+}
+
+const char *uninstallCert() {
+    // Each line is a key-value of the dictionary. Note: the the inverted order, value first then key.
+    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
+        (id)kSecClassCertificate, kSecClass,
+        CFSTR("Arduino"), kSecAttrLabel,
+        kSecMatchLimitOne, kSecMatchLimit,
+        kCFBooleanTrue, kSecReturnAttributes,
+        nil];
+
+    OSStatus err = noErr;
+    // Use this function to check for errors
+    err = SecItemCopyMatching((CFDictionaryRef)dict, nil);
+    if (err == noErr) {
+        err = SecItemDelete((CFDictionaryRef)dict);
+        if (err != noErr) {
+            NSString *errString = [@"Could not delete the certificates. Error: " stringByAppendingFormat:@"%d", err];
+            NSLog(@"%@", errString);
+            return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+        }
+    } else if (err != errSecItemNotFound){
+        NSString *errString = [@"Error: " stringByAppendingFormat:@"%d", err];
+        NSLog(@"%@", errString);
+        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
+    }
+    return "";
+}
+
+const bool certInKeychain() {
+    // Create a key-value dictionary used to query the Keychain and look for the "Arduino" root certificate.
+    NSDictionary *getquery = @{
+                (id)kSecClass:     (id)kSecClassCertificate,
+                (id)kSecAttrLabel: @"Arduino",
+                (id)kSecReturnRef: @YES,
+            };
+
+    OSStatus err = SecItemCopyMatching((CFDictionaryRef)getquery, nil);
+    return (err == noErr); // No error means the certificate was found, otherwise err will be "errSecItemNotFound".
+}
+
+// Returns the expiration date "kSecOIDX509V1ValidityNotAfter" of the Arduino certificate.
+// The value is returned as a CFAbsoluteTime: a long number of seconds from the date of 1 Jan 2001 00:00:00 GMT.
+const char *getExpirationDate(long *expirationDate) {
+    // Create a key-value dictionary used to query the Keychain and look for the "Arduino" root certificate.
+    NSDictionary *getquery = @{
+                (id)kSecClass:     (id)kSecClassCertificate,
+                (id)kSecAttrLabel: @"Arduino",
+                (id)kSecReturnRef: @YES,
+            };
+
+    SecCertificateRef cert = NULL;
+
+    // Search the keychain for certificates matching the query above.
+    OSStatus err = SecItemCopyMatching((CFDictionaryRef)getquery, (CFTypeRef *)&cert);
+    if (err != noErr) return toErrorString([@"Error getting the certificate: " stringByAppendingFormat:@"%d", err]);
+
+    // Get data from the certificate, as a dictionary of properties. We just need the "invalidity not after" property.
+    CFDictionaryRef certDict = SecCertificateCopyValues(cert, 
+        (__bridge CFArrayRef)@[(__bridge id)kSecOIDX509V1ValidityNotAfter], NULL);
+    if (certDict == NULL) return toErrorString(@"SecCertificateCopyValues failed");
+
+
+    // Get the "validity not after" property as a dictionary, and get the "value" key (that is a number).
+    CFDictionaryRef validityNotAfterDict = CFDictionaryGetValue(certDict, kSecOIDX509V1ValidityNotAfter);
+    if (validityNotAfterDict == NULL) return toErrorString(@"CFDictionaryGetValue (validity) failed");
+
+    CFNumberRef number = (CFNumberRef)CFDictionaryGetValue(validityNotAfterDict, kSecPropertyKeyValue);
+    if (number == NULL) return toErrorString(@"CFDictionaryGetValue (keyValue) failed");
+
+    CFNumberGetValue(number, kCFNumberSInt64Type, expirationDate);
+    // NSLog(@"Certificate validity not after: %ld", *expirationDate);
+
+    CFRelease(certDict);
+    return ""; // No error.
+}
\ No newline at end of file
diff --git a/certificates/install_darwin.go b/certificates/install_darwin.go
index 892c390b0..515c9f7d4 100644
--- a/certificates/install_darwin.go
+++ b/certificates/install_darwin.go
@@ -15,146 +15,20 @@
 
 package certificates
 
-//inspired by https://stackoverflow.com/questions/12798950/ios-install-ssl-certificate-programmatically
-
 /*
 // Explicitly tell the GCC compiler that the language is Objective-C.
 #cgo CFLAGS: -x objective-c
-// Pass the list of macOS frameworks needed by this piece of Objective-C code.
-#cgo LDFLAGS: -framework Cocoa
-#import 
-
-const char *installCert(const char *path) {
-    NSURL *url = [NSURL fileURLWithPath:@(path) isDirectory:NO];
-    NSData *rootCertData = [NSData dataWithContentsOfURL:url];
-
-    OSStatus err = noErr;
-    SecCertificateRef rootCert = SecCertificateCreateWithData(kCFAllocatorDefault, (CFDataRef) rootCertData);
-
-    CFTypeRef result;
-
-    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
-        (id)kSecClassCertificate, kSecClass,
-        rootCert, kSecValueRef,
-        nil];
-
-    err = SecItemAdd((CFDictionaryRef)dict, &result);
-
-    if (err == noErr) {
-        NSLog(@"Install root certificate success");
-    } else if (err == errSecDuplicateItem) {
-        NSString *errString = [@"duplicate root certificate entry. Error: " stringByAppendingFormat:@"%d", err];
-        NSLog(@"%@", errString);
-        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];;
-    } else {
-        NSString *errString = [@"install root certificate failure. Error: " stringByAppendingFormat:@"%d", err];
-        NSLog(@"%@", errString);
-        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
-    }
-
-    NSDictionary *newTrustSettings = @{(id)kSecTrustSettingsResult: [NSNumber numberWithInt:kSecTrustSettingsResultTrustRoot]};
-    err = SecTrustSettingsSetTrustSettings(rootCert, kSecTrustSettingsDomainUser, (__bridge CFTypeRef)(newTrustSettings));
-    if (err != errSecSuccess) {
-        NSString *errString = [@"Could not change the trust setting for a certificate. Error: " stringByAppendingFormat:@"%d", err];
-        NSLog(@"%@", errString);
-        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
-    }
-
-    return "";
-}
-
-const char *uninstallCert() {
-    // Each line is a key-value of the dictionary. Note: the the inverted order, value first then key.
-    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
-        (id)kSecClassCertificate, kSecClass,
-        CFSTR("Arduino"), kSecAttrLabel,
-        kSecMatchLimitOne, kSecMatchLimit,
-        kCFBooleanTrue, kSecReturnAttributes,
-        nil];
-
-    OSStatus err = noErr;
-    // Use this function to check for errors
-    err = SecItemCopyMatching((CFDictionaryRef)dict, nil);
-    if (err == noErr) {
-        err = SecItemDelete((CFDictionaryRef)dict);
-        if (err != noErr) {
-            NSString *errString = [@"Could not delete the certificates. Error: " stringByAppendingFormat:@"%d", err];
-            NSLog(@"%@", errString);
-            return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];;
-        }
-    } else if (err != errSecItemNotFound){
-        NSString *errString = [@"Error: " stringByAppendingFormat:@"%d", err];
-        NSLog(@"%@", errString);
-        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];;
-    }
-    return "";
-}
-
-const char *getExpirationDate(char *expirationDate){
-    // Create a key-value dictionary used to query the Keychain and look for the "Arduino" root certificate.
-    NSDictionary *getquery = @{
-                (id)kSecClass:     (id)kSecClassCertificate,
-                (id)kSecAttrLabel: @"Arduino",
-                (id)kSecReturnRef: @YES,
-            };
-
-    OSStatus err = noErr;
-    SecCertificateRef cert = NULL;
-
-    // Use this function to check for errors
-    err = SecItemCopyMatching((CFDictionaryRef)getquery, (CFTypeRef *)&cert);
-
-    if (err != noErr){
-        NSString *errString = [@"Error: " stringByAppendingFormat:@"%d", err];
-        NSLog(@"%@", errString);
-        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
-    }
 
-    // Get data from the certificate. We just need the "invalidity date" property.
-    CFDictionaryRef valuesDict = SecCertificateCopyValues(cert, (__bridge CFArrayRef)@[(__bridge id)kSecOIDInvalidityDate], NULL);
-
-    id expirationDateValue;
-    if(valuesDict){
-        CFDictionaryRef invalidityDateDictionaryRef = CFDictionaryGetValue(valuesDict, kSecOIDInvalidityDate);
-        if(invalidityDateDictionaryRef){
-            CFTypeRef invalidityRef = CFDictionaryGetValue(invalidityDateDictionaryRef, kSecPropertyKeyValue);
-            if(invalidityRef){
-                expirationDateValue = CFBridgingRelease(invalidityRef);
-            }
-        }
-        CFRelease(valuesDict);
-    }
-
-    NSString *outputString = [@"" stringByAppendingFormat:@"%@", expirationDateValue];
-    if([outputString isEqualToString:@""]){
-        NSString *errString = @"Error: the expiration date of the certificate could not be found";
-        NSLog(@"%@", errString);
-        return [errString cStringUsingEncoding:[NSString defaultCStringEncoding]];
-    }
-
-    // This workaround allows to obtain the expiration date alongside the error message
-    strncpy(expirationDate, [outputString cStringUsingEncoding:[NSString defaultCStringEncoding]], 32);
-    expirationDate[32-1] = 0;
-
-    return "";
-}
-
-const char *getDefaultBrowserName() {
-    NSURL *defaultBrowserURL = [[NSWorkspace sharedWorkspace] URLForApplicationToOpenURL:[NSURL URLWithString:@"http://"]];
-    if (defaultBrowserURL) {
-        NSBundle *defaultBrowserBundle = [NSBundle bundleWithURL:defaultBrowserURL];
-        NSString *defaultBrowser = [defaultBrowserBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
-
-        return [defaultBrowser cStringUsingEncoding:[NSString defaultCStringEncoding]];
-    }
+// Pass the list of macOS frameworks needed by this piece of Objective-C code.
+#cgo LDFLAGS: -framework Foundation -framework Security -framework AppKit
 
-    return "";
-}
+#import 
+#include "certificates_darwin.h"
 */
 import "C"
 import (
 	"errors"
-	"strings"
+	"time"
 	"unsafe"
 
 	log "github.com/sirupsen/logrus"
@@ -172,7 +46,7 @@ func InstallCertificate(cert *paths.Path) error {
 	p := C.installCert(ccert)
 	s := C.GoString(p)
 	if len(s) != 0 {
-		utilities.UserPrompt("display dialog \"" + s + "\" buttons \"OK\" with title \"Arduino Agent: Error installing certificates\"")
+		utilities.UserPrompt(s, "\"OK\"", "OK", "OK", "Arduino Agent: Error installing certificates")
 		UninstallCertificates()
 		return errors.New(s)
 	}
@@ -186,25 +60,29 @@ func UninstallCertificates() error {
 	p := C.uninstallCert()
 	s := C.GoString(p)
 	if len(s) != 0 {
-		utilities.UserPrompt("display dialog \"" + s + "\" buttons \"OK\" with title \"Arduino Agent: Error uninstalling certificates\"")
+		utilities.UserPrompt(s, "\"OK\"", "OK", "OK", "Arduino Agent: Error uninstalling certificates")
 		return errors.New(s)
 	}
 	return nil
 }
 
 // GetExpirationDate returns the expiration date of a certificate stored in the keychain
-func GetExpirationDate() (string, error) {
+func GetExpirationDate() (time.Time, error) {
 	log.Infof("Retrieving certificate's expiration date")
-	dateString := C.CString("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") // 32 characters string
-	defer C.free(unsafe.Pointer(dateString))
-	p := C.getExpirationDate(dateString)
-	s := C.GoString(p)
-	if len(s) != 0 {
-		utilities.UserPrompt("display dialog \"" + s + "\" buttons \"OK\" with title \"Arduino Agent: Error retrieving expiration date\"")
-		return "", errors.New(s)
+
+	expirationDateLong := C.long(0)
+
+	err := C.getExpirationDate(&expirationDateLong)
+	errString := C.GoString(err)
+	if len(errString) > 0 {
+		utilities.UserPrompt(errString, "\"OK\"", "OK", "OK", "Arduino Agent: Error retrieving expiration date")
+		return time.Time{}, errors.New(errString)
 	}
-	date := C.GoString(dateString)
-	return strings.ReplaceAll(date, " +0000", ""), nil
+
+	// The expirationDate is the number of seconds from the date of 1 Jan 2001 00:00:00 GMT.
+	// Add 31 years to convert it to Unix Epoch.
+	expirationDate := int64(expirationDateLong)
+	return time.Unix(expirationDate, 0).AddDate(31, 0, 0), nil
 }
 
 // GetDefaultBrowserName returns the name of the default browser
@@ -213,3 +91,11 @@ func GetDefaultBrowserName() string {
 	p := C.getDefaultBrowserName()
 	return C.GoString(p)
 }
+
+// CertInKeychain checks if the certificate is stored inside the keychain
+func CertInKeychain() bool {
+	log.Infof("Checking if the Arduino certificate is in the keychain")
+
+	certInKeychain := C.certInKeychain()
+	return bool(certInKeychain)
+}
diff --git a/certificates/install_default.go b/certificates/install_default.go
index 8013c018d..533574d69 100644
--- a/certificates/install_default.go
+++ b/certificates/install_default.go
@@ -19,6 +19,7 @@ package certificates
 
 import (
 	"errors"
+	"time"
 
 	log "github.com/sirupsen/logrus"
 
@@ -38,9 +39,9 @@ func UninstallCertificates() error {
 }
 
 // GetExpirationDate won't do anything on unsupported Operative Systems
-func GetExpirationDate() (string, error) {
+func GetExpirationDate() (time.Time, error) {
 	log.Warn("platform not supported for retrieving certificates expiration date")
-	return "", errors.New("platform not supported for retrieving certificates expiration date")
+	return time.Time{}, errors.New("platform not supported for retrieving certificates expiration date")
 }
 
 // GetDefaultBrowserName won't do anything on unsupported Operative Systems
@@ -48,3 +49,9 @@ func GetDefaultBrowserName() string {
 	log.Warn("platform not supported for retrieving default browser name")
 	return ""
 }
+
+// CertInKeychain won't do anything on unsupported Operative Systems
+func CertInKeychain() bool {
+	log.Warn("platform not supported for verifying the certificate existence")
+	return false
+}
diff --git a/main.go b/main.go
index 0231548d4..1ca857b02 100755
--- a/main.go
+++ b/main.go
@@ -178,7 +178,7 @@ func loop() {
 	// If we are updating manually from 1.2.7 to 1.3.0 we have to uninstall the old agent manually first.
 	// This check will inform the user if he needs to run the uninstall first
 	if runtime.GOOS == "darwin" && oldInstallExists() {
-		utilities.UserPrompt("display dialog \"Old agent installation of the Arduino Create Agent found, please uninstall it before launching the new one\" buttons \"OK\" with title \"Error\"")
+		utilities.UserPrompt("Old agent installation of the Arduino Create Agent found, please uninstall it before launching the new one", "\"OK\"", "OK", "OK", "Error")
 		os.Exit(0)
 	}
 
@@ -223,25 +223,27 @@ func loop() {
 
 	// if the default browser is Safari, prompt the user to install HTTPS certificates
 	// and eventually install them
-	if runtime.GOOS == "darwin" && cert.GetDefaultBrowserName() == "Safari" {
+	if runtime.GOOS == "darwin" {
 		if exist, err := installCertsKeyExists(configPath.String()); err != nil {
 			log.Panicf("config.ini cannot be parsed: %s", err)
 		} else if !exist {
-			if config.CertsExist() {
-				err = config.SetInstallCertsIni(configPath.String(), "true")
-				if err != nil {
-					log.Panicf("config.ini cannot be parsed: %s", err)
-				}
-			} else if cert.PromptInstallCertsSafari() {
+			if cert.CertInKeychain() || config.CertsExist() {
 				err = config.SetInstallCertsIni(configPath.String(), "true")
 				if err != nil {
 					log.Panicf("config.ini cannot be parsed: %s", err)
 				}
-				cert.GenerateAndInstallCertificates(config.GetCertificatesDir())
-			} else {
-				err = config.SetInstallCertsIni(configPath.String(), "false")
-				if err != nil {
-					log.Panicf("config.ini cannot be parsed: %s", err)
+			} else if cert.GetDefaultBrowserName() == "Safari" {
+				if promptInstallCertsSafari() {
+					err = config.SetInstallCertsIni(configPath.String(), "true")
+					if err != nil {
+						log.Panicf("config.ini cannot be parsed: %s", err)
+					}
+					cert.GenerateAndInstallCertificates(config.GetCertificatesDir())
+				} else {
+					err = config.SetInstallCertsIni(configPath.String(), "false")
+					if err != nil {
+						log.Panicf("config.ini cannot be parsed: %s", err)
+					}
 				}
 			}
 		}
@@ -369,21 +371,38 @@ func loop() {
 		}
 	}
 
-	// check if the HTTPS certificates are expired and prompt the user to update them on macOS
-	if runtime.GOOS == "darwin" && cert.GetDefaultBrowserName() == "Safari" {
-		if *installCerts {
-			if config.CertsExist() {
-				cert.PromptExpiredCerts(config.GetCertificatesDir())
-			} else if cert.PromptInstallCertsSafari() {
-				// installing the certificates from scratch at this point should only happen if
-				// something went wrong during previous installation attempts
-				cert.GenerateAndInstallCertificates(config.GetCertificatesDir())
-			} else {
-				err = config.SetInstallCertsIni(configPath.String(), "false")
-				if err != nil {
-					log.Panicf("config.ini cannot be parsed: %s", err)
+	// check if the HTTPS certificates are expired or expiring and prompt the user to update them on macOS
+	if runtime.GOOS == "darwin" && *installCerts {
+		if cert.CertInKeychain() || config.CertsExist() {
+			certDir := config.GetCertificatesDir()
+			if expired, err := cert.IsExpired(); err != nil {
+				log.Errorf("cannot check if certificates are expired something went wrong: %s", err)
+			} else if expired {
+				buttonPressed := utilities.UserPrompt("The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\nYour certificate is expired or close to expiration. Do you want to update it?", "{\"Do not update\", \"Update the certificate for Safari\"}", "Update the certificate for Safari", "Update the certificate for Safari", "Arduino Agent: Update certificate")
+				if buttonPressed {
+					err := cert.UninstallCertificates()
+					if err != nil {
+						log.Errorf("cannot uninstall certificates something went wrong: %s", err)
+					} else {
+						cert.DeleteCertificates(certDir)
+						cert.GenerateAndInstallCertificates(certDir)
+					}
+				} else {
+					err = config.SetInstallCertsIni(configPath.String(), "false")
+					if err != nil {
+						log.Panicf("config.ini cannot be parsed: %s", err)
+					}
 				}
 			}
+		} else if promptInstallCertsSafari() {
+			// installing the certificates from scratch at this point should only happen if
+			// something went wrong during previous installation attempts
+			cert.GenerateAndInstallCertificates(config.GetCertificatesDir())
+		} else {
+			err = config.SetInstallCertsIni(configPath.String(), "false")
+			if err != nil {
+				log.Panicf("config.ini cannot be parsed: %s", err)
+			}
 		}
 	}
 
@@ -534,3 +553,7 @@ func installCertsKeyExists(filename string) (bool, error) {
 	}
 	return cfg.Section("").HasKey("installCerts"), nil
 }
+
+func promptInstallCertsSafari() bool {
+	return utilities.UserPrompt("The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\nIf you use Safari, you need to install it.", "{\"Do not install\", \"Install the certificate for Safari\"}", "Install the certificate for Safari", "Install the certificate for Safari", "Arduino Agent: Install certificate")
+}
diff --git a/systray/systray_real.go b/systray/systray_real.go
index 503373d82..5ae79f086 100644
--- a/systray/systray_real.go
+++ b/systray/systray_real.go
@@ -22,7 +22,7 @@ package systray
 import (
 	"os"
 	"runtime"
-	"strings"
+	"time"
 
 	"fyne.io/systray"
 	cert "github.com/arduino/arduino-create-agent/certificates"
@@ -95,38 +95,42 @@ func (s *Systray) start() {
 				s.updateMenuItem(mRmCrashes, config.LogsIsEmpty())
 			case <-mManageCerts.ClickedCh:
 				infoMsg := "The Arduino Agent needs a local HTTPS certificate to work correctly with Safari.\n\nYour HTTPS certificate status:\n"
-				buttons := "{\"Install the certificate for Safari\", \"OK\"} default button \"OK\""
+				buttons := "{\"Install the certificate for Safari\", \"OK\"}"
+				toPress := "Install the certificate for Safari"
 				certDir := config.GetCertificatesDir()
-				if config.CertsExist() {
+				if cert.CertInKeychain() || config.CertsExist() {
 					expDate, err := cert.GetExpirationDate()
 					if err != nil {
 						log.Errorf("cannot get certificates expiration date, something went wrong: %s", err)
 					}
-					infoMsg = infoMsg + "- Certificate installed: Yes\n- Certificate trusted: Yes\n- Certificate expiration date: " + expDate
-					buttons = "{\"Uninstall the certificate for Safari\", \"OK\"} default button \"OK\""
-				} else {
-					infoMsg = infoMsg + "- Certificate installed: No\n- Certificate trusted: N/A\n- Certificate expiration date: N/A"
-				}
-				pressedButton := utilities.UserPrompt("display dialog \"" + infoMsg + "\" buttons " + buttons + " with title \"Arduino Agent: Manage HTTPS certificate\"")
-				if strings.Contains(pressedButton, "Install certificate for Safari") {
-					cert.GenerateAndInstallCertificates(certDir)
-					err := config.SetInstallCertsIni(s.currentConfigFilePath.String(), "true")
-					if err != nil {
-						log.Errorf("cannot set installCerts value in config.ini: %s", err)
+					infoMsg = infoMsg + "- Certificate installed:\t\tYes\n- Certificate trusted:\t\tYes\n- Certificate expiration:\t" + expDate.Format(time.DateTime)
+					buttons = "{\"Uninstall the certificate for Safari\", \"OK\"}"
+					toPress = "Uninstall the certificate for Safari"
+					pressedButton := utilities.UserPrompt(infoMsg, buttons, "OK", toPress, "Arduino Agent: Manage HTTPS certificate")
+					if pressedButton {
+						err := cert.UninstallCertificates()
+						if err != nil {
+							log.Errorf("cannot uninstall certificates something went wrong: %s", err)
+						} else {
+							cert.DeleteCertificates(certDir)
+							err = config.SetInstallCertsIni(s.currentConfigFilePath.String(), "false")
+							if err != nil {
+								log.Errorf("cannot set installCerts value in config.ini: %s", err)
+							}
+						}
+						s.Restart()
 					}
-					s.Restart()
-				} else if strings.Contains(pressedButton, "Uninstall certificate for Safari") {
-					err := cert.UninstallCertificates()
-					if err != nil {
-						log.Errorf("cannot uninstall certificates something went wrong: %s", err)
-					} else {
-						cert.DeleteCertificates(certDir)
-						err = config.SetInstallCertsIni(s.currentConfigFilePath.String(), "false")
+				} else {
+					infoMsg = infoMsg + "- Certificate installed:\t\tNo\n- Certificate trusted:\t\tN/A\n- Certificate expiration:\tN/A"
+					pressedButton := utilities.UserPrompt(infoMsg, buttons, "OK", toPress, "Arduino Agent: Manage HTTPS certificate")
+					if pressedButton {
+						cert.GenerateAndInstallCertificates(certDir)
+						err := config.SetInstallCertsIni(s.currentConfigFilePath.String(), "true")
 						if err != nil {
 							log.Errorf("cannot set installCerts value in config.ini: %s", err)
 						}
+						s.Restart()
 					}
-					s.Restart()
 				}
 			case <-mPause.ClickedCh:
 				s.Pause()
diff --git a/utilities/utilities.go b/utilities/utilities.go
index 63f09103e..5979732d4 100644
--- a/utilities/utilities.go
+++ b/utilities/utilities.go
@@ -151,8 +151,8 @@ func VerifyInput(input string, signature string) error {
 }
 
 // UserPrompt executes an osascript and returns the pressed button
-func UserPrompt(dialog string) string {
-	oscmd := exec.Command("osascript", "-e", dialog)
+func UserPrompt(dialog string, buttons string, defaultButton string, toPress string, title string) bool {
+	oscmd := exec.Command("osascript", "-e", "display dialog \""+dialog+"\" buttons "+buttons+" default button\""+defaultButton+"\" with title \""+title+"\"")
 	pressedButton, _ := oscmd.Output()
-	return string(pressedButton)
+	return strings.Contains(string(pressedButton), "button returned:"+toPress)
 }

From 2fa738f147f149ec208f6c10c30095d6b90f789f Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Wed, 15 May 2024 09:49:44 +0200
Subject: [PATCH 196/233] Show message to the user after a successful
 certificate installation (#951)

* Show message to the user after a successful certificate installation

* Show a simplified message (different for install and uninstall cases)

---------

Co-authored-by: Xayton <30591904+Xayton@users.noreply.github.com>
---
 certificates/certificates.go | 2 ++
 systray/systray_real.go      | 1 +
 2 files changed, 3 insertions(+)

diff --git a/certificates/certificates.go b/certificates/certificates.go
index 8a8c50d86..ae2843d22 100644
--- a/certificates/certificates.go
+++ b/certificates/certificates.go
@@ -32,6 +32,7 @@ import (
 	"os"
 	"time"
 
+	"github.com/arduino/arduino-create-agent/utilities"
 	"github.com/arduino/go-paths-helper"
 	log "github.com/sirupsen/logrus"
 )
@@ -286,4 +287,5 @@ func GenerateAndInstallCertificates(certDir *paths.Path) {
 		log.Errorf("cannot install certificates something went wrong: %s", err)
 		DeleteCertificates(certDir)
 	}
+	utilities.UserPrompt("The HTTPS certificate has been installed correctly.", "{\"OK\"}", "OK", "OK", "Arduino Agent: HTTPS certificate installation")
 }
diff --git a/systray/systray_real.go b/systray/systray_real.go
index 5ae79f086..b070f22af 100644
--- a/systray/systray_real.go
+++ b/systray/systray_real.go
@@ -117,6 +117,7 @@ func (s *Systray) start() {
 							if err != nil {
 								log.Errorf("cannot set installCerts value in config.ini: %s", err)
 							}
+							utilities.UserPrompt("The HTTPS certificate has been uninstalled.", "{\"OK\"}", "OK", "OK", "Arduino Agent: HTTPS certificate installation")
 						}
 						s.Restart()
 					}

From fc0a137a0953f8e07ed00f763aadcae9992593a5 Mon Sep 17 00:00:00 2001
From: Umberto Baldi <34278123+umbynos@users.noreply.github.com>
Date: Thu, 16 May 2024 11:29:44 +0200
Subject: [PATCH 197/233] use eToken for signing (#950)

* fix typo

* use eToken for signing, create a dedicated step for signing

* update workflow, we have a certificate and no longer a container for win

* env var $GITHUB_REF not expanded in step input causing workflow to fail

* bump runner, so that we get an updated version of openssl

OpenSSL 1.1.1f-1ubuntu2.22 in Ubuntu 20.04 https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md
OpenSSL 3.0.2-0ubuntu1.15 in Ubuntu 22.04 https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md

* add flag to correctly recognize the algorithm

see https://github.com/openssl/openssl/discussions/23089

* remove double quotes, they cause errors with new version of openssl:
`Could not read certificate from `
---
 .github/workflows/check-certificates.yml | 69 +++++++++++++++---------
 .github/workflows/release.yml            | 59 +++++++++++++++-----
 2 files changed, 92 insertions(+), 36 deletions(-)

diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml
index 28e8297c1..694792dcd 100644
--- a/.github/workflows/check-certificates.yml
+++ b/.github/workflows/check-certificates.yml
@@ -26,7 +26,7 @@ jobs:
     if: >
       (github.event_name != 'pull_request' && github.repository == 'arduino/arduino-create-agent') ||
       (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'arduino/arduino-create-agent')
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
 
     strategy:
       fail-fast: false
@@ -37,9 +37,11 @@ jobs:
           - identifier: macOS signing certificate # Text used to identify certificate in notifications.
             certificate-secret: INSTALLER_CERT_MAC_P12  # Name of the secret that contains the certificate.
             password-secret: INSTALLER_CERT_MAC_PASSWORD  # Name of the secret that contains the certificate password.
+            type: pkcs12
           - identifier: Windows signing certificate
-            certificate-secret: INSTALLER_CERT_WINDOWS_PFX
-            password-secret: INSTALLER_CERT_WINDOWS_PASSWORD
+            certificate-secret: INSTALLER_CERT_WINDOWS_CER
+            # The password for the Windows certificate is not needed, because its not a container, but a single certificate.
+            type: x509
 
     steps:
       - name: Set certificate path environment variable
@@ -58,9 +60,10 @@ jobs:
           CERTIFICATE_PASSWORD: ${{ secrets[matrix.certificate.password-secret] }}
         run: |
           (
-            openssl pkcs12 \
+            openssl ${{ matrix.certificate.type }} \
               -in "${{ env.CERTIFICATE_PATH }}" \
-              -noout -passin env:CERTIFICATE_PASSWORD
+              -noout -passin env:CERTIFICATE_PASSWORD \
+              -legacy
           ) || (
             echo "::error::Verification of ${{ matrix.certificate.identifier }} failed!!!"
             exit 1
@@ -83,25 +86,43 @@ jobs:
           CERTIFICATE_PASSWORD: ${{ secrets[matrix.certificate.password-secret] }}
         id: get-days-before-expiration
         run: |
-          EXPIRATION_DATE="$(
-            (
-              openssl pkcs12 \
-                -in "${{ env.CERTIFICATE_PATH }}" \
-                -clcerts \
-                -nodes \
-                -passin env:CERTIFICATE_PASSWORD
-            ) | (
-              openssl x509 \
-                -noout \
-                -enddate
-            ) | (
-              grep \
-                --max-count=1 \
-                --only-matching \
-                --perl-regexp \
-                'notAfter=(\K.*)'
-            )
-          )"
+          if [[ ${{ matrix.certificate.type }} == "pkcs12" ]]; then
+            EXPIRATION_DATE="$(
+                (
+                openssl pkcs12 \
+                    -in ${{ env.CERTIFICATE_PATH }} \
+                    -clcerts \
+                    -nodes \
+                    -passin env:CERTIFICATE_PASSWORD \
+                    -legacy
+                ) | (
+                openssl x509 \
+                    -noout \
+                    -enddate
+                ) | (
+                grep \
+                    --max-count=1 \
+                    --only-matching \
+                    --perl-regexp \
+                    'notAfter=(\K.*)'
+                )
+            )"
+          elif [[ ${{ matrix.certificate.type }} == "x509" ]]; then
+            EXPIRATION_DATE="$(
+                (
+                openssl x509 \
+                    -in ${{ env.CERTIFICATE_PATH }} \
+                    -noout \
+                    -enddate
+                ) | (
+                grep \
+                    --max-count=1 \
+                    --only-matching \
+                    --perl-regexp \
+                    'notAfter=(\K.*)'
+                )
+            )"
+          fi
 
           DAYS_BEFORE_EXPIRATION="$((($(date --utc --date="$EXPIRATION_DATE" +%s) - $(date --utc +%s)) / 60 / 60 / 24))"
 
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2ae2cf4e4..33fe2b7e8 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -45,7 +45,7 @@ jobs:
       run:
         shell: bash
 
-# by default disable CGO, it's not needed (except on macos)
+    # by default disable CGO, it's not needed (except on macos)
     env:
       CGO_ENABLED: 0
 
@@ -157,7 +157,7 @@ jobs:
   create-macos-bundle:
     needs: build
 
-    # for not they are exaclty the same
+    # for now they are exaclty the same
     strategy:
       matrix:
         arch: [amd64, arm64]
@@ -371,9 +371,6 @@ jobs:
       # vars used by installbuilder
       INSTALLBUILDER_PATH: "/opt/installbuilder-23.11.0/bin/builder"
       INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent"
-      # installbuilder will read this vars automatically (defined in installer.xml):
-      INSTALLER_CERT_WINDOWS_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }}
-      INSTALLER_CERT_WINDOWS_PFX: "/tmp/ArduinoCerts2020.pfx"
 
     strategy:
       fail-fast: false # if one os is failing continue nonetheless
@@ -424,11 +421,6 @@ jobs:
       - name: Save InstallBuilder license to file
         run: echo "${{ secrets.INSTALLER_LICENSE }}" > /tmp/license.xml
 
-      - name: Save Win signing certificate to file
-        run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}}
-        if: matrix.os == 'windows-2019'
-
-        # installbuilder reads the env vars with certs paths and use it to sign the installer.
       - name: Launch Bitrock installbuilder
         run: ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.installbuilder-name }} --verbose --license /tmp/license.xml  --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }}
 
@@ -443,6 +435,49 @@ jobs:
           path: ArduinoCreateAgent*
           if-no-files-found: error
 
+  # This job will sign the Windows installer
+  sign-windows:
+    runs-on: [self-hosted, windows-sign-pc]
+    needs: package
+
+    defaults:
+      run:
+        shell: bash
+
+    env:
+      INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
+      # We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
+      # Keep in mind that this path could change when upgrading to a new runner version
+      SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
+    
+    strategy:
+      matrix:
+        arch: [amd64, 386]
+    
+    steps:
+      - name: Download artifact
+        uses: actions/download-artifact@v3
+        with:
+          name: ArduinoCreateAgent-windows-${{ matrix.arch }}
+      
+      - name: Save Win signing certificate to file
+        run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_CER }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_CER}}
+
+      - name: Sign EXE
+        env:
+          CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }}
+          CONTAINER_NAME: ${{ secrets.INSTALLER_CERT_WINDOWS_CONTAINER }}
+          # https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing-with-safenet-etoken
+        run: | 
+          "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Create Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCreateAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"
+
+      - name: Upload artifacts
+        uses: actions/upload-artifact@v3
+        with:
+          if-no-files-found: error
+          name: ArduinoCreateAgent-windows-${{ matrix.arch }}-signed
+          path: ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
+
   # This job will generate a dmg mac installer, sign/notarize it.
   generate-sign-dmg:
     needs: notarize-macos
@@ -544,7 +579,7 @@ jobs:
   create-release:
     runs-on: ubuntu-20.04
     environment: production
-    needs: [build, package, generate-sign-dmg]
+    needs: [build, generate-sign-dmg, sign-windows]
 
     steps:
       - name: Checkout
@@ -563,7 +598,7 @@ jobs:
           mv -v ArduinoCreateAgent-linux-amd64/* release/
           cat ArduinoCreateAgent-osx-amd64/*.tar | tar -xvf - -i -C release/
           rm -v release/._ArduinoCreateAgent*.dmg
-          mv -v ArduinoCreateAgent-windows*/* release/
+          mv -v ArduinoCreateAgent-windows*-signed/* release/
 
       - name: VirusTotal Scan
         id: virustotal_step

From 7e79dfd1f96e7a2523244e02bcd08b234fce3a09 Mon Sep 17 00:00:00 2001
From: Umberto Baldi <34278123+umbynos@users.noreply.github.com>
Date: Thu, 16 May 2024 11:41:32 +0200
Subject: [PATCH 198/233] Bump actions/upload and actions/download (#952)

* Bump actions/download-artifact from 3 to 4

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] 

* Bump actions/download-artifact in new step

* Bump actions/upload-artifact from 3 to 4

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] 

* Bump actions/upload-artifact in new step

* Migrate sync workflow to actions/[upload-download] to v4

See https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md#multiple-uploads-to-the-same-named-artifact

---------

Signed-off-by: dependabot[bot] 
---
 .../workflows/check-go-dependencies-task.yml  |  2 +-
 .github/workflows/publish-go-tester-task.yml  |  2 +-
 .github/workflows/release.yml                 | 24 +++++++++----------
 .github/workflows/sync-labels.yml             |  9 +++----
 4 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml
index 1d640ed43..4983e0db6 100644
--- a/.github/workflows/check-go-dependencies-task.yml
+++ b/.github/workflows/check-go-dependencies-task.yml
@@ -105,7 +105,7 @@ jobs:
       # Some might find it convenient to have CI generate the cache rather than setting up for it locally
       - name: Upload cache to workflow artifact
         if: failure() && steps.diff.outcome == 'failure'
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           if-no-files-found: error
           name: dep-licenses-cache
diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml
index 5ba56a6f3..66b381643 100644
--- a/.github/workflows/publish-go-tester-task.yml
+++ b/.github/workflows/publish-go-tester-task.yml
@@ -128,7 +128,7 @@ jobs:
         if: runner.os == 'macOS'
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }}
           path: |
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 33fe2b7e8..ce3caa1b7 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -147,7 +147,7 @@ jobs:
         if: steps.prerelease.outputs.IS_PRE != 'true'
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}-${{ matrix.arch }}
           path: |
@@ -174,7 +174,7 @@ jobs:
           token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }}
 
       - name: Download artifact
-        uses: actions/download-artifact@v3
+        uses: actions/download-artifact@v4
         with:
           name: ${{ env.PROJECT_NAME }}-macos-12-amd64 # if we want to support darwin-arm64 in the future for real this has to change.
           path: ${{ env.EXE_PATH }}
@@ -218,7 +218,7 @@ jobs:
         run: tar -cvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar -C skel/ .
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           if-no-files-found: error
           name: ArduinoCreateAgent.app_${{ matrix.arch }}
@@ -241,7 +241,7 @@ jobs:
 
     steps:
       - name: Download artifact
-        uses: actions/download-artifact@v3
+        uses: actions/download-artifact@v4
         with:
           name: ArduinoCreateAgent.app_${{ matrix.arch }}
 
@@ -356,7 +356,7 @@ jobs:
         if: ${{ needs.build.outputs.prerelease != 'true' }}
 
       - name: Upload artifact
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized
           path: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip
@@ -405,7 +405,7 @@ jobs:
           token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }}
 
       - name: Download artifact
-        uses: actions/download-artifact@v3
+        uses: actions/download-artifact@v4
         with:
           name: ${{ env.PROJECT_NAME }}-${{ matrix.os }}-${{ matrix.arch }}
           path: artifacts/${{ matrix.platform-name }}/ # path expected by installbuilder
@@ -429,7 +429,7 @@ jobs:
         if: matrix.os == 'ubuntu-20.04'
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: ArduinoCreateAgent-${{ matrix.platform-name }}-${{ matrix.arch }}
           path: ArduinoCreateAgent*
@@ -456,7 +456,7 @@ jobs:
     
     steps:
       - name: Download artifact
-        uses: actions/download-artifact@v3
+        uses: actions/download-artifact@v4
         with:
           name: ArduinoCreateAgent-windows-${{ matrix.arch }}
       
@@ -472,7 +472,7 @@ jobs:
           "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Create Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCreateAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           if-no-files-found: error
           name: ArduinoCreateAgent-windows-${{ matrix.arch }}-signed
@@ -494,7 +494,7 @@ jobs:
           token: ${{ secrets.ARDUINO_CREATE_AGENT_CI_PAT }}
 
       - name: Download artifact
-        uses: actions/download-artifact@v3
+        uses: actions/download-artifact@v4
         with:
           name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized
           path: ArduinoCreateAgent.app
@@ -570,7 +570,7 @@ jobs:
         run: tar -cvf ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.tar ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg
 
       - name: Upload artifacts
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           name: ArduinoCreateAgent-osx-${{ matrix.arch }}
           path: ArduinoCreateAgent*.tar
@@ -588,7 +588,7 @@ jobs:
           fetch-depth: 0 # fetch all history for the create changelog step to work properly
 
       - name: Download artifact
-        uses: actions/download-artifact@v3 # download all the artifacts
+        uses: actions/download-artifact@v4 # download all the artifacts
 
       #  mandatory step because upload-release-action does not support multiple folders
       - name: prepare artifacts for the release
diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml
index d0a553526..184a42077 100644
--- a/.github/workflows/sync-labels.yml
+++ b/.github/workflows/sync-labels.yml
@@ -71,13 +71,13 @@ jobs:
           file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }}
 
       - name: Pass configuration files to next job via workflow artifact
-        uses: actions/upload-artifact@v3
+        uses: actions/upload-artifact@v4
         with:
           path: |
             *.yaml
             *.yml
           if-no-files-found: error
-          name: ${{ env.CONFIGURATIONS_ARTIFACT }}
+          name: ${{ env.CONFIGURATIONS_ARTIFACT }}-${{ matrix.filename }}
 
   sync:
     needs: download
@@ -109,10 +109,11 @@ jobs:
         uses: actions/checkout@v4
 
       - name: Download configuration files artifact
-        uses: actions/download-artifact@v3
+        uses: actions/download-artifact@v4
         with:
-          name: ${{ env.CONFIGURATIONS_ARTIFACT }}
+          pattern: ${{ env.CONFIGURATIONS_ARTIFACT }}-* # Download all configuration files
           path: ${{ env.CONFIGURATIONS_FOLDER }}
+          merge-multiple: true
 
       - name: Remove unneeded artifact
         uses: geekyeggo/delete-artifact@v5

From 0b9b35e40e8cd10eb376bdc53c691d6786e98d9b Mon Sep 17 00:00:00 2001
From: David Anson 
Date: Sat, 18 May 2024 17:50:49 -0700
Subject: [PATCH 199/233] Fix spelling of the word "development" in README.md.

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 7f7100b5e..7356117d8 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@ The documentation has been moved to the [wiki](https://github.com/arduino/arduin
 
 - [Advanced usage](https://github.com/arduino/arduino-create-agent/wiki/Advanced-usage): explaining how to use multiple configurations and how to use the agent with a proxy.
 - [Agent Beta Program](https://github.com/arduino/arduino-create-agent/wiki/Agent-Beta-Program)
-- [Developement](https://github.com/arduino/arduino-create-agent/wiki/Developement): containing useful info to help in development
+- [Development](https://github.com/arduino/arduino-create-agent/wiki/Developement): containing useful info to help in development
 - [Disable Autostart](https://github.com/arduino/arduino-create-agent/wiki/Disable-Autostart)
 - [How to compile on Raspberry Pi](https://github.com/arduino/arduino-create-agent/wiki/How-to-compile-on-Raspberry-Pi)
 - [How to use crashreport functionality](https://github.com/arduino/arduino-create-agent/wiki/How-to-use-crashreport-functionality)

From 6220828536b2de00eb2f7daabfffe45183e75234 Mon Sep 17 00:00:00 2001
From: Alby <30591904+Xayton@users.noreply.github.com>
Date: Thu, 23 May 2024 18:07:26 +0200
Subject: [PATCH 200/233] Update README.md "Development" link (#959)

Update a wrong link (https://github.com/arduino/arduino-create-agent/wiki/Development), so that we can remove the wrong page in the Wiki.
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 7356117d8..5c97939b6 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,7 @@ The documentation has been moved to the [wiki](https://github.com/arduino/arduin
 
 - [Advanced usage](https://github.com/arduino/arduino-create-agent/wiki/Advanced-usage): explaining how to use multiple configurations and how to use the agent with a proxy.
 - [Agent Beta Program](https://github.com/arduino/arduino-create-agent/wiki/Agent-Beta-Program)
-- [Development](https://github.com/arduino/arduino-create-agent/wiki/Developement): containing useful info to help in development
+- [Development](https://github.com/arduino/arduino-create-agent/wiki/Development): containing useful info to help in development
 - [Disable Autostart](https://github.com/arduino/arduino-create-agent/wiki/Disable-Autostart)
 - [How to compile on Raspberry Pi](https://github.com/arduino/arduino-create-agent/wiki/How-to-compile-on-Raspberry-Pi)
 - [How to use crashreport functionality](https://github.com/arduino/arduino-create-agent/wiki/How-to-use-crashreport-functionality)

From b02967edac710a5690857bd0fa8dbf6cd503dbf8 Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Mon, 17 Jun 2024 09:31:22 +0200
Subject: [PATCH 201/233] Add step to delete the signed exe on the self-hosted
 runner (#965)

---
 .github/workflows/release.yml | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index ce3caa1b7..f149c8eb9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -132,7 +132,7 @@ jobs:
       - name: Create autoupdate files for win32
         run: go-selfupdate -platform windows-${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION}
         if: matrix.arch == '386' && matrix.os == 'windows-2019' && steps.prerelease.outputs.IS_PRE != 'true'
-      
+
       - name: configure aws credentials
         uses: aws-actions/configure-aws-credentials@v4
         with:
@@ -311,7 +311,7 @@ jobs:
         run: |
           wget -q https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip
           unzip gon_macos.zip -d /usr/local/bin
-  
+
       - name: Write gon config to file
         run: |
           cat > "${{ env.GON_CONFIG_PATH }}" < ${{ env.INSTALLER_CERT_WINDOWS_CER}}
 
@@ -468,7 +468,7 @@ jobs:
           CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }}
           CONTAINER_NAME: ${{ secrets.INSTALLER_CERT_WINDOWS_CONTAINER }}
           # https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing-with-safenet-etoken
-        run: | 
+        run: |
           "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Create Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCreateAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"
 
       - name: Upload artifacts
@@ -478,6 +478,10 @@ jobs:
           name: ArduinoCreateAgent-windows-${{ matrix.arch }}-signed
           path: ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
 
+        # This step is needed because the self hosted runner does not delete files automatically
+      - name: Clean up EXE
+        run: rm ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
+
   # This job will generate a dmg mac installer, sign/notarize it.
   generate-sign-dmg:
     needs: notarize-macos

From 04414e26c0d8cf0795d02c364637c3bb3f218bd4 Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Tue, 2 Jul 2024 09:31:09 +0200
Subject: [PATCH 202/233] Check if a signed URL is specified and use it
 download tools (#953)

* Wrap v2 tools install function inside tools.Download

* Download tools defaulting to the replace behaviour

* Improve archive renamer and fix failing tests

* Find the correct tool and system when `version=latest` is specified

* Reintroduce caching option when downloading tools
---
 tools/download.go      | 170 ++++-------------------------------------
 tools/download_test.go |  24 +++---
 tools/tools.go         |  12 ---
 v2/http.go             |   2 +-
 v2/pkgs/tools.go       | 137 ++++++++++++++++++++++++++-------
 v2/pkgs/tools_test.go  |   8 +-
 6 files changed, 142 insertions(+), 211 deletions(-)

diff --git a/tools/download.go b/tools/download.go
index 360d6e4c3..6e5fa8b7f 100644
--- a/tools/download.go
+++ b/tools/download.go
@@ -16,43 +16,18 @@
 package tools
 
 import (
-	"bytes"
 	"context"
-	"crypto/sha256"
-	"encoding/hex"
-	"encoding/json"
 	"errors"
-	"fmt"
-	"io"
-	"net/http"
 	"os"
 	"os/exec"
 	"path/filepath"
 	"runtime"
 
+	"github.com/arduino/arduino-create-agent/gen/tools"
+	"github.com/arduino/arduino-create-agent/utilities"
 	"github.com/arduino/arduino-create-agent/v2/pkgs"
-	"github.com/arduino/go-paths-helper"
-	"github.com/blang/semver"
-	"github.com/codeclysm/extract/v3"
 )
 
-// public vars to allow override in the tests
-var (
-	OS   = runtime.GOOS
-	Arch = runtime.GOARCH
-)
-
-func pathExists(path string) bool {
-	_, err := os.Stat(path)
-	if err == nil {
-		return true
-	}
-	if os.IsNotExist(err) {
-		return false
-	}
-	return true
-}
-
 // Download will parse the index at the indexURL for the tool to download.
 // It will extract it in a folder in .arduino-create, and it will update the
 // Installed map.
@@ -70,97 +45,21 @@ func pathExists(path string) bool {
 // if it already exists.
 func (t *Tools) Download(pack, name, version, behaviour string) error {
 
-	body, err := t.index.Read()
-	if err != nil {
-		return err
-	}
-
-	var data pkgs.Index
-	json.Unmarshal(body, &data)
-
-	// Find the tool by name
-	correctTool, correctSystem := findTool(pack, name, version, data)
-
-	if correctTool.Name == "" || correctSystem.URL == "" {
-		t.logger("We couldn't find a tool with the name " + name + " and version " + version + " packaged by " + pack)
-		return nil
-	}
-
-	key := correctTool.Name + "-" + correctTool.Version
-
-	// Check if it already exists
-	if behaviour == "keep" {
-		location, ok := t.getMapValue(key)
-		if ok && pathExists(location) {
-			// overwrite the default tool with this one
-			t.setMapValue(correctTool.Name, location)
-			t.logger("The tool is already present on the system")
-			return t.writeMap()
-		}
-	}
-
-	// Download the tool
-	t.logger("Downloading tool " + name + " from " + correctSystem.URL)
-	resp, err := http.Get(correctSystem.URL)
+	tool := pkgs.New(t.index, t.directory.String(), behaviour)
+	_, err := tool.Install(context.Background(), &tools.ToolPayload{Name: name, Version: version, Packager: pack})
 	if err != nil {
 		return err
 	}
-	defer resp.Body.Close()
-
-	// Read the body
-	body, err = io.ReadAll(resp.Body)
-	if err != nil {
-		return err
-	}
-
-	// Checksum
-	checksum := sha256.Sum256(body)
-	checkSumString := "SHA-256:" + hex.EncodeToString(checksum[:sha256.Size])
-
-	if checkSumString != correctSystem.Checksum {
-		return errors.New("checksum doesn't match")
-	}
-
-	tempPath := paths.TempDir()
-	// Create a temporary dir to extract package
-	if err := tempPath.MkdirAll(); err != nil {
-		return fmt.Errorf("creating temp dir for extraction: %s", err)
-	}
-	tempDir, err := tempPath.MkTempDir("package-")
-	if err != nil {
-		return fmt.Errorf("creating temp dir for extraction: %s", err)
-	}
-	defer tempDir.RemoveAll()
 
-	t.logger("Unpacking tool " + name)
-	ctx := context.Background()
-	reader := bytes.NewReader(body)
-	// Extract into temp directory
-	if err := extract.Archive(ctx, reader, tempDir.String(), nil); err != nil {
-		return fmt.Errorf("extracting archive: %s", err)
-	}
-
-	location := t.directory.Join(pack, correctTool.Name, correctTool.Version)
-	err = location.RemoveAll()
+	path := filepath.Join(pack, name, version)
+	safePath, err := utilities.SafeJoin(t.directory.String(), path)
 	if err != nil {
 		return err
 	}
 
-	// Check package content and find package root dir
-	root, err := findPackageRoot(tempDir)
-	if err != nil {
-		return fmt.Errorf("searching package root dir: %s", err)
-	}
-
-	if err := root.Rename(location); err != nil {
-		if err := root.CopyDirTo(location); err != nil {
-			return fmt.Errorf("moving extracted archive to destination dir: %s", err)
-		}
-	}
-
 	// if the tool contains a post_install script, run it: it means it is a tool that needs to install drivers
 	// AFAIK this is only the case for the windows-driver tool
-	err = t.installDrivers(location.String())
+	err = t.installDrivers(safePath)
 	if err != nil {
 		return err
 	}
@@ -169,55 +68,12 @@ func (t *Tools) Download(pack, name, version, behaviour string) error {
 	t.logger("Ensure that the files are executable")
 
 	// Update the tool map
-	t.logger("Updating map with location " + location.String())
-
-	t.setMapValue(name, location.String())
-	t.setMapValue(name+"-"+correctTool.Version, location.String())
-	return t.writeMap()
-}
+	t.logger("Updating map with location " + safePath)
 
-func findPackageRoot(parent *paths.Path) (*paths.Path, error) {
-	files, err := parent.ReadDir()
-	if err != nil {
-		return nil, fmt.Errorf("reading package root dir: %s", err)
-	}
-	files.FilterOutPrefix("__MACOSX")
+	t.setMapValue(name, safePath)
+	t.setMapValue(name+"-"+version, safePath)
 
-	// if there is only one dir, it is the root dir
-	if len(files) == 1 && files[0].IsDir() {
-		return files[0], nil
-	}
-	return parent, nil
-}
-
-func findTool(pack, name, version string, data pkgs.Index) (pkgs.Tool, pkgs.System) {
-	var correctTool pkgs.Tool
-	correctTool.Version = "0.0"
-
-	for _, p := range data.Packages {
-		if p.Name != pack {
-			continue
-		}
-		for _, t := range p.Tools {
-			if version != "latest" {
-				if t.Name == name && t.Version == version {
-					correctTool = t
-				}
-			} else {
-				// Find latest
-				v1, _ := semver.Make(t.Version)
-				v2, _ := semver.Make(correctTool.Version)
-				if t.Name == name && v1.Compare(v2) > 0 {
-					correctTool = t
-				}
-			}
-		}
-	}
-
-	// Find the url based on system
-	correctSystem := correctTool.GetFlavourCompatibleWith(OS, Arch)
-
-	return correctTool, correctSystem
+	return nil
 }
 
 func (t *Tools) installDrivers(location string) error {
@@ -225,7 +81,7 @@ func (t *Tools) installDrivers(location string) error {
 	extension := ".bat"
 	// add .\ to force locality
 	preamble := ".\\"
-	if OS != "windows" {
+	if runtime.GOOS != "windows" {
 		extension = ".sh"
 		// add ./ to force locality
 		preamble = "./"
@@ -237,7 +93,7 @@ func (t *Tools) installDrivers(location string) error {
 			os.Chdir(location)
 			t.logger(preamble + "post_install" + extension)
 			oscmd := exec.Command(preamble + "post_install" + extension)
-			if OS != "linux" {
+			if runtime.GOOS != "linux" {
 				// spawning a shell could be the only way to let the user type his password
 				TellCommandNotToSpawnShell(oscmd)
 			}
diff --git a/tools/download_test.go b/tools/download_test.go
index c45914b51..1e958de91 100644
--- a/tools/download_test.go
+++ b/tools/download_test.go
@@ -42,8 +42,8 @@ func TestDownloadCorrectPlatform(t *testing.T) {
 		{"linux", "arm", "arm-linux-gnueabihf"},
 	}
 	defer func() {
-		OS = runtime.GOOS     // restore `runtime.OS`
-		Arch = runtime.GOARCH // restore `runtime.ARCH`
+		pkgs.OS = runtime.GOOS     // restore `runtime.OS`
+		pkgs.Arch = runtime.GOARCH // restore `runtime.ARCH`
 	}()
 	testIndex := paths.New("testdata", "test_tool_index.json")
 	buf, err := testIndex.ReadFile()
@@ -54,10 +54,11 @@ func TestDownloadCorrectPlatform(t *testing.T) {
 	require.NoError(t, err)
 	for _, tc := range testCases {
 		t.Run(tc.hostOS+tc.hostArch, func(t *testing.T) {
-			OS = tc.hostOS     // override `runtime.OS` for testing purposes
-			Arch = tc.hostArch // override `runtime.ARCH` for testing purposes
+			pkgs.OS = tc.hostOS     // override `runtime.OS` for testing purposes
+			pkgs.Arch = tc.hostArch // override `runtime.ARCH` for testing purposes
 			// Find the tool by name
-			correctTool, correctSystem := findTool("arduino-test", "arduino-fwuploader", "2.2.2", data)
+			correctTool, correctSystem, found := pkgs.FindTool("arduino-test", "arduino-fwuploader", "2.2.2", data)
+			require.True(t, found)
 			require.NotNil(t, correctTool)
 			require.NotNil(t, correctSystem)
 			require.Equal(t, correctTool.Name, "arduino-fwuploader")
@@ -78,8 +79,8 @@ func TestDownloadFallbackPlatform(t *testing.T) {
 		{"windows", "amd64", "i686-mingw32"},
 	}
 	defer func() {
-		OS = runtime.GOOS     // restore `runtime.OS`
-		Arch = runtime.GOARCH // restore `runtime.ARCH`
+		pkgs.OS = runtime.GOOS     // restore `runtime.OS`
+		pkgs.Arch = runtime.GOARCH // restore `runtime.ARCH`
 	}()
 	testIndex := paths.New("testdata", "test_tool_index.json")
 	buf, err := testIndex.ReadFile()
@@ -90,10 +91,11 @@ func TestDownloadFallbackPlatform(t *testing.T) {
 	require.NoError(t, err)
 	for _, tc := range testCases {
 		t.Run(tc.hostOS+tc.hostArch, func(t *testing.T) {
-			OS = tc.hostOS     // override `runtime.OS` for testing purposes
-			Arch = tc.hostArch // override `runtime.ARCH` for testing purposes
+			pkgs.OS = tc.hostOS     // override `runtime.OS` for testing purposes
+			pkgs.Arch = tc.hostArch // override `runtime.ARCH` for testing purposes
 			// Find the tool by name
-			correctTool, correctSystem := findTool("arduino-test", "arduino-fwuploader", "2.2.0", data)
+			correctTool, correctSystem, found := pkgs.FindTool("arduino-test", "arduino-fwuploader", "2.2.0", data)
+			require.True(t, found)
 			require.NotNil(t, correctTool)
 			require.NotNil(t, correctSystem)
 			require.Equal(t, correctTool.Name, "arduino-fwuploader")
@@ -145,7 +147,7 @@ func TestDownload(t *testing.T) {
 				if filePath.IsDir() {
 					require.DirExists(t, filePath.String())
 				} else {
-					if OS == "windows" {
+					if runtime.GOOS == "windows" {
 						require.FileExists(t, filePath.String()+".exe")
 					} else {
 						require.FileExists(t, filePath.String())
diff --git a/tools/tools.go b/tools/tools.go
index e641db351..cb9efc787 100644
--- a/tools/tools.go
+++ b/tools/tools.go
@@ -78,18 +78,6 @@ func (t *Tools) getMapValue(key string) (string, bool) {
 	return value, ok
 }
 
-// writeMap() writes installed map to the json file "installed.json"
-func (t *Tools) writeMap() error {
-	t.mutex.RLock()
-	defer t.mutex.RUnlock()
-	b, err := json.Marshal(t.installed)
-	if err != nil {
-		return err
-	}
-	filePath := t.directory.Join("installed.json")
-	return filePath.WriteFile(b)
-}
-
 // readMap() reads the installed map from json file "installed.json"
 func (t *Tools) readMap() error {
 	t.mutex.Lock()
diff --git a/v2/http.go b/v2/http.go
index bcfbc82aa..390ec3989 100644
--- a/v2/http.go
+++ b/v2/http.go
@@ -40,7 +40,7 @@ func Server(directory string, index *index.Resource) http.Handler {
 	logAdapter := LogAdapter{Logger: logger}
 
 	// Mount tools
-	toolsSvc := pkgs.New(index, directory)
+	toolsSvc := pkgs.New(index, directory, "replace")
 	toolsEndpoints := toolssvc.NewEndpoints(toolsSvc)
 	toolsServer := toolssvr.New(toolsEndpoints, mux, CustomRequestDecoder, goahttp.ResponseEncoder, errorHandler(logger), nil)
 	toolssvr.Mount(mux, toolsServer)
diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go
index 55ff6c2e4..b0daaaaef 100644
--- a/v2/pkgs/tools.go
+++ b/v2/pkgs/tools.go
@@ -33,9 +33,16 @@ import (
 	"github.com/arduino/arduino-create-agent/gen/tools"
 	"github.com/arduino/arduino-create-agent/index"
 	"github.com/arduino/arduino-create-agent/utilities"
+	"github.com/blang/semver"
 	"github.com/codeclysm/extract/v3"
 )
 
+// public vars to allow override in the tests
+var (
+	OS   = runtime.GOOS
+	Arch = runtime.GOARCH
+)
+
 // Tools is a client that implements github.com/arduino/arduino-create-agent/gen/tools.Service interface.
 // It saves tools in a specified folder with this structure: packager/name/version
 // For example:
@@ -50,17 +57,19 @@ import (
 //
 // It requires an Index Resource to search for tools
 type Tools struct {
-	index  *index.Resource
-	folder string
+	index     *index.Resource
+	folder    string
+	behaviour string
 }
 
 // New will return a Tool object, allowing the caller to execute operations on it.
 // The New function will accept an index as parameter (used to download the indexes)
 // and a folder used to download the indexes
-func New(index *index.Resource, folder string) *Tools {
+func New(index *index.Resource, folder, behaviour string) *Tools {
 	return &Tools{
-		index:  index,
-		folder: folder,
+		index:     index,
+		folder:    folder,
+		behaviour: behaviour,
 	}
 }
 
@@ -166,21 +175,28 @@ func (t *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools
 	var index Index
 	json.Unmarshal(body, &index)
 
-	for _, packager := range index.Packages {
-		if packager.Name != payload.Packager {
-			continue
-		}
-
-		for _, tool := range packager.Tools {
-			if tool.Name == payload.Name &&
-				tool.Version == payload.Version {
-
-				sys := tool.GetFlavourCompatibleWith(runtime.GOOS, runtime.GOARCH)
+	correctTool, correctSystem, found := FindTool(payload.Packager, payload.Name, payload.Version, index)
+	path = filepath.Join(payload.Packager, correctTool.Name, correctTool.Version)
 
-				return t.install(ctx, path, sys.URL, sys.Checksum)
+	key := correctTool.Name + "-" + correctTool.Version
+	// Check if it already exists
+	if t.behaviour == "keep" && pathExists(t.folder) {
+		location, ok, err := checkInstalled(t.folder, key)
+		if err != nil {
+			return nil, err
+		}
+		if ok && pathExists(location) {
+			// overwrite the default tool with this one
+			err := writeInstalled(t.folder, path)
+			if err != nil {
+				return nil, err
 			}
+			return &tools.Operation{Status: "ok"}, nil
 		}
 	}
+	if found {
+		return t.install(ctx, path, correctSystem.URL, correctSystem.Checksum)
+	}
 
 	return nil, tools.MakeNotFound(
 		fmt.Errorf("tool not found with packager '%s', name '%s', version '%s'",
@@ -256,27 +272,51 @@ func (t *Tools) Remove(ctx context.Context, payload *tools.ToolPayload) (*tools.
 func rename(base string) extract.Renamer {
 	return func(path string) string {
 		parts := strings.Split(filepath.ToSlash(path), "/")
-		path = strings.Join(parts[1:], "/")
-		path = filepath.Join(base, path)
+		newPath := strings.Join(parts[1:], "/")
+		if newPath == "" {
+			newPath = filepath.Join(newPath, path)
+		}
+		path = filepath.Join(base, newPath)
 		return path
 	}
 }
 
-func writeInstalled(folder, path string) error {
+func readInstalled(installedFile string) (map[string]string, error) {
 	// read installed.json
 	installed := map[string]string{}
-
-	installedFile, err := utilities.SafeJoin(folder, "installed.json")
-	if err != nil {
-		return err
-	}
 	data, err := os.ReadFile(installedFile)
 	if err == nil {
 		err = json.Unmarshal(data, &installed)
 		if err != nil {
-			return err
+			return nil, err
 		}
 	}
+	return installed, nil
+}
+
+func checkInstalled(folder, key string) (string, bool, error) {
+	installedFile, err := utilities.SafeJoin(folder, "installed.json")
+	if err != nil {
+		return "", false, err
+	}
+	installed, err := readInstalled(installedFile)
+	if err != nil {
+		return "", false, err
+	}
+	location, ok := installed[key]
+	return location, ok, err
+}
+
+func writeInstalled(folder, path string) error {
+	// read installed.json
+	installedFile, err := utilities.SafeJoin(folder, "installed.json")
+	if err != nil {
+		return err
+	}
+	installed, err := readInstalled(installedFile)
+	if err != nil {
+		return err
+	}
 
 	parts := strings.Split(path, string(filepath.Separator))
 	tool := parts[len(parts)-2]
@@ -288,10 +328,55 @@ func writeInstalled(folder, path string) error {
 	installed[tool] = toolFile
 	installed[toolWithVersion] = toolFile
 
-	data, err = json.Marshal(installed)
+	data, err := json.Marshal(installed)
 	if err != nil {
 		return err
 	}
 
 	return os.WriteFile(installedFile, data, 0644)
 }
+
+func pathExists(path string) bool {
+	_, err := os.Stat(path)
+	if err == nil {
+		return true
+	}
+	if os.IsNotExist(err) {
+		return false
+	}
+	return true
+}
+
+// FindTool searches the index for the correct tool and system that match the specified tool name and version
+func FindTool(pack, name, version string, data Index) (Tool, System, bool) {
+	var correctTool Tool
+	correctTool.Version = "0.0"
+	found := false
+
+	for _, p := range data.Packages {
+		if p.Name != pack {
+			continue
+		}
+		for _, t := range p.Tools {
+			if version != "latest" {
+				if t.Name == name && t.Version == version {
+					correctTool = t
+					found = true
+				}
+			} else {
+				// Find latest
+				v1, _ := semver.Make(t.Version)
+				v2, _ := semver.Make(correctTool.Version)
+				if t.Name == name && v1.Compare(v2) > 0 {
+					correctTool = t
+					found = true
+				}
+			}
+		}
+	}
+
+	// Find the url based on system
+	correctSystem := correctTool.GetFlavourCompatibleWith(OS, Arch)
+
+	return correctTool, correctSystem, found
+}
diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go
index 78c56398f..be4d5e4d1 100644
--- a/v2/pkgs/tools_test.go
+++ b/v2/pkgs/tools_test.go
@@ -45,7 +45,7 @@ func TestTools(t *testing.T) {
 	// Instantiate Index
 	Index := index.Init(indexURL, config.GetDataDir())
 
-	service := pkgs.New(Index, tmp)
+	service := pkgs.New(Index, tmp, "replace")
 
 	ctx := context.Background()
 
@@ -126,7 +126,7 @@ func TestEvilFilename(t *testing.T) {
 	// Instantiate Index
 	Index := index.Init(indexURL, config.GetDataDir())
 
-	service := pkgs.New(Index, tmp)
+	service := pkgs.New(Index, tmp, "replace")
 
 	ctx := context.Background()
 
@@ -195,7 +195,7 @@ func TestInstalledHead(t *testing.T) {
 	// Instantiate Index
 	Index := index.Init(indexURL, config.GetDataDir())
 
-	service := pkgs.New(Index, tmp)
+	service := pkgs.New(Index, tmp, "replace")
 
 	ctx := context.Background()
 
@@ -216,7 +216,7 @@ func TestInstall(t *testing.T) {
 		LastRefresh: time.Now(),
 	}
 
-	tool := pkgs.New(testIndex, tmp)
+	tool := pkgs.New(testIndex, tmp, "replace")
 
 	ctx := context.Background()
 

From da1fa2e1dfc896754901087bddfd7e8b3a3efc03 Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Wed, 10 Jul 2024 10:05:54 +0200
Subject: [PATCH 203/233] Create a single universal executable for macOS (#964)

* Create a single universal executable for macos

* Update docs on macOS support

* Add macos-arm64 to the test builds

* Check that the new executable exists and is in the right path before proceding with the update
---
 .github/workflows/publish-go-tester-task.yml | 29 +++++++++++++++++---
 .github/workflows/release.yml                | 25 +++++++++++++++--
 README.md                                    |  4 +--
 Taskfile.yml                                 |  3 +-
 updater/updater_darwin.go                    |  2 +-
 5 files changed, 51 insertions(+), 12 deletions(-)

diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml
index 66b381643..54d9c04f0 100644
--- a/.github/workflows/publish-go-tester-task.yml
+++ b/.github/workflows/publish-go-tester-task.yml
@@ -30,6 +30,7 @@ on:
   repository_dispatch:
 
 env:
+  PROJECT_NAME: arduino-create-agent
   GO_VERSION: "1.21"
 
 jobs:
@@ -119,18 +120,38 @@ jobs:
         run: task go:build-win # GOARCH=amd64 by default on the runners
         if: runner.os == 'Windows' && matrix.arch == '-amd64'
 
-      - name: Build the Agent for macos
+      - name: Build the Agent for macos amd 64
         env:
           MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac
           CGO_CFLAGS: -mmacosx-version-min=10.15
           CGO_LDFLAGS: -mmacosx-version-min=10.15
-        run: task go:build
+        run: |
+          task go:build
+          mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_amd64
+        if: runner.os == 'macOS'
+
+      - name: Build the Agent for macos amd 64
+        env:
+          MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac
+          CGO_CFLAGS: -mmacosx-version-min=10.15
+          CGO_LDFLAGS: -mmacosx-version-min=10.15
+          GOARCH: arm64
+          CGO_ENABLED: 1
+        run: |
+          task go:build
+          mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_arm64
+        if: runner.os == 'macOS'
+
+      - name: Create universal macos executable
+        run: |
+          lipo -create -output ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_amd64 ${{ env.PROJECT_NAME}}_arm64
+          rm ${{ env.PROJECT_NAME}}_amd64 ${{ env.PROJECT_NAME}}_arm64
         if: runner.os == 'macOS'
 
       - name: Upload artifacts
         uses: actions/upload-artifact@v4
         with:
-          name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }}
+          name: ${{ env.PROJECT_NAME}}-${{ matrix.os }}${{ matrix.arch }}
           path: |
-            arduino-create-agent*
+            ${{ env.PROJECT_NAME}}*
           if-no-files-found: error
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f149c8eb9..72b07c468 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -107,13 +107,33 @@ jobs:
         run: task go:build-win # GOARCH=amd64 by default on the runners
         if: matrix.os == 'windows-2019' && matrix.arch == 'amd64'
 
-      - name: Build the Agent for macos
+      - name: Build the Agent for macos amd64
         env:
           CGO_ENABLED: 1
           MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac
           CGO_CFLAGS: -mmacosx-version-min=10.15
           CGO_LDFLAGS: -mmacosx-version-min=10.15
-        run: task go:build
+        run: |
+          task go:build
+          mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_amd64
+        if: matrix.os == 'macos-12'
+
+      - name: Build the Agent for macos arm64
+        env:
+          CGO_ENABLED: 1
+          MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac
+          CGO_CFLAGS: -mmacosx-version-min=10.15
+          CGO_LDFLAGS: -mmacosx-version-min=10.15
+          GOARCH: arm64
+        run: |
+          task go:build
+          mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_arm64
+        if: matrix.os == 'macos-12'
+
+      - name: Create universal macos executable
+        run: |
+          lipo -create -output ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_amd64 ${{ env.PROJECT_NAME }}_arm64
+          rm ${{ env.PROJECT_NAME }}_amd64 ${{ env.PROJECT_NAME }}_arm64
         if: matrix.os == 'macos-12'
 
         # this will create `public/` dir with compressed full bin (/-.gz) and a json file
@@ -121,7 +141,6 @@ jobs:
         run: go-selfupdate ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION}
         if: matrix.arch != '386' && steps.prerelease.outputs.IS_PRE != 'true'
 
-        # for now we do not distribute m1 build, this is a workaround for now
       - name: Copy autoupdate file for darwin-arm64 (m1 arch)
         working-directory: public/
         run: |
diff --git a/README.md b/README.md
index 5c97939b6..a2efe270a 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,7 @@ Get the [latest version](https://github.com/arduino/arduino-create-agent/release
 ## Apple silicon support
 
 The Arduino Agent is supported both on Intel and Apple silicon computers. This includes devices with the M1, M2 and M3 processors.  
-At the moment the Arduino Agent is only built for Intel architectures, but Apple silicon devices can run it thanks to the [Rosetta 2](https://support.apple.com/en-us/HT211861) translation layer by Apple.
+The Arduino Agent is built both for Intel architectures and Apple silicon devices, but distributed as a single universal executable for macOS.
 
 ## Documentation
 
@@ -50,7 +50,7 @@ The documentation has been moved to the [wiki](https://github.com/arduino/arduin
 
 ### Submitting an issue
 
-When submitting a new issue please search for duplicates before creating a new one. Help us by providing  useful context and information. Please attach the output of the commands running at the debug console or attach [crash reports](https://github.com/arduino/arduino-create-agent/wiki/How-to-use-crashreport-functionality) if useful.
+When submitting a new issue please search for duplicates before creating a new one. Help us by providing useful context and information. Please attach the output of the commands running at the debug console or attach [crash reports](https://github.com/arduino/arduino-create-agent/wiki/How-to-use-crashreport-functionality) if useful.
 
 #### Security
 
diff --git a/Taskfile.yml b/Taskfile.yml
index 6b7852762..603a2ce91 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -84,7 +84,7 @@ tasks:
     cmds:
       - poetry run pytest tests
 
-   # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml
+    # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml
   poetry:install-deps:
     desc: Install dependencies managed by Poetry
     cmds:
@@ -138,7 +138,6 @@ tasks:
       - task: go:vet
       - task: go:lint
 
-      
 vars:
   # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/release-go-task/Taskfile.yml
   PROJECT_NAME: arduino-create-agent
diff --git a/updater/updater_darwin.go b/updater/updater_darwin.go
index ec00f88cc..105a529ef 100644
--- a/updater/updater_darwin.go
+++ b/updater/updater_darwin.go
@@ -143,7 +143,7 @@ func checkForUpdates(currentVersion string, updateURL string, cmdName string) (s
 
 	// Install new app
 	logrus.WithField("from", tmpAppPath).WithField("to", currentAppPath).Info("Copying updated app")
-	if err := tmpAppPath.CopyDirTo(currentAppPath); err != nil {
+	if err := tmpAppPath.CopyDirTo(currentAppPath); err != nil || !paths.New(executablePath).Exist() {
 		// Try rollback changes
 		_ = currentAppPath.RemoveAll()
 		_ = oldAppPath.Rename(currentAppPath)

From 46fbb343ee66a5a38bd716e59a1a96c43454b6a2 Mon Sep 17 00:00:00 2001
From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com>
Date: Wed, 17 Jul 2024 11:35:02 +0200
Subject: [PATCH 204/233] Rename executable and releases to `Arduino Cloud
 Agent` (#961)

* Change name in the docs

* Change executable's name

* Change debug console's name

* Update name in test release workflow

* Update name in release workflow

* Change name used in the installer

* Rename .app to Cloud Agent

* Check that either the Create Agent or the Cloud Agent exist when autoupdating on macos

* Fix typo

* Revert changes on the zipped notarized app bundle uploaded to s3

We are keeping it this way because it is used by the autoupdate procedure on macos
---
 .github/workflows/publish-go-tester-task.yml |   2 +-
 .github/workflows/release.yml                |  89 +--
 .gitignore                                   |   4 +-
 README.md                                    |   8 +-
 Taskfile.yml                                 |   8 +-
 home.html                                    | 627 ++++++++++---------
 tests/conftest.py                            |   4 +-
 updater/updater_darwin.go                    |   4 +-
 8 files changed, 387 insertions(+), 359 deletions(-)

diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml
index 54d9c04f0..aa2949e13 100644
--- a/.github/workflows/publish-go-tester-task.yml
+++ b/.github/workflows/publish-go-tester-task.yml
@@ -30,7 +30,7 @@ on:
   repository_dispatch:
 
 env:
-  PROJECT_NAME: arduino-create-agent
+  PROJECT_NAME: arduino-cloud-agent
   GO_VERSION: "1.21"
 
 jobs:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 72b07c468..fe60ec8f8 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -11,7 +11,7 @@ permissions:
 
 env:
   # As defined by the Taskfile's PROJECT_NAME variable
-  PROJECT_NAME: arduino-create-agent
+  PROJECT_NAME: arduino-cloud-agent
   TARGET: "/CreateAgent/Stable/"
   VERSION_TARGET: "arduino-create-static/agent-metadata/"
   AWS_REGION: "us-east-1" # or https://github.com/aws/aws-cli/issues/5623
@@ -183,7 +183,7 @@ jobs:
 
     runs-on: macos-12
     env:
-      EXE_PATH: "skel/ArduinoCreateAgent.app/Contents/MacOS/"
+      EXE_PATH: "skel/ArduinoCloudAgent.app/Contents/MacOS/"
 
     steps:
       - name: Checkout
@@ -205,21 +205,21 @@ jobs:
       - name: Make executable
         run: chmod -v +x ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }}
 
-      - name: Rename executable to Arduino_Create_Agent
-        run: mv -v ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} ${{ env.EXE_PATH }}Arduino_Create_Agent
+      - name: Rename executable to Arduino_Cloud_Agent
+        run: mv -v ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} ${{ env.EXE_PATH }}Arduino_Cloud_Agent
 
       - name: get year
         run: echo "YEAR=$(date "+%Y")" >> $GITHUB_ENV
 
       - name: Generate Info.plist for MacOS
         run: |
-          cat > skel/ArduinoCreateAgent.app/Contents/Info.plist < skel/ArduinoCloudAgent.app/Contents/Info.plist <CFBundlePackageTypeAPPLCFBundleInfoDictionaryVersion6.0
 
               CFBundleIconFile           AppIcon.icns
 
-              CFBundleName               Arduino Create Agent
-              CFBundleExecutable         Arduino_Create_Agent
+              CFBundleName               Arduino Cloud Agent
+              CFBundleExecutable         Arduino_Cloud_Agent
               CFBundleIdentifier         create.arduino.cc
 
               CFBundleVersion            ${GITHUB_REF##*/}
@@ -234,14 +234,14 @@ jobs:
           EOF
 
       - name: Tar bundle to keep permissions
-        run: tar -cvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar -C skel/ .
+        run: tar -cvf ArduinoCloudAgent.app_${{ matrix.arch }}.tar -C skel/ .
 
       - name: Upload artifacts
         uses: actions/upload-artifact@v4
         with:
           if-no-files-found: error
-          name: ArduinoCreateAgent.app_${{ matrix.arch }}
-          path: ArduinoCreateAgent.app_${{ matrix.arch }}.tar
+          name: ArduinoCloudAgent.app_${{ matrix.arch }}
+          path: ArduinoCloudAgent.app_${{ matrix.arch }}.tar
 
   # The notarize-macos job will download the macos bundle from the previous job, sign, notarize and re-upload it, uploading it also on s3 download servers for the autoupdate.
   notarize-macos:
@@ -262,10 +262,10 @@ jobs:
       - name: Download artifact
         uses: actions/download-artifact@v4
         with:
-          name: ArduinoCreateAgent.app_${{ matrix.arch }}
+          name: ArduinoCloudAgent.app_${{ matrix.arch }}
 
       - name: un-Tar bundle
-        run: tar -xvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar
+        run: tar -xvf ArduinoCloudAgent.app_${{ matrix.arch }}.tar
 
       - name: Import Code-Signing Certificates
         run: |
@@ -305,7 +305,7 @@ jobs:
         run: |
           cat > "${{ env.GON_CONFIG_PATH }}" < /tmp/license.xml
@@ -444,14 +445,14 @@ jobs:
         run: ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.installbuilder-name }} --verbose --license /tmp/license.xml  --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }}
 
       - name: Generate archive
-        run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}}
+        run: tar -czvf ArduinoCloudAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCloudAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}}
         if: matrix.os == 'ubuntu-20.04'
 
       - name: Upload artifacts
         uses: actions/upload-artifact@v4
         with:
-          name: ArduinoCreateAgent-${{ matrix.platform-name }}-${{ matrix.arch }}
-          path: ArduinoCreateAgent*
+          name: ArduinoCloudAgent-${{ matrix.platform-name }}-${{ matrix.arch }}
+          path: ArduinoCloudAgent*
           if-no-files-found: error
 
   # This job will sign the Windows installer
@@ -477,7 +478,7 @@ jobs:
       - name: Download artifact
         uses: actions/download-artifact@v4
         with:
-          name: ArduinoCreateAgent-windows-${{ matrix.arch }}
+          name: ArduinoCloudAgent-windows-${{ matrix.arch }}
 
       - name: Save Win signing certificate to file
         run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_CER }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_CER}}
@@ -488,18 +489,18 @@ jobs:
           CONTAINER_NAME: ${{ secrets.INSTALLER_CERT_WINDOWS_CONTAINER }}
           # https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing-with-safenet-etoken
         run: |
-          "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Create Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCreateAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"
+          "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Cloud Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCloudAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"
 
       - name: Upload artifacts
         uses: actions/upload-artifact@v4
         with:
           if-no-files-found: error
-          name: ArduinoCreateAgent-windows-${{ matrix.arch }}-signed
-          path: ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
+          name: ArduinoCloudAgent-windows-${{ matrix.arch }}-signed
+          path: ArduinoCloudAgent-*-windows-${{ matrix.arch }}-installer.exe
 
         # This step is needed because the self hosted runner does not delete files automatically
       - name: Clean up EXE
-        run: rm ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
+        run: rm ArduinoCloudAgent-*-windows-${{ matrix.arch }}-installer.exe
 
   # This job will generate a dmg mac installer, sign/notarize it.
   generate-sign-dmg:
@@ -519,11 +520,11 @@ jobs:
       - name: Download artifact
         uses: actions/download-artifact@v4
         with:
-          name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized
-          path: ArduinoCreateAgent.app
+          name: ArduinoCloudAgent.app_${{ matrix.arch }}_notarized
+          path: ArduinoCloudAgent.app
 
       - name: unzip artifact
-        working-directory: ArduinoCreateAgent.app
+        working-directory: ArduinoCloudAgent.app
         run: |
           unzip ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip
           rm ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip
@@ -531,18 +532,18 @@ jobs:
       - name: Install create-dmg
         run: brew install create-dmg
 
-      - name: Genarate DMG
+      - name: Generate DMG
         run: |
           create-dmg \
-            --volname "ArduinoCreateAgent" \
+            --volname "ArduinoCloudAgent" \
             --background "installer_icons/background.tiff" \
             --window-pos 200 120 \
             --window-size 500 320 \
             --icon-size 80 \
-            --icon "ArduinoCreateAgent.app" 125 150 \
+            --icon "ArduinoCloudAgent.app" 125 150 \
             --app-drop-link 375 150 \
-            "ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg" \
-            "ArduinoCreateAgent.app"
+            "ArduinoCloudAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg" \
+            "ArduinoCloudAgent.app"
 
       - name: Import Code-Signing Certificates
         run: |
@@ -572,7 +573,7 @@ jobs:
         # gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20)
         run: |
           cat > gon.config_installer.hcl <|                      +------------>|               |
-| |                           | |                | Arduino Create Agent |             | Arduino Board |
+| |                           | |                | Arduino Cloud Agent |             | Arduino Board |
 | | Arduino Create Web Editor | +--------------->|                      |<------------+               |
 | |                           | |   REST API     +----------------------+   serial    +---------------+
 | +---------------------------+ |
@@ -74,7 +74,7 @@ By signing off your commits, you agree to the following agreement, also known as
 
 ## Authors and acknowledgment
 
-arduino-create-agent is a fork of @[johnlauer](https://github.com/johnlauer)'s [serial-port-json-server](https://github.com/johnlauer/serial-port-json-server) (which we really want to thank for his kindness and great work)
+arduino-cloud-agent is a fork of @[johnlauer](https://github.com/johnlauer)'s [serial-port-json-server](https://github.com/johnlauer/serial-port-json-server) (which we really want to thank for his kindness and great work)
 
 The history has been rewritten to keep the repo small (thus removing all binaries committed in the past)
 
diff --git a/Taskfile.yml b/Taskfile.yml
index 603a2ce91..b64b12bb5 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -37,7 +37,7 @@ tasks:
     cmds:
       - task: go:build
         vars:
-          PROJECT_NAME: arduino-create-agent_cli
+          PROJECT_NAME: arduino-cloud-agent_cli
           ADDITIONAL_FLAGS: -tags cli
 
   go:build-win:
@@ -46,7 +46,7 @@ tasks:
       - rsrc -arch {{.GOARCH}} -manifest manifest.xml # GOARCH shoud be either amd64 or 386
       - task: go:build
         vars:
-          PROJECT_NAME: arduino-create-agent.exe
+          PROJECT_NAME: arduino-cloud-agent.exe
           WIN_FLAGS: -H=windowsgui
       - rm *.syso # rm file to avoid compilation problems on other platforms
     vars:
@@ -58,7 +58,7 @@ tasks:
     cmds:
       - task: go:build
         vars:
-          PROJECT_NAME: arduino-create-agent_cli.exe
+          PROJECT_NAME: arduino-cloud-agent_cli.exe
           ADDITIONAL_FLAGS: -tags cli
 
   # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-go-task/Taskfile.yml
@@ -140,7 +140,7 @@ tasks:
 
 vars:
   # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/release-go-task/Taskfile.yml
-  PROJECT_NAME: arduino-create-agent
+  PROJECT_NAME: arduino-cloud-agent
   # build vars
   COMMIT:
     sh: echo "$(git log --no-show-signature -n 1 --format=%h)"
diff --git a/home.html b/home.html
index e66b7c975..ee523981a 100644
--- a/home.html
+++ b/home.html
@@ -1,321 +1,346 @@
 
 
-
-
-    Arduino Create Agent Debug Console
-    
-    
-    
+  
+    Arduino Cloud Agent Debug Console
+    
+    
+    
 
     
-    
-
+  
 
-
+  
     
-
-

-            

-        
- - - - \ No newline at end of file + + diff --git a/tests/conftest.py b/tests/conftest.py index 622965b64..0e81d76f0 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -27,9 +27,9 @@ @pytest.fixture(scope="function") def agent(pytestconfig): if platform.system() == "Windows": - agent = str(Path(pytestconfig.rootdir) / "arduino-create-agent_cli.exe") + agent = str(Path(pytestconfig.rootdir) / "arduino-cloud-agent_cli.exe") else: - agent = str(Path(pytestconfig.rootdir) / "arduino-create-agent") + agent = str(Path(pytestconfig.rootdir) / "arduino-cloud-agent") env = { # "ARDUINO_DATA_DIR": data_dir, # "ARDUINO_DOWNLOADS_DIR": downloads_dir, diff --git a/updater/updater_darwin.go b/updater/updater_darwin.go index 105a529ef..c4eb5070d 100644 --- a/updater/updater_darwin.go +++ b/updater/updater_darwin.go @@ -143,7 +143,9 @@ func checkForUpdates(currentVersion string, updateURL string, cmdName string) (s // Install new app logrus.WithField("from", tmpAppPath).WithField("to", currentAppPath).Info("Copying updated app") - if err := tmpAppPath.CopyDirTo(currentAppPath); err != nil || !paths.New(executablePath).Exist() { + createPath := currentAppPath.Join("Contents", "MacOS", "Arduino_Create_Agent") + cloudPath := currentAppPath.Join("Contents", "MacOS", "Arduino_Cloud_Agent") + if err := tmpAppPath.CopyDirTo(currentAppPath); err != nil || (!createPath.Exist() && !cloudPath.Exist()) { // Try rollback changes _ = currentAppPath.RemoveAll() _ = oldAppPath.Rename(currentAppPath) From 6287df1e7a1611bf28569df49f493593b598cb4e Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:01:59 +0200 Subject: [PATCH 205/233] Fix agent not able to install `esptool` after 1.6.0 (#986) * fix link * drop test on old tool not used anymore, and introduce again `arduino-fwuploader` * add tests to install esptool to verify https://github.com/arduino/arduino-create-agent/issues/980 * implement properly rename function to fix extraction issue with esptool * fix test * Update v2/pkgs/tools_test.go Co-authored-by: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> --------- Co-authored-by: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> --- main_test.go | 13 +++++++ tools/download_test.go | 1 - tools/testdata/test_tool_index.json | 55 --------------------------- v2/pkgs/pkgs.go | 8 ++-- v2/pkgs/testdata/test_tool_index.json | 55 --------------------------- v2/pkgs/tools.go | 14 ++++--- v2/pkgs/tools_test.go | 12 +++--- 7 files changed, 32 insertions(+), 126 deletions(-) diff --git a/main_test.go b/main_test.go index c8276bba8..568556953 100644 --- a/main_test.go +++ b/main_test.go @@ -116,6 +116,18 @@ func TestInstallToolV2(t *testing.T) { Signature: &bossacSignature, } + esptoolURL := "https://github.com/earlephilhower/esp-quick-toolchain/releases/download/2.5.0-3/x86_64-linux-gnu.esptool-f80ae31.tar.gz" + esptoolChecksum := "SHA-256:bded1dca953377838b6086a9bcd40a1dc5286ba5f69f2372c22a1d1819baad24" + esptoolSignature := "852b58871419ce5e5633ecfaa72c0f0fa890ceb51164b362b8133bc0e3e003a21cec48935b8cdc078f4031219cbf17fb7edd9d7c9ca8ed85492911c9ca6353c9aa4691eb91fda99563a6bd49aeca0d9981fb05ec76e45c6024f8a6822862ad1e34ddc652fbbf4fa909887a255d4f087398ec386577efcec523c21203be3d10fc9e9b0f990a7536875a77dc2bc5cbffea7734b62238e31719111b718bacccebffc9be689545540e81d23b81caa66214376f58a0d6a45cf7efc5d3af62ab932b371628162fffe403906f41d5534921e5be081c5ac2ecc9db5caec03a105cc44b00ce19a95ad079843501eb8182e0717ce327867380c0e39d2b48698547fc1d0d66" + esptoolInstallURLOK := tools.ToolPayload{ + Name: "esptool", + Version: "2.5.0-3-20ed2b9", + Packager: "esp8266", + URL: &esptoolURL, + Checksum: &esptoolChecksum, + Signature: &esptoolSignature, + } + wrongSignature := "wr0ngs1gn4tur3" bossacInstallWrongSig := tools.ToolPayload{ Name: "bossac", @@ -147,6 +159,7 @@ func TestInstallToolV2(t *testing.T) { {bossacInstallWrongSig, http.StatusInternalServerError, "verification error"}, {bossacInstallWrongCheck, http.StatusInternalServerError, "checksum of downloaded file doesn't match"}, {bossacInstallNoURL, http.StatusOK, "ok"}, + {esptoolInstallURLOK, http.StatusOK, "ok"}, } for _, test := range tests { diff --git a/tools/download_test.go b/tools/download_test.go index 1e958de91..8863a09d7 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -120,7 +120,6 @@ func TestDownload(t *testing.T) { {"rp2040tools", "1.0.6", []string{"elf2uf2", "picotool", "pioasm", "rp2040load"}}, {"esptool_py", "4.5.1", []string{"esptool"}}, {"arduino-fwuploader", "2.2.2", []string{"arduino-fwuploader"}}, - {"fwupdater", "0.1.12", []string{"firmwares", "FirmwareUploader"}}, // old legacy tool } // prepare the test environment tempDir := t.TempDir() diff --git a/tools/testdata/test_tool_index.json b/tools/testdata/test_tool_index.json index fdee1cc9d..b7f8b87d2 100644 --- a/tools/testdata/test_tool_index.json +++ b/tools/testdata/test_tool_index.json @@ -514,61 +514,6 @@ "size": "6829396" } ] - }, - { - "name": "fwupdater", - "version": "0.1.12", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", - "checksum": "SHA-256:2fec2bdfd20ad4950bc9ba37108dc2a7c152f569174279c0697efe1f5a0db781", - "size": "26097546" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", - "checksum": "SHA-256:ce57d0afef30cb7d3513f5da326346c99d6bf4923bbc2200634086811f3fb31e", - "size": "26073327" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.12_Windows_32bit.zip", - "checksum": "SHA-256:558568b453caa1c821def8cc6d34555d0c910eb7e7e871de3ae1c39ae6f01bdd", - "size": "25743641" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.12_Windows_64bit.zip", - "checksum": "SHA-256:ec16de33620985434280c92c3c322257b89bb67adf8fd4d5dd5f9467ea1e9e40", - "size": "25851428" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", - "checksum": "SHA-256:a470361b57f86ddfcaecd274d844af51ee1d23a71cd6c26e30fcef2152d1a03f", - "size": "25792860" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", - "checksum": "SHA-256:855fa0a9b942c3ee18906efc510bdfe30bf3334ff28ffbb476e648ff30033847", - "size": "25936245" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:691461e64fe075e9a79801347c2bd895fb72f8f2c45a7cd49056c6ad9efe8fc4", - "size": "25967430" - } - ] } ] } diff --git a/v2/pkgs/pkgs.go b/v2/pkgs/pkgs.go index f4965117c..07e392b2f 100644 --- a/v2/pkgs/pkgs.go +++ b/v2/pkgs/pkgs.go @@ -50,7 +50,7 @@ type System struct { Checksum string `json:"checksum"` } -// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L129-L142 +// Source: https://github.com/arduino/arduino-cli/blob/master/internal/arduino/cores/tools.go#L129-L142 var ( regexpLinuxArm = regexp.MustCompile("arm.*-linux-gnueabihf") regexpLinuxArm64 = regexp.MustCompile("(aarch64|arm64)-linux-gnu") @@ -66,7 +66,7 @@ var ( regexpFreeBSD64 = regexp.MustCompile("amd64-freebsd[0-9]*") ) -// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L144-L176 +// Source: https://github.com/arduino/arduino-cli/blob/master/internal/arduino/cores/tools.go#L144-L176 func (s *System) isExactMatchWith(osName, osArch string) bool { if s.Host == "all" { return true @@ -101,7 +101,7 @@ func (s *System) isExactMatchWith(osName, osArch string) bool { return false } -// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L178-L198 +// Source: https://github.com/arduino/arduino-cli/blob/master/internal/arduino/cores/tools.go#L178-L198 func (s *System) isCompatibleWith(osName, osArch string) (bool, int) { if s.isExactMatchWith(osName, osArch) { return true, 1000 @@ -125,7 +125,7 @@ func (s *System) isCompatibleWith(osName, osArch string) (bool, int) { } // GetFlavourCompatibleWith returns the downloadable resource (System) compatible with the specified OS/Arch -// Source: https://github.com/arduino/arduino-cli/blob/master/arduino/cores/tools.go#L206-L216 +// Source: https://github.com/arduino/arduino-cli/blob/master/internal/arduino/cores/tools.go#L206-L216 func (t *Tool) GetFlavourCompatibleWith(osName, osArch string) System { var correctSystem System maxSimilarity := -1 diff --git a/v2/pkgs/testdata/test_tool_index.json b/v2/pkgs/testdata/test_tool_index.json index fdee1cc9d..b7f8b87d2 100644 --- a/v2/pkgs/testdata/test_tool_index.json +++ b/v2/pkgs/testdata/test_tool_index.json @@ -514,61 +514,6 @@ "size": "6829396" } ] - }, - { - "name": "fwupdater", - "version": "0.1.12", - "systems": [ - { - "host": "i686-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_32bit.tar.bz2", - "checksum": "SHA-256:2fec2bdfd20ad4950bc9ba37108dc2a7c152f569174279c0697efe1f5a0db781", - "size": "26097546" - }, - { - "host": "x86_64-pc-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_64bit.tar.bz2", - "checksum": "SHA-256:ce57d0afef30cb7d3513f5da326346c99d6bf4923bbc2200634086811f3fb31e", - "size": "26073327" - }, - { - "host": "i686-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_32bit.zip", - "archiveFileName": "FirmwareUploader_0.1.12_Windows_32bit.zip", - "checksum": "SHA-256:558568b453caa1c821def8cc6d34555d0c910eb7e7e871de3ae1c39ae6f01bdd", - "size": "25743641" - }, - { - "host": "x86_64-mingw32", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Windows_64bit.zip", - "archiveFileName": "FirmwareUploader_0.1.12_Windows_64bit.zip", - "checksum": "SHA-256:ec16de33620985434280c92c3c322257b89bb67adf8fd4d5dd5f9467ea1e9e40", - "size": "25851428" - }, - { - "host": "i386-apple-darwin11", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_macOS_64bit.tar.bz2", - "checksum": "SHA-256:a470361b57f86ddfcaecd274d844af51ee1d23a71cd6c26e30fcef2152d1a03f", - "size": "25792860" - }, - { - "host": "arm-linux-gnueabihf", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM.tar.bz2", - "checksum": "SHA-256:855fa0a9b942c3ee18906efc510bdfe30bf3334ff28ffbb476e648ff30033847", - "size": "25936245" - }, - { - "host": "aarch64-linux-gnu", - "url": "http://downloads.arduino.cc/tools/FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", - "archiveFileName": "FirmwareUploader_0.1.12_Linux_ARM64.tar.bz2", - "checksum": "SHA-256:691461e64fe075e9a79801347c2bd895fb72f8f2c45a7cd49056c6ad9efe8fc4", - "size": "25967430" - } - ] } ] } diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index b0daaaaef..14f853e9e 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -269,15 +269,19 @@ func (t *Tools) Remove(ctx context.Context, payload *tools.ToolPayload) (*tools. return &tools.Operation{Status: "ok"}, nil } +// rename function is used to rename the path of the extracted files func rename(base string) extract.Renamer { + // "Rename" the given path adding the "base" and removing the root folder in "path" (if present). return func(path string) string { parts := strings.Split(filepath.ToSlash(path), "/") - newPath := strings.Join(parts[1:], "/") - if newPath == "" { - newPath = filepath.Join(newPath, path) + if len(parts) <= 1 { + // The path does not contain a root folder. This might happen for tool packages (zip files) + // that have an invalid structure. Do not try to remove the root folder in these cases. + return filepath.Join(base, path) } - path = filepath.Join(base, newPath) - return path + // Removes the first part of the path (the root folder). + path = strings.Join(parts[1:], "/") + return filepath.Join(base, path) } } diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index be4d5e4d1..edd575fc8 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -230,9 +230,9 @@ func TestInstall(t *testing.T) { {Name: "dfu-util", Version: "0.10.0-arduino1", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, {Name: "rp2040tools", Version: "1.0.6", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, {Name: "esptool_py", Version: "4.5.1", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, - // At the moment we don't install these ones because they are packaged in a different way: they do not have a top level dir, causing the rename funcion to behave incorrectly - // {Name: "fwupdater", Version: "0.1.12", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, - // {Name: "arduino-fwuploader", Version: "2.2.2", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + {Name: "arduino-fwuploader", Version: "2.2.2", Packager: "arduino-test", URL: nil, Checksum: nil, Signature: nil}, + // test download of a tool not present in index. the same archive is downloaded on linux/win/mac See https://github.com/arduino/arduino-create-agent/issues/980 + {Name: "esptool", Version: "2.5.0-3-20ed2b9", Packager: "esp8266", URL: strpoint("https://github.com/earlephilhower/esp-quick-toolchain/releases/download/2.5.0-3/x86_64-linux-gnu.esptool-f80ae31.tar.gz"), Checksum: strpoint("SHA-256:bded1dca953377838b6086a9bcd40a1dc5286ba5f69f2372c22a1d1819baad24"), Signature: strpoint("852b58871419ce5e5633ecfaa72c0f0fa890ceb51164b362b8133bc0e3e003a21cec48935b8cdc078f4031219cbf17fb7edd9d7c9ca8ed85492911c9ca6353c9aa4691eb91fda99563a6bd49aeca0d9981fb05ec76e45c6024f8a6822862ad1e34ddc652fbbf4fa909887a255d4f087398ec386577efcec523c21203be3d10fc9e9b0f990a7536875a77dc2bc5cbffea7734b62238e31719111b718bacccebffc9be689545540e81d23b81caa66214376f58a0d6a45cf7efc5d3af62ab932b371628162fffe403906f41d5534921e5be081c5ac2ecc9db5caec03a105cc44b00ce19a95ad079843501eb8182e0717ce327867380c0e39d2b48698547fc1d0d66")}, } expectedFiles := map[string][]string{ @@ -244,8 +244,8 @@ func TestInstall(t *testing.T) { "dfu-util-0.10.0-arduino1": {"dfu-prefix", "dfu-suffix", "dfu-util"}, "rp2040tools-1.0.6": {"elf2uf2", "picotool", "pioasm", "rp2040load"}, "esptool_py-4.5.1": {"esptool"}, - // "fwupdater-0.1.12": {"firmwares", "FirmwareUploader"}, // old legacy tool - // "arduino-fwuploader-2.2.2": {"arduino-fwuploader"}, + "arduino-fwuploader-2.2.2": {"arduino-fwuploader"}, + // "esptool-2.5.0-3-20ed2b9": {"esptool"}, // we don't check if there is esptool in the archive because it's the same archive even on windows (no extension) } for _, tc := range testCases { t.Run(tc.Name+"-"+tc.Version, func(t *testing.T) { @@ -254,7 +254,7 @@ func TestInstall(t *testing.T) { require.NoError(t, err) // Check that the tool has been downloaded - toolDir := paths.New(tmp).Join("arduino-test", tc.Name, tc.Version) + toolDir := paths.New(tmp).Join(tc.Packager, tc.Name, tc.Version) require.DirExists(t, toolDir.String()) // Check that the files have been created From a679bf359c17749c056648ef1b0c66d50d418e0f Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:38:05 +0200 Subject: [PATCH 206/233] Improve `installed.json` handling in `v2/tools` (#983) * Introduce mutex policy to the v2 tools and use it to write the installed.json * Use a map to store installed.json information * Use the correct lock for reading and writing * Include the v2.Tools constructor in the old Tools struct * Add corrupted json test --- tools/download.go | 5 ++- tools/download_test.go | 20 +++++++++++ tools/tools.go | 3 ++ v2/pkgs/tools.go | 76 ++++++++++++++++++++---------------------- 4 files changed, 61 insertions(+), 43 deletions(-) diff --git a/tools/download.go b/tools/download.go index 6e5fa8b7f..8c4a37a6c 100644 --- a/tools/download.go +++ b/tools/download.go @@ -25,7 +25,6 @@ import ( "github.com/arduino/arduino-create-agent/gen/tools" "github.com/arduino/arduino-create-agent/utilities" - "github.com/arduino/arduino-create-agent/v2/pkgs" ) // Download will parse the index at the indexURL for the tool to download. @@ -45,8 +44,8 @@ import ( // if it already exists. func (t *Tools) Download(pack, name, version, behaviour string) error { - tool := pkgs.New(t.index, t.directory.String(), behaviour) - _, err := tool.Install(context.Background(), &tools.ToolPayload{Name: name, Version: version, Packager: pack}) + t.tools.SetBehaviour(behaviour) + _, err := t.tools.Install(context.Background(), &tools.ToolPayload{Name: name, Version: version, Packager: pack}) if err != nil { return err } diff --git a/tools/download_test.go b/tools/download_test.go index 8863a09d7..7cf2fab0d 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -160,3 +160,23 @@ func TestDownload(t *testing.T) { }) } } + +func TestCorruptedInstalled(t *testing.T) { + // prepare the test environment + tempDir := t.TempDir() + tempDirPath := paths.New(tempDir) + testIndex := index.Resource{ + IndexFile: *paths.New("testdata", "test_tool_index.json"), + LastRefresh: time.Now(), + } + corruptedJSON := tempDirPath.Join("installed.json") + fileJSON, err := corruptedJSON.Create() + require.NoError(t, err) + defer fileJSON.Close() + _, err = fileJSON.Write([]byte("Hello")) + require.NoError(t, err) + testTools := New(tempDirPath, &testIndex, func(msg string) { t.Log(msg) }) + // Download the tool + err = testTools.Download("arduino-test", "avrdude", "6.3.0-arduino17", "keep") + require.NoError(t, err) +} diff --git a/tools/tools.go b/tools/tools.go index cb9efc787..5cecc5089 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -22,6 +22,7 @@ import ( "sync" "github.com/arduino/arduino-create-agent/index" + "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/arduino/go-paths-helper" "github.com/xrash/smetrics" ) @@ -47,6 +48,7 @@ type Tools struct { logger func(msg string) installed map[string]string mutex sync.RWMutex + tools *pkgs.Tools } // New will return a Tool object, allowing the caller to execute operations on it. @@ -60,6 +62,7 @@ func New(directory *paths.Path, index *index.Resource, logger func(msg string)) logger: logger, installed: map[string]string{}, mutex: sync.RWMutex{}, + tools: pkgs.New(index, directory.String(), "replace"), } _ = t.readMap() return t diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index 14f853e9e..c84d207f8 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -29,6 +29,7 @@ import ( "path/filepath" "runtime" "strings" + "sync" "github.com/arduino/arduino-create-agent/gen/tools" "github.com/arduino/arduino-create-agent/index" @@ -60,17 +61,23 @@ type Tools struct { index *index.Resource folder string behaviour string + installed map[string]string + mutex sync.RWMutex } // New will return a Tool object, allowing the caller to execute operations on it. // The New function will accept an index as parameter (used to download the indexes) // and a folder used to download the indexes func New(index *index.Resource, folder, behaviour string) *Tools { - return &Tools{ + t := &Tools{ index: index, folder: folder, behaviour: behaviour, + installed: map[string]string{}, + mutex: sync.RWMutex{}, } + t.readInstalled() + return t } // Installedhead is here only because it was required by the front-end. @@ -181,13 +188,10 @@ func (t *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools key := correctTool.Name + "-" + correctTool.Version // Check if it already exists if t.behaviour == "keep" && pathExists(t.folder) { - location, ok, err := checkInstalled(t.folder, key) - if err != nil { - return nil, err - } + location, ok := t.installed[key] if ok && pathExists(location) { // overwrite the default tool with this one - err := writeInstalled(t.folder, path) + err := t.writeInstalled(path) if err != nil { return nil, err } @@ -245,7 +249,7 @@ func (t *Tools) install(ctx context.Context, path, url, checksum string) (*tools } // Write installed.json for retrocompatibility with v1 - err = writeInstalled(t.folder, path) + err = t.writeInstalled(path) if err != nil { return nil, err } @@ -285,54 +289,41 @@ func rename(base string) extract.Renamer { } } -func readInstalled(installedFile string) (map[string]string, error) { +func (t *Tools) readInstalled() error { + t.mutex.RLock() + defer t.mutex.RUnlock() // read installed.json - installed := map[string]string{} - data, err := os.ReadFile(installedFile) - if err == nil { - err = json.Unmarshal(data, &installed) - if err != nil { - return nil, err - } - } - return installed, nil -} - -func checkInstalled(folder, key string) (string, bool, error) { - installedFile, err := utilities.SafeJoin(folder, "installed.json") - if err != nil { - return "", false, err - } - installed, err := readInstalled(installedFile) - if err != nil { - return "", false, err - } - location, ok := installed[key] - return location, ok, err -} - -func writeInstalled(folder, path string) error { - // read installed.json - installedFile, err := utilities.SafeJoin(folder, "installed.json") + installedFile, err := utilities.SafeJoin(t.folder, "installed.json") if err != nil { return err } - installed, err := readInstalled(installedFile) + data, err := os.ReadFile(installedFile) if err != nil { return err } + return json.Unmarshal(data, &t.installed) +} + +func (t *Tools) writeInstalled(path string) error { + t.mutex.Lock() + defer t.mutex.Unlock() parts := strings.Split(path, string(filepath.Separator)) tool := parts[len(parts)-2] toolWithVersion := fmt.Sprint(tool, "-", parts[len(parts)-1]) - toolFile, err := utilities.SafeJoin(folder, path) + toolFile, err := utilities.SafeJoin(t.folder, path) if err != nil { return err } - installed[tool] = toolFile - installed[toolWithVersion] = toolFile + t.installed[tool] = toolFile + t.installed[toolWithVersion] = toolFile - data, err := json.Marshal(installed) + data, err := json.Marshal(t.installed) + if err != nil { + return err + } + + installedFile, err := utilities.SafeJoin(t.folder, "installed.json") if err != nil { return err } @@ -340,6 +331,11 @@ func writeInstalled(folder, path string) error { return os.WriteFile(installedFile, data, 0644) } +// SetBehaviour sets the download behaviour to either keep or replace +func (t *Tools) SetBehaviour(behaviour string) { + t.behaviour = behaviour +} + func pathExists(path string) bool { _, err := os.Stat(path) if err == nil { From 1561223e52c891127a5f4645c0023699a804c043 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:39:07 +0200 Subject: [PATCH 207/233] Bump golang.org/x/sys from 0.20.0 to 0.23.0 (#985) * Bump golang.org/x/sys from 0.20.0 to 0.23.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.20.0 to 0.23.0. - [Commits](https://github.com/golang/sys/compare/v0.20.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * update license --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .licensed.yml | 1 + .../go/golang.org/x/sys/unix.dep.yml | 12 ++++++------ go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.licensed.yml b/.licensed.yml index f0c02a90e..104135193 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -10,6 +10,7 @@ reviewed: - golang.org/x/net/html - golang.org/x/net/html/atom - golang.org/x/crypto/curve25519 + - golang.org/x/sys/unix - github.com/ProtonMail/go-crypto/bitcurves - github.com/ProtonMail/go-crypto/brainpool - github.com/ProtonMail/go-crypto/eax diff --git a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml index 8c6dd955b..5c4780a8d 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/sys/unix.dep.yml @@ -1,14 +1,14 @@ --- name: golang.org/x/sys/unix -version: v0.20.0 +version: v0.23.0 type: go summary: Package unix contains an interface to the low-level operating system primitives. homepage: https://pkg.go.dev/golang.org/x/sys/unix -license: bsd-3-clause +license: other licenses: -- sources: sys@v0.20.0/LICENSE +- sources: sys@v0.23.0/LICENSE text: | - Copyright (c) 2009 The Go Authors. All rights reserved. + Copyright 2009 The Go Authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -20,7 +20,7 @@ licenses: copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its + * Neither the name of Google LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: sys@v0.20.0/PATENTS +- sources: sys@v0.23.0/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index b1f0f8fda..4b92a2573 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 go.bug.st/serial v1.6.1 goa.design/goa/v3 v3.16.1 - golang.org/x/sys v0.20.0 + golang.org/x/sys v0.23.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa ) diff --git a/go.sum b/go.sum index 278446a66..2e8a44221 100644 --- a/go.sum +++ b/go.sum @@ -181,8 +181,8 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= From 3ebca0a054b2451a2a5ddc962bac3ae133f6bcfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:41:54 +0200 Subject: [PATCH 208/233] Bump github.com/ProtonMail/go-crypto from 1.1.0-alpha.2 to 1.1.0-alpha.5-proton (#974) * Bump github.com/ProtonMail/go-crypto Bumps [github.com/ProtonMail/go-crypto](https://github.com/ProtonMail/go-crypto) from 1.1.0-alpha.2 to 1.1.0-alpha.5-proton. - [Release notes](https://github.com/ProtonMail/go-crypto/releases) - [Commits](https://github.com/ProtonMail/go-crypto/compare/v1.1.0-alpha.2...v1.1.0-alpha.5-proton) --- updated-dependencies: - dependency-name: github.com/ProtonMail/go-crypto dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update licenses --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .licensed.yml | 3 + .../ProtonMail/go-crypto/bitcurves.dep.yml | 6 +- .../ProtonMail/go-crypto/brainpool.dep.yml | 6 +- .../ProtonMail/go-crypto/eax.dep.yml | 6 +- .../go-crypto/internal/byteutil.dep.yml | 6 +- .../ProtonMail/go-crypto/ocb.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp.dep.yml | 6 +- .../go-crypto/openpgp/aes/keywrap.dep.yml | 6 +- .../go-crypto/openpgp/armor.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp/ecdh.dep.yml | 6 +- .../go-crypto/openpgp/ecdsa.dep.yml | 6 +- .../go-crypto/openpgp/ed25519.dep.yml | 6 +- .../go-crypto/openpgp/ed448.dep.yml | 6 +- .../go-crypto/openpgp/eddsa.dep.yml | 6 +- .../go-crypto/openpgp/elgamal.dep.yml | 6 +- .../go-crypto/openpgp/errors.dep.yml | 6 +- .../openpgp/internal/algorithm.dep.yml | 6 +- .../go-crypto/openpgp/internal/ecc.dep.yml | 6 +- .../openpgp/internal/ecc/curve25519.dep.yml | 63 +++++++++++++++++++ .../internal/ecc/curve25519/field.dep.yml | 62 ++++++++++++++++++ .../openpgp/internal/encoding.dep.yml | 6 +- .../go-crypto/openpgp/packet.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp/s2k.dep.yml | 6 +- .../go-crypto/openpgp/symmetric.dep.yml | 62 ++++++++++++++++++ .../go-crypto/openpgp/x25519.dep.yml | 6 +- .../ProtonMail/go-crypto/openpgp/x448.dep.yml | 6 +- go.mod | 2 +- go.sum | 4 +- 28 files changed, 259 insertions(+), 69 deletions(-) create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field.dep.yml create mode 100644 .licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/symmetric.dep.yml diff --git a/.licensed.yml b/.licensed.yml index 104135193..12e7395a3 100644 --- a/.licensed.yml +++ b/.licensed.yml @@ -28,9 +28,12 @@ reviewed: - github.com/ProtonMail/go-crypto/openpgp/errors - github.com/ProtonMail/go-crypto/openpgp/internal/algorithm - github.com/ProtonMail/go-crypto/openpgp/internal/ecc + - github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519 + - github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field - github.com/ProtonMail/go-crypto/openpgp/internal/encoding - github.com/ProtonMail/go-crypto/openpgp/packet - github.com/ProtonMail/go-crypto/openpgp/s2k + - github.com/ProtonMail/go-crypto/openpgp/symmetric - github.com/ProtonMail/go-crypto/openpgp/x25519 - github.com/ProtonMail/go-crypto/openpgp/x448 - github.com/cloudflare/circl/dh/x25519 diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml index 08606aa3f..ff1d983d0 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/bitcurves.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/bitcurves -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/bitcurves license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml index 5cc5c2938..9ec1b1cef 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/brainpool.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/brainpool -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package brainpool implements Brainpool elliptic curves. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/brainpool license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml index 24d186b3c..e086227d1 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/eax.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/eax -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: 'Package eax provides an implementation of the EAX (encrypt-authenticate-translate) mode of operation, as described in Bellare, Rogaway, and Wagner "THE EAX MODE OF @@ -9,7 +9,7 @@ summary: 'Package eax provides an implementation of the EAX (encrypt-authenticat homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/eax license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -38,7 +38,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml index a3835acbf..1d0b837c3 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/internal/byteutil.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/internal/byteutil -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/internal/byteutil license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml index 4ca8e6a7f..f24f78fe7 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/ocb.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/ocb -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: 'Package ocb provides an implementation of the OCB (offset codebook) mode of operation, as described in RFC-7253 of the IRTF and in Rogaway, Bellare, Black @@ -9,7 +9,7 @@ summary: 'Package ocb provides an implementation of the OCB (offset codebook) mo homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/ocb license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -38,7 +38,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml index b2cfe5b0e..af72530c0 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package openpgp implements high level operations on OpenPGP messages. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml index c8b82bc49..7cc6fb0d4 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/aes/keywrap -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package keywrap is an implementation of the RFC 3394 AES key wrapping algorithm. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml index 5d827c6f9..982a14505 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/armor.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/armor -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/armor license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml index 19bbd5b3c..9107dd71b 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdh.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ecdh -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package ecdh implements ECDH encryption, suitable for OpenPGP, as specified in RFC 6637, section 8. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdh license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml index 6d4935361..26ae39b99 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ecdsa.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ecdsa -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package ecdsa implements ECDSA signature, suitable for OpenPGP, as specified in RFC 6637, section 5. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ecdsa license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml index 619142d7b..b98f3d6ff 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed25519.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ed25519 -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package ed25519 implements the ed25519 signature algorithm for OpenPGP as defined in the Open PGP crypto refresh. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ed25519 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml index ba001ce30..a3ec2359a 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/ed448.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/ed448 -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package ed448 implements the ed448 signature algorithm for OpenPGP as defined in the Open PGP crypto refresh. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/ed448 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml index a197e12e7..77cb4464e 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/eddsa.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/eddsa -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package eddsa implements EdDSA signature, suitable for OpenPGP, as specified in https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/eddsa license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml index 01278f3d4..30c4e4652 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/elgamal.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/elgamal -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms," @@ -8,7 +8,7 @@ summary: Package elgamal implements ElGamal encryption, suitable for OpenPGP, as homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/elgamal license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml index cb6ba9441..81688cd2f 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/errors.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/errors -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package errors contains common error types for the OpenPGP packages. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/errors license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml index 9671f9971..6d96f4443 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/algorithm -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml index 080c67ae9..81e8f7cb5 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/ecc -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/ecc license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.dep.yml new file mode 100644 index 000000000..ce6e3efe5 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.dep.yml @@ -0,0 +1,63 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519 +version: v1.1.0-alpha.5-proton +type: go +summary: Package curve25519 implements custom field operations without clamping for + forwarding. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519 +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field.dep.yml new file mode 100644 index 000000000..8df0ed080 --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field +version: v1.1.0-alpha.5-proton +type: go +summary: Package field implements fast arithmetic modulo 2^255-19. +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519/field +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml index 871478bef..990da1aa3 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/internal/encoding.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/internal/encoding -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package encoding implements openpgp packet field encodings as specified in RFC 4880 and 6637. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/internal/encoding license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml index 990c817b3..c470a9e2b 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/packet.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/packet -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package packet implements parsing and serialization of OpenPGP packets, as specified in RFC 4880. homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/packet license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -36,7 +36,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml index 3ec86e4b8..a1a554e68 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/s2k.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/s2k -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: Package s2k implements the various OpenPGP string-to-key transforms as specified in RFC 4800 section 3.7.1, and Argon2 specified in draft-ietf-openpgp-crypto-refresh-08 @@ -8,7 +8,7 @@ summary: Package s2k implements the various OpenPGP string-to-key transforms as homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/s2k license: bsd-3-clause licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -37,7 +37,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/symmetric.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/symmetric.dep.yml new file mode 100644 index 000000000..581db5cbd --- /dev/null +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/symmetric.dep.yml @@ -0,0 +1,62 @@ +--- +name: github.com/ProtonMail/go-crypto/openpgp/symmetric +version: v1.1.0-alpha.5-proton +type: go +summary: +homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/symmetric +license: other +licenses: +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE + text: | + Copyright (c) 2009 The Go Authors. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS + text: | + Additional IP Rights Grant (Patents) + + "This implementation" means the copyrightable works distributed by + Google as part of the Go project. + + Google hereby grants to You a perpetual, worldwide, non-exclusive, + no-charge, royalty-free, irrevocable (except as stated in this section) + patent license to make, have made, use, offer to sell, sell, import, + transfer and otherwise run, modify and propagate the contents of this + implementation of Go, where such license applies only to those patent + claims, both currently owned or controlled by Google and acquired in + the future, licensable by Google that are necessarily infringed by this + implementation of Go. This grant does not include claims that would be + infringed only as a consequence of further modification of this + implementation. If you or your agent or exclusive licensee institute or + order or agree to the institution of patent litigation against any + entity (including a cross-claim or counterclaim in a lawsuit) alleging + that this implementation of Go or any code incorporated within this + implementation of Go constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any patent + rights granted to you under this License for this implementation of Go + shall terminate as of the date such litigation is filed. +notices: [] diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml index 79e3c7c83..16798ee8e 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x25519.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/x25519 -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/x25519 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml index 21d2d9e9c..27acdb02c 100644 --- a/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ProtonMail/go-crypto/openpgp/x448.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ProtonMail/go-crypto/openpgp/x448 -version: v1.1.0-alpha.2 +version: v1.1.0-alpha.5-proton type: go summary: homepage: https://pkg.go.dev/github.com/ProtonMail/go-crypto/openpgp/x448 license: other licenses: -- sources: go-crypto@v1.1.0-alpha.2/LICENSE +- sources: go-crypto@v1.1.0-alpha.5-proton/LICENSE text: | Copyright (c) 2009 The Go Authors. All rights reserved. @@ -35,7 +35,7 @@ licenses: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: go-crypto@v1.1.0-alpha.2/PATENTS +- sources: go-crypto@v1.1.0-alpha.5-proton/PATENTS text: | Additional IP Rights Grant (Patents) diff --git a/go.mod b/go.mod index 4b92a2573..356b51101 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( fyne.io/systray v1.10.0 - github.com/ProtonMail/go-crypto v1.1.0-alpha.2 + github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton github.com/arduino/go-paths-helper v1.12.0 github.com/arduino/go-serial-utils v0.1.2 github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 diff --git a/go.sum b/go.sum index 2e8a44221..1481506db 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ fyne.io/systray v1.10.0 h1:Yr1D9Lxeiw3+vSuZWPlaHC8BMjIHZXJKkek706AfYQk= fyne.io/systray v1.10.0/go.mod h1:oM2AQqGJ1AMo4nNqZFYU8xYygSBZkW2hmdJ7n4yjedE= github.com/AnatolyRugalev/goregen v0.1.0 h1:xrdXkLaskMnbxW0x4FWNj2yoednv0X2bcTBWpuJGYfE= github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz5g7IK8AStjOVzI= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton h1:KVBEgU3CJpmzLChnLiSuEyCuhGhcMt3eOST+7A+ckto= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= From a945e56092413ccae8339879487912092552ac4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:54:02 +0200 Subject: [PATCH 209/233] Bump github.com/arduino/go-paths-helper from 1.12.0 to 1.12.1 (#962) * Bump github.com/arduino/go-paths-helper from 1.12.0 to 1.12.1 Bumps [github.com/arduino/go-paths-helper](https://github.com/arduino/go-paths-helper) from 1.12.0 to 1.12.1. - [Release notes](https://github.com/arduino/go-paths-helper/releases) - [Commits](https://github.com/arduino/go-paths-helper/compare/v1.12.0...v1.12.1) --- updated-dependencies: - dependency-name: github.com/arduino/go-paths-helper dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update license --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Umberto Baldi --- .../go/github.com/arduino/go-paths-helper.dep.yml | 2 +- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml index 1de189b7f..21d102e90 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-paths-helper.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/go-paths-helper -version: v1.12.0 +version: v1.12.1 type: go summary: homepage: https://pkg.go.dev/github.com/arduino/go-paths-helper diff --git a/go.mod b/go.mod index 356b51101..9c4e3a03d 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( fyne.io/systray v1.10.0 github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton - github.com/arduino/go-paths-helper v1.12.0 + github.com/arduino/go-paths-helper v1.12.1 github.com/arduino/go-serial-utils v0.1.2 github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 github.com/blang/semver v3.5.1+incompatible diff --git a/go.sum b/go.sum index 1481506db..1551328e1 100644 --- a/go.sum +++ b/go.sum @@ -5,8 +5,8 @@ github.com/AnatolyRugalev/goregen v0.1.0/go.mod h1:sVlY1tjcirqLBRZnCcIq1+7/Lwmqz github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton h1:KVBEgU3CJpmzLChnLiSuEyCuhGhcMt3eOST+7A+ckto= github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/arduino/go-paths-helper v1.0.1/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/arduino/go-paths-helper v1.12.0 h1:xizOQtI9iHdl19qXd1EmWg5i9W//2bOCOYwlNv8F61E= -github.com/arduino/go-paths-helper v1.12.0/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= +github.com/arduino/go-paths-helper v1.12.1 h1:WkxiVUxBjKWlLMiMuYy8DcmVrkxdP7aKxQOAq7r2lVM= +github.com/arduino/go-paths-helper v1.12.1/go.mod h1:jcpW4wr0u69GlXhTYydsdsqAjLaYK5n7oWHfKqOG6LM= github.com/arduino/go-properties-orderedmap v1.8.0 h1:wEfa6hHdpezrVOh787OmClsf/Kd8qB+zE3P2Xbrn0CQ= github.com/arduino/go-properties-orderedmap v1.8.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-serial-utils v0.1.2 h1:MRFwME4w/uaVkJ1R+wzz4KSbI9cF9IDVrYorazvjpTk= From fb06ef3746e769925505948b0a8c77080d6b8b92 Mon Sep 17 00:00:00 2001 From: MatteoPologruto <109663225+MatteoPologruto@users.noreply.github.com> Date: Mon, 5 Aug 2024 17:48:10 +0200 Subject: [PATCH 210/233] Insert lock while reading from the installed map (#987) --- v2/pkgs/tools.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index c84d207f8..1623d6a62 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -188,7 +188,7 @@ func (t *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools key := correctTool.Name + "-" + correctTool.Version // Check if it already exists if t.behaviour == "keep" && pathExists(t.folder) { - location, ok := t.installed[key] + location, ok := t.getInstalledValue(key) if ok && pathExists(location) { // overwrite the default tool with this one err := t.writeInstalled(path) @@ -336,6 +336,13 @@ func (t *Tools) SetBehaviour(behaviour string) { t.behaviour = behaviour } +func (t *Tools) getInstalledValue(key string) (string, bool) { + t.mutex.RLock() + defer t.mutex.RUnlock() + location, ok := t.installed[key] + return location, ok +} + func pathExists(path string) bool { _, err := os.Stat(path) if err == nil { From 6f9025e14d57c8a53faa51262bfd23339f981f0a Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Thu, 29 Aug 2024 11:25:04 +0200 Subject: [PATCH 211/233] Update `extract` to 4.0.0 and golang to 1.23 (#990) * Update extract to v4.0.0 * Update go version to 1.22 * Upgrade go to 1.23.0 --- .../workflows/check-go-dependencies-task.yml | 2 +- .github/workflows/check-go-task.yml | 2 +- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 2 +- .../workflows/test-go-integration-task.yml | 2 +- .github/workflows/test-go-task.yml | 2 +- .../extract/{v3.dep.yml => v4.dep.yml} | 6 +- .../go/github.com/ulikunitz/xz.dep.yml | 2 +- .../ulikunitz/xz/internal/hash.dep.yml | 4 +- .../ulikunitz/xz/internal/xlog.dep.yml | 4 +- .../go/github.com/ulikunitz/xz/lzma.dep.yml | 4 +- .../go/golang.org/x/crypto/sha3.dep.yml | 63 ------------------- go.mod | 6 +- go.sum | 8 +-- updater/updater_darwin.go | 2 +- v2/pkgs/tools.go | 2 +- 16 files changed, 25 insertions(+), 88 deletions(-) rename .licenses/arduino-create-agent/go/github.com/codeclysm/extract/{v3.dep.yml => v4.dep.yml} (91%) delete mode 100644 .licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 4983e0db6..a179ee992 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -3,7 +3,7 @@ name: Check Go Dependencies env: # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.21" + GO_VERSION: "1.23" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 7ea76eb48..6981f26cb 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -3,7 +3,7 @@ name: Check Go env: # See: https://github.com/actions/setup-go/tree/main#supported-version-syntax - GO_VERSION: "1.21" + GO_VERSION: "1.23" # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows on: diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index aa2949e13..864f21c5f 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -31,7 +31,7 @@ on: env: PROJECT_NAME: arduino-cloud-agent - GO_VERSION: "1.21" + GO_VERSION: "1.23" jobs: run-determination: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fe60ec8f8..af37a9b85 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ env: AC_PASSWORD: ${{ secrets.AC_PASSWORD }} # used by gon AC_PROVIDER: ${{ secrets.AC_PROVIDER }} # used by gon # See: https://github.com/actions/setup-go/tree/v3#readme - GO_VERSION: "1.21" + GO_VERSION: "1.23" jobs: # The build job is responsible for: configuring the environment, testing and compiling process diff --git a/.github/workflows/test-go-integration-task.yml b/.github/workflows/test-go-integration-task.yml index 79766b083..7eeb8e55f 100644 --- a/.github/workflows/test-go-integration-task.yml +++ b/.github/workflows/test-go-integration-task.yml @@ -3,7 +3,7 @@ name: Test Integration env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.21" + GO_VERSION: "1.23" # See: https://github.com/actions/setup-python/tree/v2#available-versions-of-python PYTHON_VERSION: "3.9" diff --git a/.github/workflows/test-go-task.yml b/.github/workflows/test-go-task.yml index 8a7c733ba..cbb95655f 100644 --- a/.github/workflows/test-go-task.yml +++ b/.github/workflows/test-go-task.yml @@ -3,7 +3,7 @@ name: Test Go env: # See: https://github.com/actions/setup-go/tree/v2#readme - GO_VERSION: "1.21" + GO_VERSION: "1.23" # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows on: diff --git a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v4.dep.yml similarity index 91% rename from .licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml rename to .licenses/arduino-create-agent/go/github.com/codeclysm/extract/v4.dep.yml index 0c6f99746..9defe5f88 100644 --- a/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v3.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/codeclysm/extract/v4.dep.yml @@ -1,10 +1,10 @@ --- -name: github.com/codeclysm/extract/v3 -version: v3.1.1 +name: github.com/codeclysm/extract/v4 +version: v4.0.0 type: go summary: Package extract allows to extract archives in zip, tar.gz or tar.bz2 formats easily. -homepage: https://pkg.go.dev/github.com/codeclysm/extract/v3 +homepage: https://pkg.go.dev/github.com/codeclysm/extract/v4 license: mit licenses: - sources: LICENSE diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml index 0b3c4e2b2..b02e158ff 100644 --- a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/ulikunitz/xz -version: v0.5.11 +version: v0.5.12 type: go summary: Package xz supports the compression and decompression of xz files. homepage: https://pkg.go.dev/github.com/ulikunitz/xz diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml index 470737fb6..c9a34e7af 100644 --- a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/hash.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ulikunitz/xz/internal/hash -version: v0.5.11 +version: v0.5.12 type: go summary: Package hash provides rolling hashes. homepage: https://pkg.go.dev/github.com/ulikunitz/xz/internal/hash license: bsd-3-clause licenses: -- sources: xz@v0.5.11/LICENSE +- sources: xz@v0.5.12/LICENSE text: | Copyright (c) 2014-2022 Ulrich Kunitz All rights reserved. diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml index 5fc1e57f7..a5ec30088 100644 --- a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/internal/xlog.dep.yml @@ -1,13 +1,13 @@ --- name: github.com/ulikunitz/xz/internal/xlog -version: v0.5.11 +version: v0.5.12 type: go summary: Package xlog provides a simple logging package that allows to disable certain message categories. homepage: https://pkg.go.dev/github.com/ulikunitz/xz/internal/xlog license: bsd-3-clause licenses: -- sources: xz@v0.5.11/LICENSE +- sources: xz@v0.5.12/LICENSE text: | Copyright (c) 2014-2022 Ulrich Kunitz All rights reserved. diff --git a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml index b30f1859d..66a937e5e 100644 --- a/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/ulikunitz/xz/lzma.dep.yml @@ -1,12 +1,12 @@ --- name: github.com/ulikunitz/xz/lzma -version: v0.5.11 +version: v0.5.12 type: go summary: Package lzma supports the decoding and encoding of LZMA streams. homepage: https://pkg.go.dev/github.com/ulikunitz/xz/lzma license: bsd-3-clause licenses: -- sources: xz@v0.5.11/LICENSE +- sources: xz@v0.5.12/LICENSE text: | Copyright (c) 2014-2022 Ulrich Kunitz All rights reserved. diff --git a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml deleted file mode 100644 index 1ef1c7c9f..000000000 --- a/.licenses/arduino-create-agent/go/golang.org/x/crypto/sha3.dep.yml +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: golang.org/x/crypto/sha3 -version: v0.23.0 -type: go -summary: Package sha3 implements the SHA-3 fixed-output-length hash functions and - the SHAKE variable-output-length hash functions defined by FIPS-202. -homepage: https://pkg.go.dev/golang.org/x/crypto/sha3 -license: bsd-3-clause -licenses: -- sources: crypto@v0.23.0/LICENSE - text: | - Copyright (c) 2009 The Go Authors. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: crypto@v0.23.0/PATENTS - text: | - Additional IP Rights Grant (Patents) - - "This implementation" means the copyrightable works distributed by - Google as part of the Go project. - - Google hereby grants to You a perpetual, worldwide, non-exclusive, - no-charge, royalty-free, irrevocable (except as stated in this section) - patent license to make, have made, use, offer to sell, sell, import, - transfer and otherwise run, modify and propagate the contents of this - implementation of Go, where such license applies only to those patent - claims, both currently owned or controlled by Google and acquired in - the future, licensable by Google that are necessarily infringed by this - implementation of Go. This grant does not include claims that would be - infringed only as a consequence of further modification of this - implementation. If you or your agent or exclusive licensee institute or - order or agree to the institution of patent litigation against any - entity (including a cross-claim or counterclaim in a lawsuit) alleging - that this implementation of Go or any code incorporated within this - implementation of Go constitutes direct or contributory patent - infringement, or inducement of patent infringement, then any patent - rights granted to you under this License for this implementation of Go - shall terminate as of the date such litigation is filed. -notices: [] diff --git a/go.mod b/go.mod index 9c4e3a03d..82ee10173 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/arduino/arduino-create-agent -go 1.21 +go 1.23.0 require ( fyne.io/systray v1.10.0 @@ -9,7 +9,7 @@ require ( github.com/arduino/go-serial-utils v0.1.2 github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 github.com/blang/semver v3.5.1+incompatible - github.com/codeclysm/extract/v3 v3.1.1 + github.com/codeclysm/extract/v4 v4.0.0 github.com/gin-contrib/cors v1.7.2 github.com/gin-gonic/gin v1.10.0 github.com/go-ini/ini v1.62.0 @@ -71,7 +71,7 @@ require ( github.com/tevino/abool v1.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go v1.1.6 // indirect - github.com/ulikunitz/xz v0.5.11 // indirect + github.com/ulikunitz/xz v0.5.12 // indirect golang.org/x/arch v0.8.0 // indirect golang.org/x/crypto v0.23.0 // indirect golang.org/x/mod v0.17.0 // indirect diff --git a/go.sum b/go.sum index 1551328e1..bee2988ac 100644 --- a/go.sum +++ b/go.sum @@ -25,8 +25,8 @@ github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/ github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/codeclysm/extract/v3 v3.1.1 h1:iHZtdEAwSTqPrd+1n4jfhr1qBhUWtHlMTjT90+fJVXg= -github.com/codeclysm/extract/v3 v3.1.1/go.mod h1:ZJi80UG2JtfHqJI+lgJSCACttZi++dHxfWuPaMhlOfQ= +github.com/codeclysm/extract/v4 v4.0.0 h1:H87LFsUNaJTu2e/8p/oiuiUsOK/TaPQ5wxsjPnwPEIY= +github.com/codeclysm/extract/v4 v4.0.0/go.mod h1:SFju1lj6as7FvUgalpSct7torJE0zttbJUWtryPRG6s= github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0= github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -155,8 +155,8 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go v1.1.6 h1:zoJUBK8kLIUDNJ9LGB04qOQRfoDRoWBBpl0X7pZyi5I= github.com/ugorji/go v1.1.6/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os= -github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= -github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= +github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= diff --git a/updater/updater_darwin.go b/updater/updater_darwin.go index c4eb5070d..829466352 100644 --- a/updater/updater_darwin.go +++ b/updater/updater_darwin.go @@ -26,7 +26,7 @@ import ( "strings" "github.com/arduino/go-paths-helper" - "github.com/codeclysm/extract/v3" + "github.com/codeclysm/extract/v4" "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus" ) diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index 1623d6a62..f09dc3f0a 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -35,7 +35,7 @@ import ( "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/utilities" "github.com/blang/semver" - "github.com/codeclysm/extract/v3" + "github.com/codeclysm/extract/v4" ) // public vars to allow override in the tests From 63ef1111488408f5549f6918a5ee62c2814bb6d7 Mon Sep 17 00:00:00 2001 From: per1234 Date: Tue, 3 Sep 2024 12:21:07 -0700 Subject: [PATCH 212/233] [skip-changelog] Configure actions/upload-artifact action to upload required hidden files A breaking change was made in the 3.2.1 release of the "actions/upload-artifact" action, without doing a major version bump as would be done in a responsibly maintained project. The action now defaults to not uploading "hidden" files. This project's "Check Go Dependencies" workflow uses the "Licensed" tool to check for incompatible dependency licenses. The dependencies license metadata cache used by Licensed is stored in a folder named `.licensed`. In order to facilitate updates, the workflow uploads the generated dependencies license metadata cache as a workflow artifact when the current cache is found to be outdated. The `.` at the start of the `.licensed` folder name causes it to now not be uploaded to the workflow artifact. In order to catch such problems, the workflow configures the "actions/upload-artifact" action to fail if no files were uploaded. So in addition to not uploading the artifact, the change in the "actions/upload-artifact" action's behavior also resulted in the workflow runs failing: Error: No files were found with the provided path: .licenses/. No artifacts will be uploaded. The problem is fixed by disabling the "actions/upload-artifact" action's new behavior via the `include-hidden-files` input. After this change, the workflow can once more upload the dependencies license metadata cache to a workflow artifact as needed. --- .github/workflows/check-go-dependencies-task.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index a179ee992..5b78888bb 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -108,6 +108,7 @@ jobs: uses: actions/upload-artifact@v4 with: if-no-files-found: error + include-hidden-files: true name: dep-licenses-cache path: ${{ env.CACHE_PATH }} From d36d0e142b8b46c0cde117f94b37b37422b806d7 Mon Sep 17 00:00:00 2001 From: Alessio Perugini Date: Thu, 24 Oct 2024 14:11:20 +0200 Subject: [PATCH 213/233] upload: don't ignore BindJSON errors (#999) * upload: don't ignore BindJSON errors --- conn.go | 6 ++++-- main_test.go | 25 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/conn.go b/conn.go index 727a5cadb..b6e03268c 100644 --- a/conn.go +++ b/conn.go @@ -80,9 +80,11 @@ type Upload struct { var uploadStatusStr = "ProgrammerStatus" func uploadHandler(c *gin.Context) { - data := new(Upload) - c.BindJSON(data) + if err := c.BindJSON(data); err != nil { + c.String(http.StatusBadRequest, fmt.Sprintf("err with the payload. %v", err.Error())) + return + } log.Printf("%+v %+v %+v %+v %+v %+v", data.Port, data.Board, data.Rewrite, data.Commandline, data.Extra, data.Filename) diff --git a/main_test.go b/main_test.go index 568556953..d6f23fcec 100644 --- a/main_test.go +++ b/main_test.go @@ -18,6 +18,7 @@ package main import ( "bytes" "crypto/x509" + "encoding/base64" "encoding/json" "encoding/pem" "fmt" @@ -87,6 +88,30 @@ func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { } } +func TestUploadHandlerAgainstBase64WithoutPaddingMustFail(t *testing.T) { + r := gin.New() + r.POST("/", uploadHandler) + ts := httptest.NewServer(r) + defer ts.Close() + + // When calling the `BindJSON` func, when a json field will be Unmarshaled + // in a []byte type, we expect to receive a base64 padded string in input. + // In case we receive a base64 unpadded string BindJSON fails. + // The expectation here is that the upload handler won't continue with the + // upload operation. + base64ContentWithoutPadding := base64.RawStdEncoding.EncodeToString([]byte("test")) + payload := fmt.Sprintf(`{"hex": "%s"}`, base64ContentWithoutPadding) + + resp, err := http.Post(ts.URL, "encoding/json", bytes.NewBufferString(payload)) + require.NoError(t, err) + require.Equal(t, http.StatusBadRequest, resp.StatusCode) + + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + require.NoError(t, err) + require.Contains(t, string(body), "err with the payload. illegal base64 data at input") +} + func TestInstallToolV2(t *testing.T) { indexURL := "https://downloads.arduino.cc/packages/package_index.json" From 84a3854a3fe479a9da1151a61b234199113d82e0 Mon Sep 17 00:00:00 2001 From: Davide Date: Fri, 10 Jan 2025 11:13:00 +0100 Subject: [PATCH 214/233] docs: update references from Arduino Create Web Editor to Arduino Cloud (#1001) * docs: update references from Arduino Create Web Editor to Arduino Cloud in README --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index fc88205a2..db5e92c65 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ [![Check Go Dependencies status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml) [![Check Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml) -The Arduino Cloud Agent is a single binary that will sit on the traybar and work in the background. It allows you to use the [Arduino Create applications](https://create.arduino.cc) to seamlessly upload code to any USB connected Arduino board (or Yún in LAN) directly from the browser. +The Arduino Cloud Agent is a single binary that will sit on the traybar and work in the background. It allows you to use the [Arduino Cloud](https://app.arduino.cc/) to seamlessly upload code to any USB connected Arduino board (or Yún in LAN) directly from the browser. ## Architecture @@ -18,8 +18,8 @@ The Arduino Cloud Agent is a single binary that will sit on the traybar and work | Browser | | | Web socket +----------------------+ flashes +---------------+ | +---------------------------+ |<-------------->| +------------>| | -| | | | | Arduino Cloud Agent | | Arduino Board | -| | Arduino Create Web Editor | +--------------->| |<------------+ | +| | | | | Arduino Cloud Agent | | Arduino Board | +| | Arduino Cloud | +--------------->| |<------------+ | | | | | REST API +----------------------+ serial +---------------+ | +---------------------------+ | +-------------------------------+ @@ -27,11 +27,11 @@ The Arduino Cloud Agent is a single binary that will sit on the traybar and work ## Installation -Get the [latest version](https://github.com/arduino/arduino-create-agent/releases) of the Agent for all supported platforms or complete the [Getting Started](https://create.arduino.cc/getting-started/plugin/welcome). +Get the [latest version](https://github.com/arduino/arduino-create-agent/releases) of the Agent for all supported platforms or complete the [Getting Started](https://cloud.arduino.cc/download-agent/). ## Apple silicon support -The Arduino Agent is supported both on Intel and Apple silicon computers. This includes devices with the M1, M2 and M3 processors. +The Arduino Agent is supported both on Intel and Apple silicon computers. This includes devices with the M1, M2 and M3 processors. The Arduino Agent is built both for Intel architectures and Apple silicon devices, but distributed as a single universal executable for macOS. ## Documentation From 2cb53d3defa3fa19f50d6bccafe55935598ffd3b Mon Sep 17 00:00:00 2001 From: Davide Date: Fri, 10 Jan 2025 14:50:30 +0100 Subject: [PATCH 215/233] fix: update libwebkit2gtk package version in workflow (#1004) --- .github/workflows/check-go-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-go-task.yml b/.github/workflows/check-go-task.yml index 6981f26cb..21478d23e 100644 --- a/.github/workflows/check-go-task.yml +++ b/.github/workflows/check-go-task.yml @@ -82,7 +82,7 @@ jobs: version: 3.x - name: Install Dependencies - run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev + run: sudo apt update && sudo apt install -y --no-install-recommends build-essential libgtk-3-dev libwebkit2gtk-4.1-0 libappindicator3-dev - name: Check for errors env: From 67db428c24bbcb33e70c0bebbb97c57addd53131 Mon Sep 17 00:00:00 2001 From: Davide Date: Fri, 10 Jan 2025 15:38:01 +0100 Subject: [PATCH 216/233] ci(Taskfile): add install and run tasks for local development with auto-reload (#1003) --- Taskfile.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Taskfile.yml b/Taskfile.yml index b64b12bb5..bba07548e 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -1,6 +1,17 @@ version: "3" tasks: + + install: + desc: Install dependencies for local development + cmds: + - go install github.com/githubnemo/CompileDaemon@v1.4.0 + + run: + desc: Run the project locally with auto-reload and data race detector + cmds: + - CompileDaemon -build="go build -race" -command="./arduino-create-agent" -graceful-kill=true + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies-task/Taskfile.yml general:cache-dep-licenses: desc: Cache dependency license metadata From 1eb1d343d708ea334eadbac4519754c6ef3cda9f Mon Sep 17 00:00:00 2001 From: Davide Date: Thu, 16 Jan 2025 17:44:05 +0100 Subject: [PATCH 217/233] fix: name of arch macos build (#1008) --- .github/workflows/publish-go-tester-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 864f21c5f..1c1a73bab 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -130,7 +130,7 @@ jobs: mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_amd64 if: runner.os == 'macOS' - - name: Build the Agent for macos amd 64 + - name: Build the Agent for macos arm 64 env: MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac CGO_CFLAGS: -mmacosx-version-min=10.15 From f1ca3c9305d8875bf337dcabd62194f365d603e7 Mon Sep 17 00:00:00 2001 From: Davide Date: Fri, 17 Jan 2025 12:23:29 +0100 Subject: [PATCH 218/233] ci: update macOS version in publish workflow to macos-13 (#1007) * ci: update macOS version in workflows from macos-13 --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 1c1a73bab..8e72c351a 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -65,7 +65,7 @@ jobs: #use the strategy instead because we still use the native build strategy: matrix: - os: [ubuntu-20.04, windows-2019, macos-12] + os: [ubuntu-20.04, windows-2019, macos-13] arch: [-amd64] include: - os: windows-2019 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index af37a9b85..3b2a210d9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: prerelease: ${{ steps.prerelease.outputs.IS_PRE }} strategy: matrix: - os: [ubuntu-20.04, windows-2019, macos-12] + os: [ubuntu-20.04, windows-2019, macos-13] arch: [amd64] include: - os: windows-2019 @@ -116,7 +116,7 @@ jobs: run: | task go:build mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_amd64 - if: matrix.os == 'macos-12' + if: matrix.os == 'macos-13' - name: Build the Agent for macos arm64 env: @@ -128,13 +128,13 @@ jobs: run: | task go:build mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_arm64 - if: matrix.os == 'macos-12' + if: matrix.os == 'macos-13' - name: Create universal macos executable run: | lipo -create -output ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME }}_amd64 ${{ env.PROJECT_NAME }}_arm64 rm ${{ env.PROJECT_NAME }}_amd64 ${{ env.PROJECT_NAME }}_arm64 - if: matrix.os == 'macos-12' + if: matrix.os == 'macos-13' # this will create `public/` dir with compressed full bin (/-.gz) and a json file - name: Create autoupdate files @@ -146,7 +146,7 @@ jobs: run: | cp darwin-amd64.json darwin-arm64.json cp ${TAG_VERSION}/darwin-amd64.gz ${TAG_VERSION}/darwin-arm64.gz - if: matrix.os == 'macos-12' && steps.prerelease.outputs.IS_PRE != 'true' + if: matrix.os == 'macos-13' && steps.prerelease.outputs.IS_PRE != 'true' - name: Create autoupdate files for win32 run: go-selfupdate -platform windows-${{ matrix.arch }} ${{ env.PROJECT_NAME }}${{ matrix.ext }} ${TAG_VERSION} @@ -181,7 +181,7 @@ jobs: matrix: arch: [amd64, arm64] - runs-on: macos-12 + runs-on: macos-13 env: EXE_PATH: "skel/ArduinoCloudAgent.app/Contents/MacOS/" @@ -195,7 +195,7 @@ jobs: - name: Download artifact uses: actions/download-artifact@v4 with: - name: ${{ env.PROJECT_NAME }}-macos-12-amd64 # if we want to support darwin-arm64 in the future for real this has to change. + name: ${{ env.PROJECT_NAME }}-macos-13-amd64 # if we want to support darwin-arm64 in the future for real this has to change. path: ${{ env.EXE_PATH }} - name: Remove placeholder file @@ -252,7 +252,7 @@ jobs: matrix: arch: [amd64, arm64] - runs-on: macos-12 + runs-on: macos-13 env: GON_PATH: ${{ github.workspace }}/gon needs: [build, create-macos-bundle] @@ -509,7 +509,7 @@ jobs: matrix: arch: [amd64] - runs-on: macos-12 + runs-on: macos-13 steps: - name: Checkout repo with icons/background uses: actions/checkout@v4 From 1b94cccb9865c34bb10a80e505eab8700e06cda0 Mon Sep 17 00:00:00 2001 From: Davide Date: Tue, 21 Jan 2025 09:28:50 +0100 Subject: [PATCH 219/233] fix(serialport): data race on the `isClosing` bool status of the serial port (#1009) * fix: use atomic boolean for thread-safe isClosing flag --- serialport.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/serialport.go b/serialport.go index a11483f63..0d386bbfc 100755 --- a/serialport.go +++ b/serialport.go @@ -20,6 +20,7 @@ import ( "encoding/base64" "io" "strconv" + "sync/atomic" "time" "unicode/utf8" @@ -43,7 +44,7 @@ type serport struct { // Keep track of whether we're being actively closed // just so we don't show scary error messages - isClosing bool + isClosing atomic.Bool isClosingDueToError bool @@ -85,7 +86,7 @@ func (p *serport) reader(buftype string) { bufferPart := serialBuffer[:n] //if we detect that port is closing, break out of this for{} loop. - if p.isClosing { + if p.isClosing.Load() { strmsg := "Shutting down reader on " + p.portConf.Name log.Println(strmsg) h.broadcastSys <- []byte(strmsg) @@ -348,7 +349,8 @@ func spHandlerOpen(portname string, baud int, buftype string) { } func (p *serport) Close() { - p.isClosing = true + p.isClosing.Store(true) + p.bufferwatcher.Close() p.portIo.Close() serialPorts.MarkPortAsClosed(p.portName) From f0857f0c65a5178b5798d92365310f01c78da766 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sat, 1 Mar 2025 20:35:55 -0800 Subject: [PATCH 220/233] Use canonical github/setup-licensed action in dependencies license check workflow This GitHub Actions action is used by the dependencies license check workflow to install the "Licensed" tool in the runner workspace. At the time the workflow was developed, the action was owned by GitHub user `jonabc`, and so the action was referenced as `jonabc/setup-licensed` in the workflow. Since that time, the action was transferred to the `github` GitHub organization. Making things more confusing is the fact that GitHub user `jonabc` now has a development fork of the `github/setup-licensed` repository, meaning that the redirect GitHub provides from the old to the new repository after a transfer does not exist for this action. This resulted in the workflow referencing an outdated copy of the action not intended for production use. The workflow is hereby updated to use the canonical "github/setup-licensed" action. --- .github/workflows/check-go-dependencies-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 5b78888bb..183899c2d 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -124,7 +124,7 @@ jobs: submodules: recursive - name: Install licensed - uses: jonabc/setup-licensed@v1 + uses: github/setup-licensed@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} version: 3.x From 2bf6e95284d1ff223feff780d4858310d3b128d6 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sat, 1 Mar 2025 20:39:20 -0800 Subject: [PATCH 221/233] Use latest version of "github/setup-licensed" action The "github/setup-licensed" action is used by the dependencies license check workflow to install the "Licensed" tool in the runner machine. Previously the `v1` major version ref of the action was specified in the workflow. This approach is used in order to allow the workflow to automatically always use the latest minor version of the action, only requiring the project maintainers to perform a bump of the action after each major version release. In a competently maintained action project, the major version ref will be updated after each release within that major version series so that it always points to the latest release version. Unfortunately that was not done by the "github/setup-licensed" action maintainers. This means that the use of the `v1` ref in the workflow causes an outdated version of the action to be used. This has been reported to the action maintainers, but unfortunately instead of fixing the problem they archived the repository, so there is no hope of it being resolved. The solution is to replace the major version ref with the ref for the latest release tag. This won't result in an increased maintenance burden because the action repository is archived and thus there won't be any bumps. --- .github/workflows/check-go-dependencies-task.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 183899c2d..a72d247ac 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -124,7 +124,7 @@ jobs: submodules: recursive - name: Install licensed - uses: github/setup-licensed@v1 + uses: github/setup-licensed@v1.3.1 with: github_token: ${{ secrets.GITHUB_TOKEN }} version: 3.x From 26bd5667ba31bb2b5e7e19bfa4a33ad6bbf0802f Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 2 Mar 2025 02:11:53 -0800 Subject: [PATCH 222/233] Use maintained fork of "setup-licensed" action in dependencies license check workflow This GitHub Actions action is used by the dependencies license check workflow to install the "Licensed" tool in the runner workspace. The action has a convoluted history: the repository was originally owned by GitHub user `jonabc`. It was later transferred to the `github` organization. Then GitHub abandoned the project, archiving the repository. The `licensee` organization has now created a hard fork of the action, which is recommended in the readme of the `github/setup-licensed` repository. The `licensee` organization has also taken over the management of the "Licensed" tool, and their `licensee` Ruby gem is a significant dependency of "Licensed". So they will be best equipped to maintain the action going forward. The workflow is hereby updated to use the canonical "licensee/setup-licensed" action. The "licensee/setup-licensed" action maintainers have not provided a major version ref, so it is necessary to pin the action to the latest release tag. --- .github/workflows/check-go-dependencies-task.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index a72d247ac..aa7b26e3f 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -73,7 +73,7 @@ jobs: submodules: recursive - name: Install licensed - uses: jonabc/setup-licensed@v1 + uses: licensee/setup-licensed@v1.3.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} version: 3.x @@ -124,7 +124,7 @@ jobs: submodules: recursive - name: Install licensed - uses: github/setup-licensed@v1.3.1 + uses: licensee/setup-licensed@v1.3.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} version: 3.x From 1f89384366920359c063e18ef704f6d39413b6a8 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 2 Mar 2025 02:43:13 -0800 Subject: [PATCH 223/233] Configure dependency license check workflows to allow "Licensed" install via Gem The "Licensed" tool is used to check the project's compatibility with the licensing of its dependencies. This tool is installed by the dependency license check GitHub Actions workflow using the `licensee/setup-licensed` GitHub Actions action. This action attempts the installation according to the following procedure: 1. Install the Ruby gem. 2. If gem installation fails, install the pre-built executable from the GitHub release asset in the `licensee/licensed` repo. Previously, the first of these installation methods was failing: ```text /usr/bin/gem install licensed -v 3.9.1 ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/3.2.0 directory. /usr/lib/ruby/vendor_ruby/rubygems/installer.rb:713:in `verify_gem_home' /usr/lib/ruby/vendor_ruby/rubygems/installer.rb:903:in `pre_install_checks' /usr/lib/ruby/vendor_ruby/rubygems/installer.rb:303:in `install' /usr/lib/ruby/vendor_ruby/rubygems/resolver/specification.rb:105:in `install' /usr/lib/ruby/vendor_ruby/rubygems/request_set.rb:195:in `block in install' /usr/lib/ruby/vendor_ruby/rubygems/request_set.rb:183:in `each' /usr/lib/ruby/vendor_ruby/rubygems/request_set.rb:183:in `install' /usr/lib/ruby/vendor_ruby/rubygems/commands/install_command.rb:215:in `install_gem' /usr/lib/ruby/vendor_ruby/rubygems/commands/install_command.rb:231:in `block in install_gems' /usr/lib/ruby/vendor_ruby/rubygems/commands/install_command.rb:224:in `each' /usr/lib/ruby/vendor_ruby/rubygems/commands/install_command.rb:224:in `install_gems' /usr/lib/ruby/vendor_ruby/rubygems/commands/install_command.rb:170:in `execute' /usr/lib/ruby/vendor_ruby/rubygems/command.rb:328:in `invoke_with_build_args' /usr/lib/ruby/vendor_ruby/rubygems/command_manager.rb:253:in `invoke_command' /usr/lib/ruby/vendor_ruby/rubygems/command_manager.rb:193:in `process_args' /usr/lib/ruby/vendor_ruby/rubygems/command_manager.rb:151:in `run' /usr/lib/ruby/vendor_ruby/rubygems/gem_runner.rb:52:in `run' /usr/bin/gem:12:in `
' gem installation was not successful ``` So it falls back on the second installation method. That method works fine when using a version of "Licensed" <4.0.0. However, starting from version 4.0.0, pre-built executable are no longer provided, so the only available installation method for modern versions of "Licensed" is via the Ruby gem. The gem failure can be avoided by setting up an accessible installation of Ruby in the runner machine, which is accomplished using the "ruby/setup-ruby" action in a step preceding the `licensee/setup-licensed` step in the workflow. --- .github/workflows/check-go-dependencies-task.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index aa7b26e3f..67a2944e3 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -72,6 +72,12 @@ jobs: with: submodules: recursive + # This is required to allow licensee/setup-licensed to install Licensed via Ruby gem. + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby # Install latest version + - name: Install licensed uses: licensee/setup-licensed@v1.3.2 with: @@ -123,6 +129,12 @@ jobs: with: submodules: recursive + # This is required to allow licensee/setup-licensed to install Licensed via Ruby gem. + - name: Install Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby # Install latest version + - name: Install licensed uses: licensee/setup-licensed@v1.3.2 with: From b2e28c0345cf4043daa2f011884ecbb1b144b292 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 2 Mar 2025 02:37:28 -0800 Subject: [PATCH 224/233] Bump "Licensed" version in dependencies license check workflow The version of the "Licensed" tool for use in the GitHub Actions workflow is defined via the "licensee/setup-licensed" action's `version` input. Previously the action was configured to install version 3.x of the action. That version is significantly outdated. The workflow is hereby updated to use the latest version of Licensed. --- .github/workflows/check-go-dependencies-task.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-go-dependencies-task.yml b/.github/workflows/check-go-dependencies-task.yml index 67a2944e3..417c525e5 100644 --- a/.github/workflows/check-go-dependencies-task.yml +++ b/.github/workflows/check-go-dependencies-task.yml @@ -82,7 +82,7 @@ jobs: uses: licensee/setup-licensed@v1.3.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} - version: 3.x + version: 5.x - name: Install Go uses: actions/setup-go@v5 @@ -139,7 +139,7 @@ jobs: uses: licensee/setup-licensed@v1.3.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} - version: 3.x + version: 5.x - name: Install Go uses: actions/setup-go@v5 From 0fae57e21178bfb6c6f60ea626f08349d453c2ea Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 2 Mar 2025 03:39:06 -0800 Subject: [PATCH 225/233] Remove trailing space from dependency license metadata The dependency license metadata is generated by the "Licensed" tool. Previous versions of this tool added a trailing space on the `summary` key. Although trailing whitespace in human produced content is not permitted, machine generated content is used as-is, and so these trailing spaces were left in the metadata files. It seems that the defect in the "Licensed" tool that caused the trailing space was fixed in a recent version because it is now absent in the metadata files produced by the tool. The metadata files are hereby updated to use the format of the version of the "Licensed" tool currently in use. --- .../go/github.com/arduino/go-serial-utils.dep.yml | 2 +- .../arduino-create-agent/go/github.com/blang/semver.dep.yml | 2 +- .../arduino-create-agent/go/github.com/creack/goselect.dep.yml | 2 +- .../arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml | 2 +- .../go/github.com/gin-gonic/gin/binding.dep.yml | 2 +- .../go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml | 2 +- .../go/github.com/gin-gonic/gin/internal/json.dep.yml | 2 +- .../go/github.com/gin-gonic/gin/render.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/message.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/parser.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/polling.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/transport.dep.yml | 2 +- .../go/github.com/googollee/go-engine.io/websocket.dep.yml | 2 +- .../arduino-create-agent/go/github.com/h2non/filetype.dep.yml | 2 +- .../go/github.com/h2non/filetype/matchers.dep.yml | 2 +- .../go/github.com/h2non/filetype/matchers/isobmff.dep.yml | 2 +- .../go/github.com/h2non/filetype/types.dep.yml | 2 +- .../go/github.com/mattn/go-shellwords.dep.yml | 2 +- .../github.com/pelletier/go-toml/v2/internal/characters.dep.yml | 2 +- .../go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml | 2 +- .../go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml | 2 +- .../arduino-create-agent/go/github.com/xrash/smetrics.dep.yml | 2 +- .../arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml | 2 +- .../go/golang.org/x/text/internal/language.dep.yml | 2 +- .../go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml index d80310c77..fb7fa6ea5 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/go-serial-utils.dep.yml @@ -2,7 +2,7 @@ name: github.com/arduino/go-serial-utils version: v0.1.2 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/arduino/go-serial-utils license: gpl-3.0 licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml index 3ef4e43fa..d1655fecd 100644 --- a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml @@ -2,7 +2,7 @@ name: github.com/blang/semver version: v3.5.1+incompatible type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/blang/semver license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml b/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml index 2ebe18293..65e69c4c1 100644 --- a/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml @@ -2,7 +2,7 @@ name: github.com/creack/goselect version: v0.1.2 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/creack/goselect license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml index 4895be7a5..c888d59ab 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-contrib/sse.dep.yml @@ -2,7 +2,7 @@ name: github.com/gin-contrib/sse version: v0.1.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-contrib/sse license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml index 6801615fa..a99238ac3 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/binding.dep.yml @@ -2,7 +2,7 @@ name: github.com/gin-gonic/gin/binding version: v1.10.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/binding license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml index c9d7afd9a..97e8d6cb9 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/bytesconv.dep.yml @@ -2,7 +2,7 @@ name: github.com/gin-gonic/gin/internal/bytesconv version: v1.10.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/bytesconv license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml index 57739599b..2551fb8d9 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/internal/json.dep.yml @@ -2,7 +2,7 @@ name: github.com/gin-gonic/gin/internal/json version: v1.10.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/internal/json license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml index 5b0dc5bbb..deb06fb36 100644 --- a/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/gin-gonic/gin/render.dep.yml @@ -2,7 +2,7 @@ name: github.com/gin-gonic/gin/render version: v1.10.0 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/gin-gonic/gin/render license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml index a798ca46f..3d65daba3 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io.dep.yml @@ -2,7 +2,7 @@ name: github.com/googollee/go-engine.io version: v0.0.0-20180829091931-e2f255711dcb type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml index ccf2355f5..55490cf08 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/message.dep.yml @@ -2,7 +2,7 @@ name: github.com/googollee/go-engine.io/message version: v0.0.0-20180829091931-e2f255711dcb type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/message license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml index 0a08396a0..718fadade 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/parser.dep.yml @@ -2,7 +2,7 @@ name: github.com/googollee/go-engine.io/parser version: v0.0.0-20180829091931-e2f255711dcb type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/parser license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml index ccc32fe6e..5692db014 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/polling.dep.yml @@ -2,7 +2,7 @@ name: github.com/googollee/go-engine.io/polling version: v0.0.0-20180829091931-e2f255711dcb type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/polling license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml index d48516a8a..430ab5ad5 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/transport.dep.yml @@ -2,7 +2,7 @@ name: github.com/googollee/go-engine.io/transport version: v0.0.0-20180829091931-e2f255711dcb type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/transport license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml index 9eb8de2c2..3718a69b2 100644 --- a/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/googollee/go-engine.io/websocket.dep.yml @@ -2,7 +2,7 @@ name: github.com/googollee/go-engine.io/websocket version: v0.0.0-20180829091931-e2f255711dcb type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/googollee/go-engine.io/websocket license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml index 02102b9ee..ce88ad732 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype.dep.yml @@ -2,7 +2,7 @@ name: github.com/h2non/filetype version: v1.1.3 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/h2non/filetype license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml index e9421e1f8..e441102a1 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers.dep.yml @@ -2,7 +2,7 @@ name: github.com/h2non/filetype/matchers version: v1.1.3 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml index 0a3984965..d18a56f5a 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/matchers/isobmff.dep.yml @@ -2,7 +2,7 @@ name: github.com/h2non/filetype/matchers/isobmff version: v1.1.3 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers/isobmff license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml index f8fe41654..6a3e9ff8c 100644 --- a/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/h2non/filetype/types.dep.yml @@ -2,7 +2,7 @@ name: github.com/h2non/filetype/types version: v1.1.3 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/h2non/filetype/types license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml b/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml index afff99822..742e6604f 100644 --- a/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/mattn/go-shellwords.dep.yml @@ -2,7 +2,7 @@ name: github.com/mattn/go-shellwords version: v1.0.12 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/mattn/go-shellwords license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml index afddf80f5..59a3269ba 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/characters.dep.yml @@ -2,7 +2,7 @@ name: github.com/pelletier/go-toml/v2/internal/characters version: v2.2.2 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/characters license: other licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml index 5fe64d014..36075df83 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/danger.dep.yml @@ -2,7 +2,7 @@ name: github.com/pelletier/go-toml/v2/internal/danger version: v2.2.2 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/danger license: other licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml index 6b73e51e6..954011183 100644 --- a/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/pelletier/go-toml/v2/internal/tracker.dep.yml @@ -2,7 +2,7 @@ name: github.com/pelletier/go-toml/v2/internal/tracker version: v2.2.2 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/pelletier/go-toml/v2/internal/tracker license: other licenses: diff --git a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml index f2795524e..cbd322a2e 100644 --- a/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/xrash/smetrics.dep.yml @@ -2,7 +2,7 @@ name: github.com/xrash/smetrics version: v0.0.0-20170218160415-a3153f7040e9 type: go -summary: +summary: homepage: https://pkg.go.dev/github.com/xrash/smetrics license: mit licenses: diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml index b744d2524..d81d7857c 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml @@ -2,7 +2,7 @@ name: go.bug.st/serial/unixutils version: v1.6.1 type: go -summary: +summary: homepage: https://pkg.go.dev/go.bug.st/serial/unixutils license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml index 988bad3c9..4a392d8cf 100644 --- a/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml +++ b/.licenses/arduino-create-agent/go/golang.org/x/text/internal/language.dep.yml @@ -2,7 +2,7 @@ name: golang.org/x/text/internal/language version: v0.15.0 type: go -summary: +summary: homepage: https://pkg.go.dev/golang.org/x/text/internal/language license: bsd-3-clause licenses: diff --git a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml index 5894a7618..12e0b1dcf 100644 --- a/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml +++ b/.licenses/arduino-create-agent/go/gopkg.in/inconshreveable/go-update.v0/download.dep.yml @@ -2,7 +2,7 @@ name: gopkg.in/inconshreveable/go-update.v0/download version: v0.0.0-20150814200126-d8b0b1d421aa type: go -summary: +summary: homepage: https://pkg.go.dev/gopkg.in/inconshreveable/go-update.v0/download license: apache-2.0 licenses: From bfab101eddb16374c6f97e29a0a240e15e5a5af7 Mon Sep 17 00:00:00 2001 From: per1234 Date: Sun, 2 Mar 2025 03:42:05 -0800 Subject: [PATCH 226/233] Add generated YAML document end markers to dependency license metadata cache The dependency license metadata is generated by the "Licensed" tool. The version of the tool now in use adds YAML document end markers to some metadata files, which were not present in the files generated by the tool at the time the cache was established. I don't know why it adds these markers to only some of the metadata files, but they are valid (though optional so the files without are also correct) and machine generated content is used as-is. The metadata files are hereby updated to use the format produced by the version of the "Licensed" tool currently in use. --- .../arduino-create-agent/go/github.com/blang/semver.dep.yml | 1 + .../arduino-create-agent/go/github.com/creack/goselect.dep.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml index d1655fecd..39cce428f 100644 --- a/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/blang/semver.dep.yml @@ -33,3 +33,4 @@ licenses: - sources: README.md text: See [LICENSE](LICENSE) file. notices: [] +... diff --git a/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml b/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml index 65e69c4c1..0785cd02c 100644 --- a/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/creack/goselect.dep.yml @@ -33,3 +33,4 @@ licenses: - sources: README.md text: Released under the [MIT license](LICENSE). notices: [] +... From 5fcb7c47f666bdb2f85188e7968ccde698b44c40 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Wed, 19 Mar 2025 10:08:36 +0100 Subject: [PATCH 227/233] Updated go-serial and pluggable-discovery-protocol-handler (#1023) --- .../pluggable-discovery-protocol-handler/v2.dep.yml | 2 +- .../arduino-create-agent/go/go.bug.st/serial.dep.yml | 6 +++--- .../go/go.bug.st/serial/enumerator.dep.yml | 10 +++++----- .../go/go.bug.st/serial/unixutils.dep.yml | 12 ++++++------ go.mod | 4 ++-- go.sum | 8 ++++---- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml b/.licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml index 2fdbca217..0825582ba 100644 --- a/.licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml +++ b/.licenses/arduino-create-agent/go/github.com/arduino/pluggable-discovery-protocol-handler/v2.dep.yml @@ -1,6 +1,6 @@ --- name: github.com/arduino/pluggable-discovery-protocol-handler/v2 -version: v2.2.0 +version: v2.2.1 type: go summary: Package discovery is a library for handling the Arduino Pluggable-Discovery protocol (https://github.com/arduino/tooling-rfcs/blob/main/RFCs/0002-pluggable-discovery.md#pluggable-discovery-api-via-stdinstdout) diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml index c55d351d0..3c29440df 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml @@ -1,6 +1,6 @@ --- name: go.bug.st/serial -version: v1.6.1 +version: v1.6.3 type: go summary: Package serial is a cross-platform serial library for the go language. homepage: https://pkg.go.dev/go.bug.st/serial @@ -9,7 +9,7 @@ licenses: - sources: LICENSE text: |2+ - Copyright (c) 2014-2023, Cristian Maglie. + Copyright (c) 2014-2024, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -43,7 +43,7 @@ licenses: - sources: README.md text: |- - The software is release under a [BSD 3-clause license] + This software is released under the [BSD 3-clause license]. [contributors]: https://github.com/bugst/go-serial/graphs/contributors [BSD 3-clause license]: https://github.com/bugst/go-serial/blob/master/LICENSE diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml index 7743f09d9..4b562e2a1 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml @@ -1,16 +1,16 @@ --- name: go.bug.st/serial/enumerator -version: v1.6.1 +version: v1.6.3 type: go summary: Package enumerator is a golang cross-platform library for USB serial port discovery. homepage: https://pkg.go.dev/go.bug.st/serial/enumerator license: bsd-3-clause licenses: -- sources: serial@v1.6.1/LICENSE +- sources: serial@v1.6.3/LICENSE text: |2+ - Copyright (c) 2014-2023, Cristian Maglie. + Copyright (c) 2014-2024, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -42,9 +42,9 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.6.1/README.md +- sources: serial@v1.6.3/README.md text: |- - The software is release under a [BSD 3-clause license] + This software is released under the [BSD 3-clause license]. [contributors]: https://github.com/bugst/go-serial/graphs/contributors [BSD 3-clause license]: https://github.com/bugst/go-serial/blob/master/LICENSE diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml index d81d7857c..0e2d5f7da 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml @@ -1,15 +1,15 @@ --- name: go.bug.st/serial/unixutils -version: v1.6.1 +version: v1.6.3 type: go -summary: +summary: homepage: https://pkg.go.dev/go.bug.st/serial/unixutils license: bsd-3-clause licenses: -- sources: serial@v1.6.1/LICENSE +- sources: serial@v1.6.3/LICENSE text: |2+ - Copyright (c) 2014-2023, Cristian Maglie. + Copyright (c) 2014-2024, Cristian Maglie. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,9 +41,9 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.6.1/README.md +- sources: serial@v1.6.3/README.md text: |- - The software is release under a [BSD 3-clause license] + This software is released under the [BSD 3-clause license]. [contributors]: https://github.com/bugst/go-serial/graphs/contributors [BSD 3-clause license]: https://github.com/bugst/go-serial/blob/master/LICENSE diff --git a/go.mod b/go.mod index 82ee10173..19d0eae02 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton github.com/arduino/go-paths-helper v1.12.1 github.com/arduino/go-serial-utils v0.1.2 - github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 + github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.1 github.com/blang/semver v3.5.1+incompatible github.com/codeclysm/extract/v4 v4.0.0 github.com/gin-contrib/cors v1.7.2 @@ -21,7 +21,7 @@ require ( github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.9.0 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 - go.bug.st/serial v1.6.1 + go.bug.st/serial v1.6.3 goa.design/goa/v3 v3.16.1 golang.org/x/sys v0.23.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa diff --git a/go.sum b/go.sum index bee2988ac..a46d0bad6 100644 --- a/go.sum +++ b/go.sum @@ -11,8 +11,8 @@ github.com/arduino/go-properties-orderedmap v1.8.0 h1:wEfa6hHdpezrVOh787OmClsf/K github.com/arduino/go-properties-orderedmap v1.8.0/go.mod h1:DKjD2VXY/NZmlingh4lSFMEYCVubfeArCsGPGDwb2yk= github.com/arduino/go-serial-utils v0.1.2 h1:MRFwME4w/uaVkJ1R+wzz4KSbI9cF9IDVrYorazvjpTk= github.com/arduino/go-serial-utils v0.1.2/go.mod h1:kzIsNPgz8DFAd1sAFKve4ubxrdGcwQ4XzvRLlztsgnE= -github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0 h1:v7og6LpskewFabmaShKVzWXl5MXbmsxaRP3yo4dJta8= -github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.0/go.mod h1:1dgblsmK2iBx3L5iNTyRIokeaxbTLUrYiUbHBK6yC3Y= +github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.1 h1:Fw8zKj1b/FkcQrWgN7aBw3ubSxpKIUtdANLXvd1Qdzw= +github.com/arduino/pluggable-discovery-protocol-handler/v2 v2.2.1/go.mod h1:1dgblsmK2iBx3L5iNTyRIokeaxbTLUrYiUbHBK6yC3Y= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= @@ -159,8 +159,8 @@ github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -go.bug.st/serial v1.6.1 h1:VSSWmUxlj1T/YlRo2J104Zv3wJFrjHIl/T3NeruWAHY= -go.bug.st/serial v1.6.1/go.mod h1:UABfsluHAiaNI+La2iESysd9Vetq7VRdpxvjx7CmmOE= +go.bug.st/serial v1.6.3 h1:S3OG1bH+IDyokVndKrzwxI9ywiGBd8sWOn08dzSqEQI= +go.bug.st/serial v1.6.3/go.mod h1:nofMJxTeNVny/m6+KaafC6vJGj3miwQZ6vW4BZUGJPI= goa.design/goa/v3 v3.16.1 h1:yZwbKrfMpE8+sz0uf+n+BtArVOFQ0kNSC0twQKwQb04= goa.design/goa/v3 v3.16.1/go.mod h1:Yd42LR0PYDbHSbsbF3vNd4YY/O+LG20Jb7+IyNdkQic= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= From 5063c6c5fa0afa2f553b11f582f3f9b2921aa766 Mon Sep 17 00:00:00 2001 From: Davide Date: Wed, 26 Mar 2025 14:30:46 +0100 Subject: [PATCH 228/233] fix(release.yml) install go step for gon (#1025) --- .github/workflows/release.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b2a210d9..6275922c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -259,6 +259,11 @@ jobs: environment: production steps: + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GO_VERSION }} + - name: Download artifact uses: actions/download-artifact@v4 with: From 901728dadac8e48dc8acdc8692ee70d9d13ddb65 Mon Sep 17 00:00:00 2001 From: Davide Date: Thu, 27 Mar 2025 09:54:39 +0100 Subject: [PATCH 229/233] fix: allow to specify custom `signatureKey` in the `config.ini` (#1024) * make the signaturePubKey overwritable * Add debug logging for signature key parsing and handle newline escape sequences * Add MustParseRsaPublicKey function for parsing PEM formatted public keys * Remove debug print statement for signature key and fix comment typo in key parsing logic * Add error logging for command verification and update comment for public key usage * refactor(main.go) remove unnecessary print statement in parseIni function * refactor(utilities): improve formatting in ParseRsaPublicKey function * style(tools): align field declarations for improved readability --------- Co-authored-by: Luca Rinaldi --- conn.go | 158 +++++++++++++++++++++-------------------- globals/globals.go | 13 +++- main.go | 16 +++-- main_test.go | 10 +-- tools/download_test.go | 6 +- tools/tools.go | 5 +- utilities/utilities.go | 45 ++++++++---- v2/http.go | 5 +- v2/pkgs/tools.go | 27 +++---- v2/pkgs/tools_test.go | 10 +-- 10 files changed, 172 insertions(+), 123 deletions(-) diff --git a/conn.go b/conn.go index b6e03268c..8c71c54c4 100644 --- a/conn.go +++ b/conn.go @@ -19,6 +19,7 @@ package main import ( "bytes" + "crypto/rsa" "encoding/json" "errors" "fmt" @@ -79,111 +80,114 @@ type Upload struct { var uploadStatusStr = "ProgrammerStatus" -func uploadHandler(c *gin.Context) { - data := new(Upload) - if err := c.BindJSON(data); err != nil { - c.String(http.StatusBadRequest, fmt.Sprintf("err with the payload. %v", err.Error())) - return - } - - log.Printf("%+v %+v %+v %+v %+v %+v", data.Port, data.Board, data.Rewrite, data.Commandline, data.Extra, data.Filename) - - if data.Port == "" { - c.String(http.StatusBadRequest, "port is required") - return - } - - if data.Board == "" { - c.String(http.StatusBadRequest, "board is required") - log.Error("board is required") - return - } - - if !data.Extra.Network { - if data.Signature == "" { - c.String(http.StatusBadRequest, "signature is required") +func uploadHandler(pubKey *rsa.PublicKey) func(*gin.Context) { + return func(c *gin.Context) { + data := new(Upload) + if err := c.BindJSON(data); err != nil { + c.String(http.StatusBadRequest, fmt.Sprintf("err with the payload. %v", err.Error())) return } - if data.Commandline == "" { - c.String(http.StatusBadRequest, "commandline is required for local board") + log.Printf("%+v %+v %+v %+v %+v %+v", data.Port, data.Board, data.Rewrite, data.Commandline, data.Extra, data.Filename) + + if data.Port == "" { + c.String(http.StatusBadRequest, "port is required") return } - err := utilities.VerifyInput(data.Commandline, data.Signature) - - if err != nil { - c.String(http.StatusBadRequest, "signature is invalid") + if data.Board == "" { + c.String(http.StatusBadRequest, "board is required") + log.Error("board is required") return } - } - buffer := bytes.NewBuffer(data.Hex) + if !data.Extra.Network { + if data.Signature == "" { + c.String(http.StatusBadRequest, "signature is required") + return + } - filePath, err := utilities.SaveFileonTempDir(data.Filename, buffer) - if err != nil { - c.String(http.StatusBadRequest, err.Error()) - return - } + if data.Commandline == "" { + c.String(http.StatusBadRequest, "commandline is required for local board") + return + } - tmpdir, err := os.MkdirTemp("", "extrafiles") - if err != nil { - c.String(http.StatusBadRequest, err.Error()) - return - } + err := utilities.VerifyInput(data.Commandline, data.Signature, pubKey) - for _, extraFile := range data.ExtraFiles { - path, err := utilities.SafeJoin(tmpdir, extraFile.Filename) - if err != nil { - c.String(http.StatusBadRequest, err.Error()) - return + if err != nil { + log.WithField("err", err).Error("Error verifying the command") + c.String(http.StatusBadRequest, "signature is invalid") + return + } } - log.Printf("Saving %s on %s", extraFile.Filename, path) - err = os.MkdirAll(filepath.Dir(path), 0744) - if err != nil { - c.String(http.StatusBadRequest, err.Error()) - return - } + buffer := bytes.NewBuffer(data.Hex) - err = os.WriteFile(path, extraFile.Hex, 0644) + filePath, err := utilities.SaveFileonTempDir(data.Filename, buffer) if err != nil { c.String(http.StatusBadRequest, err.Error()) return } - } - if data.Rewrite != "" { - data.Board = data.Rewrite - } - - go func() { - // Resolve commandline - commandline, err := upload.PartiallyResolve(data.Board, filePath, tmpdir, data.Commandline, data.Extra, Tools) + tmpdir, err := os.MkdirTemp("", "extrafiles") if err != nil { - send(map[string]string{uploadStatusStr: "Error", "Msg": err.Error()}) + c.String(http.StatusBadRequest, err.Error()) return } - l := PLogger{Verbose: true} - - // Upload - if data.Extra.Network { - err = errors.New("network upload is not supported anymore, pease use OTA instead") - } else { - send(map[string]string{uploadStatusStr: "Starting", "Cmd": "Serial"}) - err = upload.Serial(data.Port, commandline, data.Extra, l) + for _, extraFile := range data.ExtraFiles { + path, err := utilities.SafeJoin(tmpdir, extraFile.Filename) + if err != nil { + c.String(http.StatusBadRequest, err.Error()) + return + } + log.Printf("Saving %s on %s", extraFile.Filename, path) + + err = os.MkdirAll(filepath.Dir(path), 0744) + if err != nil { + c.String(http.StatusBadRequest, err.Error()) + return + } + + err = os.WriteFile(path, extraFile.Hex, 0644) + if err != nil { + c.String(http.StatusBadRequest, err.Error()) + return + } } - // Handle result - if err != nil { - send(map[string]string{uploadStatusStr: "Error", "Msg": err.Error()}) - return + if data.Rewrite != "" { + data.Board = data.Rewrite } - send(map[string]string{uploadStatusStr: "Done", "Flash": "Ok"}) - }() - c.String(http.StatusAccepted, "") + go func() { + // Resolve commandline + commandline, err := upload.PartiallyResolve(data.Board, filePath, tmpdir, data.Commandline, data.Extra, Tools) + if err != nil { + send(map[string]string{uploadStatusStr: "Error", "Msg": err.Error()}) + return + } + + l := PLogger{Verbose: true} + + // Upload + if data.Extra.Network { + err = errors.New("network upload is not supported anymore, pease use OTA instead") + } else { + send(map[string]string{uploadStatusStr: "Starting", "Cmd": "Serial"}) + err = upload.Serial(data.Port, commandline, data.Extra, l) + } + + // Handle result + if err != nil { + send(map[string]string{uploadStatusStr: "Error", "Msg": err.Error()}) + return + } + send(map[string]string{uploadStatusStr: "Done", "Flash": "Ok"}) + }() + + c.String(http.StatusAccepted, "") + } } // PLogger sends the info from the upload to the websocket diff --git a/globals/globals.go b/globals/globals.go index d7cb09a17..ac4c14666 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -15,8 +15,15 @@ package globals -// DefaultIndexURL is the default index url var ( - // SignatureKey is the public key used to verify commands and url sent by the builder - SignatureKey = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF\nIE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1\nZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1\npFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z\nCeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn\n2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9\ntwIDAQAB\n-----END PUBLIC KEY-----" + // ArduinoSignaturePubKey is the public key used to verify commands and url sent by the builder + ArduinoSignaturePubKey = `-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvc0yZr1yUSen7qmE3cxF +IE12rCksDnqR+Hp7o0nGi9123eCSFcJ7CkIRC8F+8JMhgI3zNqn4cUEn47I3RKD1 +ZChPUCMiJCvbLbloxfdJrUi7gcSgUXrlKQStOKF5Iz7xv1M4XOP3JtjXLGo3EnJ1 +pFgdWTOyoSrA8/w1rck4c/ISXZSinVAggPxmLwVEAAln6Itj6giIZHKvA2fL2o8z +CeK057Lu8X6u2CG8tRWSQzVoKIQw/PKK6CNXCAy8vo4EkXudRutnEYHEJlPkVgPn +2qP06GI+I+9zKE37iqj0k1/wFaCVXHXIvn06YrmjQw6I0dDj/60Wvi500FuRVpn9 +twIDAQAB +-----END PUBLIC KEY-----` ) diff --git a/main.go b/main.go index 1ca857b02..41f824b1b 100755 --- a/main.go +++ b/main.go @@ -81,7 +81,7 @@ var ( logDump = iniConf.String("log", "off", "off = (default)") origins = iniConf.String("origins", "", "Allowed origin list for CORS") portsFilterRegexp = iniConf.String("regex", "usb|acm|com", "Regular expression to filter serial port list") - signatureKey = iniConf.String("signatureKey", globals.SignatureKey, "Pem-encoded public key to verify signed commandlines") + signatureKey = iniConf.String("signatureKey", globals.ArduinoSignaturePubKey, "Pem-encoded public key to verify signed commandlines") updateURL = iniConf.String("updateUrl", "", "") verbose = iniConf.Bool("v", true, "show debug logging") crashreport = iniConf.Bool("crashreport", false, "enable crashreport logging") @@ -278,9 +278,17 @@ func loop() { } } + if signatureKey == nil || len(*signatureKey) == 0 { + log.Panicf("signature public key should be set") + } + signaturePubKey, err := utilities.ParseRsaPublicKey([]byte(*signatureKey)) + if err != nil { + log.Panicf("cannot parse signature key '%s'. %s", *signatureKey, err) + } + // Instantiate Index and Tools Index = index.Init(*indexURL, config.GetDataDir()) - Tools = tools.New(config.GetDataDir(), Index, logger) + Tools = tools.New(config.GetDataDir(), Index, logger, signaturePubKey) // see if we are supposed to wait 5 seconds if *isLaunchSelf { @@ -454,7 +462,7 @@ func loop() { r.LoadHTMLFiles("templates/nofirefox.html") r.GET("/", homeHandler) - r.POST("/upload", uploadHandler) + r.POST("/upload", uploadHandler(signaturePubKey)) r.GET("/socket.io/", socketHandler) r.POST("/socket.io/", socketHandler) r.Handle("WS", "/socket.io/", socketHandler) @@ -464,7 +472,7 @@ func loop() { r.POST("/update", updateHandler) // Mount goa handlers - goa := v2.Server(config.GetDataDir().String(), Index) + goa := v2.Server(config.GetDataDir().String(), Index, signaturePubKey) r.Any("/v2/*path", gin.WrapH(goa)) go func() { diff --git a/main_test.go b/main_test.go index d6f23fcec..1387fd221 100644 --- a/main_test.go +++ b/main_test.go @@ -30,8 +30,10 @@ import ( "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/globals" "github.com/arduino/arduino-create-agent/index" "github.com/arduino/arduino-create-agent/upload" + "github.com/arduino/arduino-create-agent/utilities" v2 "github.com/arduino/arduino-create-agent/v2" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" @@ -54,7 +56,7 @@ func TestValidSignatureKey(t *testing.T) { func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { r := gin.New() - r.POST("/", uploadHandler) + r.POST("/", uploadHandler(utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey)))) ts := httptest.NewServer(r) uploadEvilFileName := Upload{ @@ -90,7 +92,7 @@ func TestUploadHandlerAgainstEvilFileNames(t *testing.T) { func TestUploadHandlerAgainstBase64WithoutPaddingMustFail(t *testing.T) { r := gin.New() - r.POST("/", uploadHandler) + r.POST("/", uploadHandler(utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey)))) ts := httptest.NewServer(r) defer ts.Close() @@ -119,7 +121,7 @@ func TestInstallToolV2(t *testing.T) { Index := index.Init(indexURL, config.GetDataDir()) r := gin.New() - goa := v2.Server(config.GetDataDir().String(), Index) + goa := v2.Server(config.GetDataDir().String(), Index, utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) r.Any("/v2/*path", gin.WrapH(goa)) ts := httptest.NewServer(r) @@ -213,7 +215,7 @@ func TestInstalledHead(t *testing.T) { Index := index.Init(indexURL, config.GetDataDir()) r := gin.New() - goa := v2.Server(config.GetDataDir().String(), Index) + goa := v2.Server(config.GetDataDir().String(), Index, utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) r.Any("/v2/*path", gin.WrapH(goa)) ts := httptest.NewServer(r) diff --git a/tools/download_test.go b/tools/download_test.go index 7cf2fab0d..96a105fd7 100644 --- a/tools/download_test.go +++ b/tools/download_test.go @@ -21,7 +21,9 @@ import ( "testing" "time" + "github.com/arduino/arduino-create-agent/globals" "github.com/arduino/arduino-create-agent/index" + "github.com/arduino/arduino-create-agent/utilities" "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/require" @@ -128,7 +130,7 @@ func TestDownload(t *testing.T) { IndexFile: *paths.New("testdata", "test_tool_index.json"), LastRefresh: time.Now(), } - testTools := New(tempDirPath, &testIndex, func(msg string) { t.Log(msg) }) + testTools := New(tempDirPath, &testIndex, func(msg string) { t.Log(msg) }, utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) for _, tc := range testCases { t.Run(tc.name+"-"+tc.version, func(t *testing.T) { @@ -175,7 +177,7 @@ func TestCorruptedInstalled(t *testing.T) { defer fileJSON.Close() _, err = fileJSON.Write([]byte("Hello")) require.NoError(t, err) - testTools := New(tempDirPath, &testIndex, func(msg string) { t.Log(msg) }) + testTools := New(tempDirPath, &testIndex, func(msg string) { t.Log(msg) }, utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) // Download the tool err = testTools.Download("arduino-test", "avrdude", "6.3.0-arduino17", "keep") require.NoError(t, err) diff --git a/tools/tools.go b/tools/tools.go index 5cecc5089..f371126b5 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -16,6 +16,7 @@ package tools import ( + "crypto/rsa" "encoding/json" "path/filepath" "strings" @@ -55,14 +56,14 @@ type Tools struct { // The New functions accept the directory to use to host the tools, // an index (used to download the tools), // and a logger to log the operations -func New(directory *paths.Path, index *index.Resource, logger func(msg string)) *Tools { +func New(directory *paths.Path, index *index.Resource, logger func(msg string), signPubKey *rsa.PublicKey) *Tools { t := &Tools{ directory: directory, index: index, logger: logger, installed: map[string]string{}, mutex: sync.RWMutex{}, - tools: pkgs.New(index, directory.String(), "replace"), + tools: pkgs.New(index, directory.String(), "replace", signPubKey), } _ = t.readMap() return t diff --git a/utilities/utilities.go b/utilities/utilities.go index 5979732d4..662672da7 100644 --- a/utilities/utilities.go +++ b/utilities/utilities.go @@ -30,8 +30,6 @@ import ( "os/exec" "path/filepath" "strings" - - "github.com/arduino/arduino-create-agent/globals" ) // SaveFileonTempDir creates a temp directory and saves the file data as the @@ -131,23 +129,44 @@ func SafeJoin(parent, subdir string) (string, error) { return res, nil } -// VerifyInput will verify an input against a signature +// VerifyInput will verify an input against a signature using the public key. // A valid signature is indicated by returning a nil error. -func VerifyInput(input string, signature string) error { +func VerifyInput(input string, signature string, pubKey *rsa.PublicKey) error { sign, _ := hex.DecodeString(signature) - block, _ := pem.Decode([]byte(globals.SignatureKey)) + h := sha256.New() + h.Write([]byte(input)) + d := h.Sum(nil) + return rsa.VerifyPKCS1v15(pubKey, crypto.SHA256, d, sign) +} + +// ParseRsaPublicKey parses a public key in PEM format and returns the rsa.PublicKey object. +// Returns an error if the key is invalid. +func ParseRsaPublicKey(key []byte) (*rsa.PublicKey, error) { + block, _ := pem.Decode(key) if block == nil { - return errors.New("invalid key") + return nil, errors.New("invalid key") } - key, err := x509.ParsePKIXPublicKey(block.Bytes) + + parsedKey, err := x509.ParsePKIXPublicKey(block.Bytes) if err != nil { - return err + return nil, err } - rsaKey := key.(*rsa.PublicKey) - h := sha256.New() - h.Write([]byte(input)) - d := h.Sum(nil) - return rsa.VerifyPKCS1v15(rsaKey, crypto.SHA256, d, sign) + + publicKey, ok := parsedKey.(*rsa.PublicKey) + if !ok { + return nil, fmt.Errorf("not an rsa key") + } + return publicKey, nil +} + +// MustParseRsaPublicKey parses a public key in PEM format and returns the rsa.PublicKey object. +// Panics if the key is invalid. +func MustParseRsaPublicKey(key []byte) *rsa.PublicKey { + parsedKey, err := ParseRsaPublicKey(key) + if err != nil { + panic(err) + } + return parsedKey } // UserPrompt executes an osascript and returns the pressed button diff --git a/v2/http.go b/v2/http.go index 390ec3989..2b47b93a8 100644 --- a/v2/http.go +++ b/v2/http.go @@ -17,6 +17,7 @@ package v2 import ( "context" + "crypto/rsa" "encoding/json" "net/http" @@ -31,7 +32,7 @@ import ( ) // Server is the actual server -func Server(directory string, index *index.Resource) http.Handler { +func Server(directory string, index *index.Resource, pubKey *rsa.PublicKey) http.Handler { mux := goahttp.NewMuxer() // Instantiate logger @@ -40,7 +41,7 @@ func Server(directory string, index *index.Resource) http.Handler { logAdapter := LogAdapter{Logger: logger} // Mount tools - toolsSvc := pkgs.New(index, directory, "replace") + toolsSvc := pkgs.New(index, directory, "replace", pubKey) toolsEndpoints := toolssvc.NewEndpoints(toolsSvc) toolsServer := toolssvr.New(toolsEndpoints, mux, CustomRequestDecoder, goahttp.ResponseEncoder, errorHandler(logger), nil) toolssvr.Mount(mux, toolsServer) diff --git a/v2/pkgs/tools.go b/v2/pkgs/tools.go index f09dc3f0a..7f34e3d08 100644 --- a/v2/pkgs/tools.go +++ b/v2/pkgs/tools.go @@ -18,6 +18,7 @@ package pkgs import ( "bytes" "context" + "crypto/rsa" "crypto/sha256" "encoding/hex" "encoding/json" @@ -58,23 +59,25 @@ var ( // // It requires an Index Resource to search for tools type Tools struct { - index *index.Resource - folder string - behaviour string - installed map[string]string - mutex sync.RWMutex + index *index.Resource + folder string + behaviour string + installed map[string]string + mutex sync.RWMutex + verifySignaturePubKey *rsa.PublicKey // public key used to verify the signature of a command sent to the boards } // New will return a Tool object, allowing the caller to execute operations on it. // The New function will accept an index as parameter (used to download the indexes) // and a folder used to download the indexes -func New(index *index.Resource, folder, behaviour string) *Tools { +func New(index *index.Resource, folder, behaviour string, verifySignaturePubKey *rsa.PublicKey) *Tools { t := &Tools{ - index: index, - folder: folder, - behaviour: behaviour, - installed: map[string]string{}, - mutex: sync.RWMutex{}, + index: index, + folder: folder, + behaviour: behaviour, + installed: map[string]string{}, + mutex: sync.RWMutex{}, + verifySignaturePubKey: verifySignaturePubKey, } t.readInstalled() return t @@ -166,7 +169,7 @@ func (t *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools //if URL is defined and is signed we verify the signature and override the name, payload, version parameters if payload.URL != nil && payload.Signature != nil && payload.Checksum != nil { - err := utilities.VerifyInput(*payload.URL, *payload.Signature) + err := utilities.VerifyInput(*payload.URL, *payload.Signature, t.verifySignaturePubKey) if err != nil { return nil, err } diff --git a/v2/pkgs/tools_test.go b/v2/pkgs/tools_test.go index edd575fc8..7bf0ff0e3 100644 --- a/v2/pkgs/tools_test.go +++ b/v2/pkgs/tools_test.go @@ -25,7 +25,9 @@ import ( "github.com/arduino/arduino-create-agent/config" "github.com/arduino/arduino-create-agent/gen/tools" + "github.com/arduino/arduino-create-agent/globals" "github.com/arduino/arduino-create-agent/index" + "github.com/arduino/arduino-create-agent/utilities" "github.com/arduino/arduino-create-agent/v2/pkgs" "github.com/arduino/go-paths-helper" "github.com/stretchr/testify/require" @@ -45,7 +47,7 @@ func TestTools(t *testing.T) { // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) - service := pkgs.New(Index, tmp, "replace") + service := pkgs.New(Index, tmp, "replace", utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) ctx := context.Background() @@ -126,7 +128,7 @@ func TestEvilFilename(t *testing.T) { // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) - service := pkgs.New(Index, tmp, "replace") + service := pkgs.New(Index, tmp, "replace", utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) ctx := context.Background() @@ -195,7 +197,7 @@ func TestInstalledHead(t *testing.T) { // Instantiate Index Index := index.Init(indexURL, config.GetDataDir()) - service := pkgs.New(Index, tmp, "replace") + service := pkgs.New(Index, tmp, "replace", utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) ctx := context.Background() @@ -216,7 +218,7 @@ func TestInstall(t *testing.T) { LastRefresh: time.Now(), } - tool := pkgs.New(testIndex, tmp, "replace") + tool := pkgs.New(testIndex, tmp, "replace", utilities.MustParseRsaPublicKey([]byte(globals.ArduinoSignaturePubKey))) ctx := context.Background() From 87f097b862ae2e98179fd216a132712493777543 Mon Sep 17 00:00:00 2001 From: Davide Date: Fri, 28 Mar 2025 16:41:53 +0100 Subject: [PATCH 230/233] fix: update go.bug.st/serial to v1.6.4 to fix windows issue (#1027) * fix: update go.bug.st/serial to v1.6.4 * Updated license cache --------- Co-authored-by: Cristian Maglie --- .licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml | 2 +- .../go/go.bug.st/serial/enumerator.dep.yml | 6 +++--- .../go/go.bug.st/serial/unixutils.dep.yml | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml index 3c29440df..73d434109 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial.dep.yml @@ -1,6 +1,6 @@ --- name: go.bug.st/serial -version: v1.6.3 +version: v1.6.4 type: go summary: Package serial is a cross-platform serial library for the go language. homepage: https://pkg.go.dev/go.bug.st/serial diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml index 4b562e2a1..d7b0b63e1 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/enumerator.dep.yml @@ -1,13 +1,13 @@ --- name: go.bug.st/serial/enumerator -version: v1.6.3 +version: v1.6.4 type: go summary: Package enumerator is a golang cross-platform library for USB serial port discovery. homepage: https://pkg.go.dev/go.bug.st/serial/enumerator license: bsd-3-clause licenses: -- sources: serial@v1.6.3/LICENSE +- sources: serial@v1.6.4/LICENSE text: |2+ Copyright (c) 2014-2024, Cristian Maglie. @@ -42,7 +42,7 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.6.3/README.md +- sources: serial@v1.6.4/README.md text: |- This software is released under the [BSD 3-clause license]. diff --git a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml index 0e2d5f7da..ac5bb6bb1 100644 --- a/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml +++ b/.licenses/arduino-create-agent/go/go.bug.st/serial/unixutils.dep.yml @@ -1,12 +1,12 @@ --- name: go.bug.st/serial/unixutils -version: v1.6.3 +version: v1.6.4 type: go summary: homepage: https://pkg.go.dev/go.bug.st/serial/unixutils license: bsd-3-clause licenses: -- sources: serial@v1.6.3/LICENSE +- sources: serial@v1.6.4/LICENSE text: |2+ Copyright (c) 2014-2024, Cristian Maglie. @@ -41,7 +41,7 @@ licenses: ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- sources: serial@v1.6.3/README.md +- sources: serial@v1.6.4/README.md text: |- This software is released under the [BSD 3-clause license]. diff --git a/go.mod b/go.mod index 19d0eae02..3bffc09ed 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 github.com/stretchr/testify v1.9.0 github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 - go.bug.st/serial v1.6.3 + go.bug.st/serial v1.6.4 goa.design/goa/v3 v3.16.1 golang.org/x/sys v0.23.0 gopkg.in/inconshreveable/go-update.v0 v0.0.0-20150814200126-d8b0b1d421aa diff --git a/go.sum b/go.sum index a46d0bad6..676649d56 100644 --- a/go.sum +++ b/go.sum @@ -159,8 +159,8 @@ github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9 h1:w8V9v0qVympSF6GjdjIyeqR7+EVhAF9CBQmkmW7Zw0w= github.com/xrash/smetrics v0.0.0-20170218160415-a3153f7040e9/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -go.bug.st/serial v1.6.3 h1:S3OG1bH+IDyokVndKrzwxI9ywiGBd8sWOn08dzSqEQI= -go.bug.st/serial v1.6.3/go.mod h1:nofMJxTeNVny/m6+KaafC6vJGj3miwQZ6vW4BZUGJPI= +go.bug.st/serial v1.6.4 h1:7FmqNPgVp3pu2Jz5PoPtbZ9jJO5gnEnZIvnI1lzve8A= +go.bug.st/serial v1.6.4/go.mod h1:nofMJxTeNVny/m6+KaafC6vJGj3miwQZ6vW4BZUGJPI= goa.design/goa/v3 v3.16.1 h1:yZwbKrfMpE8+sz0uf+n+BtArVOFQ0kNSC0twQKwQb04= goa.design/goa/v3 v3.16.1/go.mod h1:Yd42LR0PYDbHSbsbF3vNd4YY/O+LG20Jb7+IyNdkQic= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= From b7174301c1983cf2593643b5789e01d3d50d1089 Mon Sep 17 00:00:00 2001 From: Davide Date: Tue, 1 Apr 2025 15:42:28 +0200 Subject: [PATCH 231/233] fix: update workflow to use ubuntu-22.04 instead of ubuntu-20.04 (#1028) --- .github/workflows/publish-go-tester-task.yml | 2 +- .github/workflows/release.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish-go-tester-task.yml b/.github/workflows/publish-go-tester-task.yml index 8e72c351a..89d5c2b45 100644 --- a/.github/workflows/publish-go-tester-task.yml +++ b/.github/workflows/publish-go-tester-task.yml @@ -65,7 +65,7 @@ jobs: #use the strategy instead because we still use the native build strategy: matrix: - os: [ubuntu-20.04, windows-2019, macos-13] + os: [ubuntu-22.04, windows-2019, macos-13] arch: [-amd64] include: - os: windows-2019 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6275922c3..12b3781ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: prerelease: ${{ steps.prerelease.outputs.IS_PRE }} strategy: matrix: - os: [ubuntu-20.04, windows-2019, macos-13] + os: [ubuntu-22.04, windows-2019, macos-13] arch: [amd64] include: - os: windows-2019 @@ -88,7 +88,7 @@ jobs: - name: Build the Agent for linux run: task go:build - if: matrix.os == 'ubuntu-20.04' + if: matrix.os == 'ubuntu-22.04' # the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) # rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. @@ -390,7 +390,7 @@ jobs: # This job is responsible for generating the installers (using installbuilder) package: needs: build - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 env: # vars used by installbuilder @@ -400,10 +400,10 @@ jobs: strategy: fail-fast: false # if one os is failing continue nonetheless matrix: # used to generate installers for different OS and not for runs-on - os: [ubuntu-20.04, windows-2019] + os: [ubuntu-22.04, windows-2019] arch: [amd64] include: - - os: ubuntu-20.04 + - os: ubuntu-22.04 platform-name: linux installbuilder-name: linux-x64 installer-extension: .run @@ -438,7 +438,7 @@ jobs: # zip artifacts do not mantain executable permission - name: Make executable run: chmod -v +x artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}* - if: matrix.os == 'ubuntu-20.04' + if: matrix.os == 'ubuntu-22.04' - name: Rename executable to Arduino_Cloud_Agent run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Cloud_Agent${{ matrix.extension }} @@ -451,7 +451,7 @@ jobs: - name: Generate archive run: tar -czvf ArduinoCloudAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCloudAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}} - if: matrix.os == 'ubuntu-20.04' + if: matrix.os == 'ubuntu-22.04' - name: Upload artifacts uses: actions/upload-artifact@v4 @@ -606,7 +606,7 @@ jobs: if-no-files-found: error create-release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 environment: production needs: [build, generate-sign-dmg, sign-windows] From e7ea3763ff3d4db6a84c207afd562790a38dc3b5 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Thu, 24 Apr 2025 16:45:22 +0200 Subject: [PATCH 232/233] fix: Serial Monitor corrupted output in some rare cases (#1032) * Synchronize multiple open commands coming together. * Allow re-opening of already opened ports * Renamed mutex var and added comment * Error out if baudrate and buftype of already opened port do not match --- serial.go | 19 ++++++------------- serialport.go | 31 +++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/serial.go b/serial.go index 64e5b8f7f..1a43f3644 100755 --- a/serial.go +++ b/serial.go @@ -31,7 +31,7 @@ import ( type serialhub struct { // Opened serial ports. - ports map[*serport]bool + ports map[string]*serport mu sync.Mutex } @@ -60,7 +60,7 @@ type SpPortItem struct { var serialPorts SerialPortList var sh = serialhub{ - ports: make(map[*serport]bool), + ports: make(map[string]*serport), } // Register serial ports from the connections. @@ -68,7 +68,7 @@ func (sh *serialhub) Register(port *serport) { sh.mu.Lock() //log.Print("Registering a port: ", p.portConf.Name) h.broadcastSys <- []byte("{\"Cmd\":\"Open\",\"Desc\":\"Got register/open on port.\",\"Port\":\"" + port.portConf.Name + "\",\"Baud\":" + strconv.Itoa(port.portConf.Baud) + ",\"BufferType\":\"" + port.BufferType + "\"}") - sh.ports[port] = true + sh.ports[port.portName] = port sh.mu.Unlock() } @@ -77,7 +77,7 @@ func (sh *serialhub) Unregister(port *serport) { sh.mu.Lock() //log.Print("Unregistering a port: ", p.portConf.Name) h.broadcastSys <- []byte("{\"Cmd\":\"Close\",\"Desc\":\"Got unregister/close on port.\",\"Port\":\"" + port.portConf.Name + "\",\"Baud\":" + strconv.Itoa(port.portConf.Baud) + "}") - delete(sh.ports, port) + delete(sh.ports, port.portName) close(port.sendBuffered) close(port.sendNoBuf) sh.mu.Unlock() @@ -86,15 +86,8 @@ func (sh *serialhub) Unregister(port *serport) { func (sh *serialhub) FindPortByName(portname string) (*serport, bool) { sh.mu.Lock() defer sh.mu.Unlock() - - for port := range sh.ports { - if strings.EqualFold(port.portConf.Name, portname) { - // we found our port - //spHandlerClose(port) - return port, true - } - } - return nil, false + port, ok := sh.ports[portname] + return port, ok } // List broadcasts a Json representation of the ports found diff --git a/serialport.go b/serialport.go index 0d386bbfc..b3418fe5d 100755 --- a/serialport.go +++ b/serialport.go @@ -20,6 +20,7 @@ import ( "encoding/base64" "io" "strconv" + "sync" "sync/atomic" "time" "unicode/utf8" @@ -273,7 +274,13 @@ func (p *serport) writerRaw() { h.broadcastSys <- []byte(msgstr) } +// This lock is used to prevent multiple threads from trying to open the same port at the same time. +// It presents issues with the serial port driver on some OS's: https://github.com/arduino/arduino-create-agent/issues/1031 +var spHandlerOpenLock sync.Mutex + func spHandlerOpen(portname string, baud int, buftype string) { + spHandlerOpenLock.Lock() + defer spHandlerOpenLock.Unlock() log.Print("Inside spHandler") @@ -295,11 +302,14 @@ func spHandlerOpen(portname string, baud int, buftype string) { sp, err := serial.Open(portname, mode) log.Print("Just tried to open port") if err != nil { - //log.Fatal(err) - log.Print("Error opening port " + err.Error()) - //h.broadcastSys <- []byte("Error opening port. " + err.Error()) - h.broadcastSys <- []byte("{\"Cmd\":\"OpenFail\",\"Desc\":\"Error opening port. " + err.Error() + "\",\"Port\":\"" + conf.Name + "\",\"Baud\":" + strconv.Itoa(conf.Baud) + "}") - + existingPort, ok := sh.FindPortByName(portname) + if ok && existingPort.portConf.Baud == baud && existingPort.BufferType == buftype { + log.Print("Port already opened") + h.broadcastSys <- []byte("{\"Cmd\":\"Open\",\"Desc\":\"Port already opened.\",\"Port\":\"" + existingPort.portConf.Name + "\",\"Baud\":" + strconv.Itoa(existingPort.portConf.Baud) + ",\"BufferType\":\"" + existingPort.BufferType + "\"}") + } else { + log.Print("Error opening port " + err.Error()) + h.broadcastSys <- []byte("{\"Cmd\":\"OpenFail\",\"Desc\":\"Error opening port. " + err.Error() + "\",\"Port\":\"" + conf.Name + "\",\"Baud\":" + strconv.Itoa(conf.Baud) + "}") + } return } log.Print("Opened port successfully") @@ -331,7 +341,6 @@ func spHandlerOpen(portname string, baud int, buftype string) { p.bufferwatcher = bw sh.Register(p) - defer sh.Unregister(p) serialPorts.MarkPortAsOpened(portname) serialPorts.List() @@ -342,10 +351,12 @@ func spHandlerOpen(portname string, baud int, buftype string) { go p.writerNoBuf() // this is thread to send to serial port but with base64 decoding go p.writerRaw() - - p.reader(buftype) - - serialPorts.List() + // this is the thread that reads from the serial port + go func() { + p.reader(buftype) + serialPorts.List() + sh.Unregister(p) + }() } func (p *serport) Close() { From b2b98877d93b0e762c50145971d45b5a97cc6d44 Mon Sep 17 00:00:00 2001 From: Davide Date: Thu, 15 May 2025 15:51:25 +0200 Subject: [PATCH 233/233] ci(Taskfile): add a command to test autoupdate (#1033) * feat: add demo task for local auto-update workflow of the Agent * fix: update autoupdate demo description and improve server wait logic * fix: remove unnecessary blank lines in Taskfile.yml * fix: clarify the importance of the 'CreateAgent/Stable' path in update file search --- Taskfile.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Taskfile.yml b/Taskfile.yml index bba07548e..681c8274d 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -149,6 +149,20 @@ tasks: - task: go:vet - task: go:lint + autoupdate:demo: + desc: Demo the local auto-update workflow for the Agent (for linux and mac user) + prompt: Before continuing, please make sure you’ve opened the "Open Configuration" option from the Agent menu and set the updateUrl=http://127.0.0.1:3000/ + cmds: + - task: go:build + - go install github.com/sanbornm/go-selfupdate/...@latest + # NOTE: the path 'CreateAgent/Stable' is important to keep as is + # because agent searches the update files into "CreateAgent/Stable/{platform}.json" and "https://downloads.arduino.cc/CreateAgent/Stable/{version}/{platform}.gz" + - go-selfupdate -o public/CreateAgent/Stable ./arduino-cloud-agent {{.VERSION}} + - docker rm -f agent-static-server + - docker run --rm -d -v "$PWD/public:/usr/share/nginx/html:ro" -p 3000:80 --name agent-static-server nginx:alpine + - sleep 5 # wait the server is up before starting the update + - curl -X POST http://127.0.0.1:8991/update + vars: # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/release-go-task/Taskfile.yml PROJECT_NAME: arduino-cloud-agent