Commit 654e9d3
committed
fstree: make a new object storage structure
Store objects in the format "len(Header)+len(Payload)+header+payload", for quick
reading of Head, GetRange, GetStream.
```
goos: linux
goarch: amd64
pkg: github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor/fstree
cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics
│ oldGet.txt │ newGet.txt │
│ sec/op │ sec/op vs base │
FSTree_Get/Empty/Get_regular-16 73.79µ ± 4% 74.72µ ± 4% ~ (p=0.394 n=6)
FSTree_Get/Empty/Get_combined-16 88.50µ ± 6% 90.19µ ± 5% ~ (p=0.310 n=6)
FSTree_Get/Empty/Get_compressed-16 37.87µ ± 7% 37.01µ ± 6% ~ (p=0.589 n=6)
FSTree_Get/100B/Get_regular-16 72.22µ ± 3% 75.45µ ± 8% ~ (p=0.065 n=6)
FSTree_Get/100B/Get_combined-16 86.45µ ± 3% 90.19µ ± 3% +4.34% (p=0.002 n=6)
FSTree_Get/100B/Get_compressed-16 39.92µ ± 6% 38.23µ ± 6% ~ (p=0.240 n=6)
FSTree_Get/4KB/Get_regular-16 82.17µ ± 6% 86.20µ ± 2% +4.91% (p=0.002 n=6)
FSTree_Get/4KB/Get_combined-16 101.0µ ± 3% 102.6µ ± 2% +1.55% (p=0.041 n=6)
FSTree_Get/4KB/Get_compressed-16 55.93µ ± 6% 59.37µ ± 13% ~ (p=0.093 n=6)
FSTree_Get/16KB/Get_regular-16 100.6µ ± 3% 112.5µ ± 3% +11.75% (p=0.002 n=6)
FSTree_Get/16KB/Get_combined-16 120.9µ ± 4% 128.3µ ± 2% +6.12% (p=0.002 n=6)
FSTree_Get/16KB/Get_compressed-16 80.41µ ± 4% 87.57µ ± 3% +8.90% (p=0.002 n=6)
FSTree_Get/32KB/Get_regular-16 125.9µ ± 5% 151.7µ ± 2% +20.48% (p=0.002 n=6)
FSTree_Get/32KB/Get_combined-16 148.0µ ± 4% 167.9µ ± 4% +13.50% (p=0.002 n=6)
FSTree_Get/32KB/Get_compressed-16 108.3µ ± 3% 120.2µ ± 5% +10.94% (p=0.002 n=6)
FSTree_Get/100KB/Get_regular-16 213.2µ ± 2% 282.3µ ± 2% +32.37% (p=0.002 n=6)
FSTree_Get/100KB/Get_combined-16 235.2µ ± 4% 304.5µ ± 2% +29.45% (p=0.002 n=6)
FSTree_Get/100KB/Get_compressed-16 176.0µ ± 3% 203.4µ ± 1% +15.55% (p=0.002 n=6)
FSTree_Get/1MB/Get_regular-16 1.442m ± 10% 2.463m ± 14% +70.89% (p=0.002 n=6)
FSTree_Get/1MB/Get_combined-16 1.548m ± 5% 2.417m ± 5% +56.10% (p=0.002 n=6)
FSTree_Get/1MB/Get_compressed-16 928.2µ ± 7% 1166.5µ ± 3% +25.68% (p=0.002 n=6)
geomean 139.2µ 158.6µ +13.94%
│ oldGet.txt │ newGet.txt │
│ B/op │ B/op vs base │
FSTree_Get/Empty/Get_regular-16 9.270Ki ± 4% 10.738Ki ± 7% +15.84% (p=0.002 n=6)
FSTree_Get/Empty/Get_combined-16 9.157Ki ± 2% 10.637Ki ± 1% +16.17% (p=0.002 n=6)
FSTree_Get/Empty/Get_compressed-16 10.47Ki ± 2% 10.64Ki ± 2% ~ (p=0.225 n=6)
FSTree_Get/100B/Get_regular-16 9.590Ki ± 7% 11.398Ki ± 10% +18.86% (p=0.002 n=6)
FSTree_Get/100B/Get_combined-16 9.378Ki ± 1% 11.139Ki ± 1% +18.77% (p=0.002 n=6)
FSTree_Get/100B/Get_compressed-16 11.07Ki ± 4% 11.52Ki ± 6% ~ (p=0.058 n=6)
FSTree_Get/4KB/Get_regular-16 17.62Ki ± 3% 23.67Ki ± 1% +34.34% (p=0.002 n=6)
FSTree_Get/4KB/Get_combined-16 17.69Ki ± 0% 23.67Ki ± 1% +33.84% (p=0.002 n=6)
FSTree_Get/4KB/Get_compressed-16 23.70Ki ± 1% 28.54Ki ± 1% +20.44% (p=0.002 n=6)
FSTree_Get/16KB/Get_regular-16 41.66Ki ± 1% 59.66Ki ± 1% +43.20% (p=0.002 n=6)
FSTree_Get/16KB/Get_combined-16 41.64Ki ± 0% 59.69Ki ± 0% +43.36% (p=0.002 n=6)
FSTree_Get/16KB/Get_compressed-16 59.54Ki ± 1% 77.64Ki ± 0% +30.40% (p=0.002 n=6)
FSTree_Get/32KB/Get_regular-16 79.73Ki ± 0% 119.80Ki ± 0% +50.27% (p=0.002 n=6)
FSTree_Get/32KB/Get_combined-16 79.64Ki ± 0% 119.66Ki ± 0% +50.26% (p=0.002 n=6)
FSTree_Get/32KB/Get_compressed-16 119.6Ki ± 0% 159.9Ki ± 0% +33.69% (p=0.002 n=6)
FSTree_Get/100KB/Get_regular-16 215.7Ki ± 0% 319.6Ki ± 0% +48.15% (p=0.002 n=6)
FSTree_Get/100KB/Get_combined-16 215.6Ki ± 0% 319.7Ki ± 0% +48.27% (p=0.002 n=6)
FSTree_Get/100KB/Get_compressed-16 319.7Ki ± 0% 423.7Ki ± 0% +32.52% (p=0.002 n=6)
FSTree_Get/1MB/Get_regular-16 2.015Mi ± 0% 3.023Mi ± 0% +50.01% (p=0.002 n=6)
FSTree_Get/1MB/Get_combined-16 2.015Mi ± 0% 3.023Mi ± 0% +50.01% (p=0.002 n=6)
FSTree_Get/1MB/Get_compressed-16 3.023Mi ± 0% 4.031Mi ± 0% +33.34% (p=0.002 n=6)
geomean 64.51Ki 84.73Ki +31.35%
│ oldGet.txt │ newGet.txt │
│ allocs/op │ allocs/op vs base │
FSTree_Get/Empty/Get_regular-16 138.5 ± 7% 139.0 ± 9% ~ (p=0.619 n=6)
FSTree_Get/Empty/Get_combined-16 136.0 ± 2% 137.0 ± 1% ~ (p=0.206 n=6)
FSTree_Get/Empty/Get_compressed-16 135.5 ± 4% 137.0 ± 6% ~ (p=0.524 n=6)
FSTree_Get/100B/Get_regular-16 139.5 ± 7% 142.0 ± 11% ~ (p=0.379 n=6)
FSTree_Get/100B/Get_combined-16 136.0 ± 2% 138.5 ± 2% ~ (p=0.065 n=6)
FSTree_Get/100B/Get_compressed-16 140.0 ± 9% 140.0 ± 6% ~ (p=0.916 n=6)
FSTree_Get/4KB/Get_regular-16 135.5 ± 9% 139.0 ± 5% ~ (p=0.232 n=6)
FSTree_Get/4KB/Get_combined-16 138.0 ± 1% 138.5 ± 3% ~ (p=0.556 n=6)
FSTree_Get/4KB/Get_compressed-16 138.5 ± 5% 143.5 ± 5% ~ (p=0.071 n=6)
FSTree_Get/16KB/Get_regular-16 137.5 ± 8% 138.5 ± 8% ~ (p=0.848 n=6)
FSTree_Get/16KB/Get_combined-16 136.5 ± 3% 138.5 ± 1% ~ (p=0.197 n=6)
FSTree_Get/16KB/Get_compressed-16 135.0 ± 6% 140.0 ± 1% +3.70% (p=0.026 n=6)
FSTree_Get/32KB/Get_regular-16 139.5 ± 7% 142.0 ± 3% ~ (p=0.784 n=6)
FSTree_Get/32KB/Get_combined-16 136.5 ± 1% 138.0 ± 1% ~ (p=0.106 n=6)
FSTree_Get/32KB/Get_compressed-16 136.5 ± 5% 145.5 ± 12% ~ (p=0.162 n=6)
FSTree_Get/100KB/Get_regular-16 137.5 ± 8% 135.0 ± 10% ~ (p=0.617 n=6)
FSTree_Get/100KB/Get_combined-16 135.5 ± 3% 138.0 ± 2% ~ (p=0.537 n=6)
FSTree_Get/100KB/Get_compressed-16 140.5 ± 6% 141.5 ± 10% ~ (p=0.831 n=6)
FSTree_Get/1MB/Get_regular-16 135.0 ± 8% 137.5 ± 7% ~ (p=0.922 n=6)
FSTree_Get/1MB/Get_combined-16 137.5 ± 3% 138.5 ± 2% ~ (p=0.760 n=6)
FSTree_Get/1MB/Get_compressed-16 139.5 ± 8% 143.0 ± 10% ~ (p=0.513 n=6)
geomean 137.3 139.5 +1.59%
│ oldHead.txt │ newHead.txt │
│ sec/op │ sec/op vs base │
FSTree_Head/Empty/Head_regular-16 84.14µ ± 4% 91.17µ ± 5% +8.35% (p=0.002 n=6)
FSTree_Head/Empty/Head_combined-16 87.86µ ± 10% 95.58µ ± 2% +8.78% (p=0.002 n=6)
FSTree_Head/Empty/Head_compressed-16 73.02µ ± 5% 70.08µ ± 8% -4.03% (p=0.026 n=6)
FSTree_Head/100B/Head_regular-16 85.14µ ± 2% 93.50µ ± 7% +9.81% (p=0.002 n=6)
FSTree_Head/100B/Head_combined-16 88.09µ ± 4% 94.98µ ± 1% +7.82% (p=0.002 n=6)
FSTree_Head/100B/Head_compressed-16 72.49µ ± 3% 70.35µ ± 3% -2.96% (p=0.002 n=6)
FSTree_Head/4KB/Head_regular-16 87.55µ ± 4% 93.28µ ± 1% +6.56% (p=0.002 n=6)
FSTree_Head/4KB/Head_combined-16 97.75µ ± 1% 101.06µ ± 4% ~ (p=0.132 n=6)
FSTree_Head/4KB/Head_compressed-16 77.53µ ± 11% 69.92µ ± 8% -9.82% (p=0.026 n=6)
FSTree_Head/16KB/Head_regular-16 86.53µ ± 4% 95.13µ ± 1% +9.95% (p=0.002 n=6)
FSTree_Head/16KB/Head_combined-16 116.2µ ± 1% 124.9µ ± 1% +7.50% (p=0.002 n=6)
FSTree_Head/16KB/Head_compressed-16 152.53µ ± 2% 70.19µ ± 4% -53.98% (p=0.002 n=6)
FSTree_Head/32KB/Head_regular-16 91.39µ ± 6% 93.54µ ± 2% +2.36% (p=0.002 n=6)
FSTree_Head/32KB/Head_combined-16 118.2µ ± 1% 123.9µ ± 16% ~ (p=0.394 n=6)
FSTree_Head/32KB/Head_compressed-16 175.73µ ± 2% 70.52µ ± 14% -59.87% (p=0.002 n=6)
FSTree_Head/100KB/Head_regular-16 91.08µ ± 4% 93.91µ ± 2% +3.11% (p=0.009 n=6)
FSTree_Head/100KB/Head_combined-16 118.6µ ± 3% 123.8µ ± 1% +4.32% (p=0.002 n=6)
FSTree_Head/100KB/Head_compressed-16 243.42µ ± 2% 71.17µ ± 9% -70.77% (p=0.002 n=6)
FSTree_Head/1MB/Head_regular-16 90.26µ ± 2% 91.08µ ± 6% ~ (p=0.394 n=6)
FSTree_Head/1MB/Head_combined-16 124.2µ ± 5% 118.3µ ± 5% -4.75% (p=0.041 n=6)
FSTree_Head/1MB/Head_compressed-16 799.86µ ± 1% 53.73µ ± 7% -93.28% (p=0.002 n=6)
geomean 113.1µ 88.78µ -21.54%
│ oldHead.txt │ newHead.txt │
│ B/op │ B/op vs base │
FSTree_Head/Empty/Head_regular-16 39.91Ki ± 1% 39.60Ki ± 1% -0.76% (p=0.004 n=6)
FSTree_Head/Empty/Head_combined-16 40.01Ki ± 0% 39.79Ki ± 0% -0.55% (p=0.002 n=6)
FSTree_Head/Empty/Head_compressed-16 41.56Ki ± 1% 39.81Ki ± 1% -4.21% (p=0.002 n=6)
FSTree_Head/100B/Head_regular-16 40.14Ki ± 1% 39.85Ki ± 1% ~ (p=0.071 n=6)
FSTree_Head/100B/Head_combined-16 40.13Ki ± 0% 39.75Ki ± 0% -0.95% (p=0.002 n=6)
FSTree_Head/100B/Head_compressed-16 41.91Ki ± 2% 39.87Ki ± 1% -4.86% (p=0.002 n=6)
FSTree_Head/4KB/Head_regular-16 44.07Ki ± 1% 39.71Ki ± 1% -9.88% (p=0.002 n=6)
FSTree_Head/4KB/Head_combined-16 44.08Ki ± 0% 39.78Ki ± 0% -9.75% (p=0.002 n=6)
FSTree_Head/4KB/Head_compressed-16 50.08Ki ± 1% 39.78Ki ± 1% -20.56% (p=0.002 n=6)
FSTree_Head/16KB/Head_regular-16 39.59Ki ± 1% 39.78Ki ± 0% ~ (p=0.121 n=6)
FSTree_Head/16KB/Head_combined-16 39.66Ki ± 0% 39.81Ki ± 0% ~ (p=0.065 n=6)
FSTree_Head/16KB/Head_compressed-16 119.44Ki ± 0% 39.74Ki ± 1% -66.73% (p=0.002 n=6)
FSTree_Head/32KB/Head_regular-16 39.89Ki ± 2% 39.58Ki ± 1% ~ (p=0.132 n=6)
FSTree_Head/32KB/Head_combined-16 39.66Ki ± 0% 39.79Ki ± 0% +0.33% (p=0.004 n=6)
FSTree_Head/32KB/Head_compressed-16 173.47Ki ± 0% 39.73Ki ± 1% -77.10% (p=0.002 n=6)
FSTree_Head/100KB/Head_regular-16 39.78Ki ± 1% 39.70Ki ± 1% ~ (p=0.368 n=6)
FSTree_Head/100KB/Head_combined-16 39.66Ki ± 0% 39.78Ki ± 0% +0.29% (p=0.009 n=6)
FSTree_Head/100KB/Head_compressed-16 373.68Ki ± 0% 39.86Ki ± 1% -89.33% (p=0.002 n=6)
FSTree_Head/1MB/Head_regular-16 39.86Ki ± 1% 39.84Ki ± 1% ~ (p=0.848 n=6)
FSTree_Head/1MB/Head_combined-16 39.64Ki ± 0% 39.80Ki ± 0% +0.41% (p=0.002 n=6)
FSTree_Head/1MB/Head_compressed-16 2661.62Ki ± 0% 39.70Ki ± 1% -98.51% (p=0.002 n=6)
geomean 62.72Ki 39.76Ki -36.60%
│ oldHead.txt │ newHead.txt │
│ allocs/op │ allocs/op vs base │
FSTree_Head/Empty/Head_regular-16 135.0 ± 8% 136.0 ± 4% ~ (p=0.918 n=6)
FSTree_Head/Empty/Head_combined-16 136.5 ± 3% 141.0 ± 2% +3.30% (p=0.022 n=6)
FSTree_Head/Empty/Head_compressed-16 139.0 ± 4% 141.0 ± 5% ~ (p=0.545 n=6)
FSTree_Head/100B/Head_regular-16 138.0 ± 4% 143.5 ± 7% ~ (p=0.165 n=6)
FSTree_Head/100B/Head_combined-16 138.0 ± 3% 140.0 ± 1% ~ (p=0.208 n=6)
FSTree_Head/100B/Head_compressed-16 141.0 ± 9% 143.5 ± 4% ~ (p=0.074 n=6)
FSTree_Head/4KB/Head_regular-16 139.5 ± 8% 140.0 ± 4% ~ (p=1.000 n=6)
FSTree_Head/4KB/Head_combined-16 140.0 ± 3% 141.0 ± 2% ~ (p=0.093 n=6)
FSTree_Head/4KB/Head_compressed-16 141.0 ± 7% 141.0 ± 6% ~ (p=0.537 n=6)
FSTree_Head/16KB/Head_regular-16 136.0 ± 8% 141.0 ± 3% ~ (p=0.110 n=6)
FSTree_Head/16KB/Head_combined-16 138.5 ± 2% 142.0 ± 3% ~ (p=0.058 n=6)
FSTree_Head/16KB/Head_compressed-16 176.5 ± 4% 140.0 ± 9% -20.68% (p=0.002 n=6)
FSTree_Head/32KB/Head_regular-16 145.5 ± 12% 136.0 ± 4% ~ (p=0.084 n=6)
FSTree_Head/32KB/Head_combined-16 138.5 ± 2% 141.0 ± 1% +1.81% (p=0.045 n=6)
FSTree_Head/32KB/Head_compressed-16 176.0 ± 6% 140.0 ± 9% -20.45% (p=0.002 n=6)
FSTree_Head/100KB/Head_regular-16 142.0 ± 10% 138.0 ± 6% ~ (p=0.290 n=6)
FSTree_Head/100KB/Head_combined-16 139.0 ± 1% 141.0 ± 3% +1.44% (p=0.030 n=6)
FSTree_Head/100KB/Head_compressed-16 182.0 ± 9% 143.5 ± 4% -21.15% (p=0.002 n=6)
FSTree_Head/1MB/Head_regular-16 143.5 ± 5% 143.5 ± 4% ~ (p=1.000 n=6)
FSTree_Head/1MB/Head_combined-16 138.5 ± 1% 141.5 ± 2% +2.17% (p=0.013 n=6)
FSTree_Head/1MB/Head_compressed-16 183.5 ± 6% 139.5 ± 7% -23.98% (p=0.002 n=6)
geomean 146.2 140.7 -3.82%
│ oldPut.txt │ newPut.txt │
│ sec/op │ sec/op vs base │
Put/size=1,thread=1/fstree-16 15.85m ± 7% 15.96m ± 2% ~ (p=0.818 n=6)
Put/size=1,thread=20/fstree-16 18.90m ± 25% 17.41m ± 10% ~ (p=0.180 n=6)
Put/size=1,thread=100/fstree-16 23.64m ± 5% 22.87m ± 3% ~ (p=0.180 n=6)
Put/size=1024,thread=1/fstree-16 16.11m ± 5% 15.91m ± 20% ~ (p=0.589 n=6)
Put/size=1024,thread=20/fstree-16 17.77m ± 25% 17.51m ± 4% ~ (p=0.180 n=6)
Put/size=1024,thread=100/fstree-16 24.27m ± 10% 23.86m ± 12% ~ (p=0.589 n=6)
Put/size=102400,thread=1/fstree-16 16.59m ± 8% 16.63m ± 3% ~ (p=0.699 n=6)
Put/size=102400,thread=20/fstree-16 31.49m ± 25% 27.74m ± 28% ~ (p=0.310 n=6)
Put/size=102400,thread=100/fstree-16 175.4m ± 39% 150.3m ± 13% ~ (p=0.065 n=6)
geomean 25.47m 24.28m -4.67%
│ oldPut.txt │ newPut.txt │
│ B/op │ B/op vs base │
Put/size=1,thread=1/fstree-16 3.405Ki ± 1% 3.430Ki ± 1% ~ (p=0.084 n=6)
Put/size=1,thread=20/fstree-16 55.81Ki ± 4% 56.18Ki ± 4% ~ (p=0.485 n=6)
Put/size=1,thread=100/fstree-16 260.5Ki ± 2% 263.4Ki ± 2% ~ (p=0.240 n=6)
Put/size=1024,thread=1/fstree-16 3.388Ki ± 1% 4.524Ki ± 1% +33.54% (p=0.002 n=6)
Put/size=1024,thread=20/fstree-16 55.82Ki ± 1% 78.59Ki ± 1% +40.78% (p=0.002 n=6)
Put/size=1024,thread=100/fstree-16 264.2Ki ± 1% 377.9Ki ± 0% +43.04% (p=0.002 n=6)
Put/size=102400,thread=1/fstree-16 3.419Ki ± 0% 107.436Ki ± 0% +3041.91% (p=0.002 n=6)
Put/size=102400,thread=20/fstree-16 57.58Ki ± 2% 2137.83Ki ± 0% +3612.71% (p=0.002 n=6)
Put/size=102400,thread=100/fstree-16 290.5Ki ± 2% 10690.7Ki ± 0% +3580.47% (p=0.002 n=6)
geomean 37.35Ki 136.8Ki +266.18%
│ oldPut.txt │ newPut.txt │
│ allocs/op │ allocs/op vs base │
Put/size=1,thread=1/fstree-16 37.00 ± 3% 38.00 ± 3% +2.70% (p=0.032 n=6)
Put/size=1,thread=20/fstree-16 559.0 ± 1% 577.5 ± 1% +3.31% (p=0.002 n=6)
Put/size=1,thread=100/fstree-16 2.596k ± 1% 2.692k ± 0% +3.68% (p=0.002 n=6)
Put/size=1024,thread=1/fstree-16 37.00 ± 3% 37.50 ± 1% ~ (p=0.076 n=6)
Put/size=1024,thread=20/fstree-16 556.0 ± 1% 576.0 ± 1% +3.60% (p=0.002 n=6)
Put/size=1024,thread=100/fstree-16 2.603k ± 1% 2.699k ± 0% +3.65% (p=0.002 n=6)
Put/size=102400,thread=1/fstree-16 37.00 ± 3% 37.50 ± 1% ~ (p=0.076 n=6)
Put/size=102400,thread=20/fstree-16 569.0 ± 1% 587.0 ± 1% +3.16% (p=0.002 n=6)
Put/size=102400,thread=100/fstree-16 2.854k ± 2% 2.941k ± 1% +3.03% (p=0.002 n=6)
geomean 381.9 392.9 +2.87%
```
Signed-off-by: Andrey Butusov <andrey@nspcc.io>1 parent 20e7ac6 commit 654e9d3
17 files changed
Lines changed: 219 additions & 43 deletions
File tree
- pkg/local_object_storage
- blobstor
- common
- fstree
- internal/storagetest
- shard
- writecache
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
33 | 42 | | |
34 | 43 | | |
35 | 44 | | |
| |||
69 | 78 | | |
70 | 79 | | |
71 | 80 | | |
72 | | - | |
| 81 | + | |
73 | 82 | | |
74 | 83 | | |
75 | 84 | | |
| |||
80 | 89 | | |
81 | 90 | | |
82 | 91 | | |
83 | | - | |
| 92 | + | |
84 | 93 | | |
85 | 94 | | |
86 | 95 | | |
87 | 96 | | |
88 | 97 | | |
89 | | - | |
| 98 | + | |
90 | 99 | | |
91 | 100 | | |
92 | 101 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
| 64 | + | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| |||
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
88 | | - | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
93 | 114 | | |
94 | 115 | | |
95 | 116 | | |
| |||
329 | 350 | | |
330 | 351 | | |
331 | 352 | | |
332 | | - | |
| 353 | + | |
333 | 354 | | |
334 | 355 | | |
335 | 356 | | |
| |||
339 | 360 | | |
340 | 361 | | |
341 | 362 | | |
342 | | - | |
| 363 | + | |
343 | 364 | | |
344 | 365 | | |
345 | 366 | | |
| |||
349 | 370 | | |
350 | 371 | | |
351 | 372 | | |
352 | | - | |
| 373 | + | |
353 | 374 | | |
354 | 375 | | |
355 | 376 | | |
| |||
363 | 384 | | |
364 | 385 | | |
365 | 386 | | |
366 | | - | |
| 387 | + | |
367 | 388 | | |
368 | 389 | | |
369 | 390 | | |
| |||
375 | 396 | | |
376 | 397 | | |
377 | 398 | | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
378 | 421 | | |
379 | 422 | | |
380 | 423 | | |
| |||
433 | 476 | | |
434 | 477 | | |
435 | 478 | | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
436 | 489 | | |
437 | 490 | | |
438 | 491 | | |
| |||
485 | 538 | | |
486 | 539 | | |
487 | 540 | | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
488 | 558 | | |
489 | 559 | | |
490 | 560 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
| 111 | + | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
124 | 124 | | |
125 | 125 | | |
126 | 126 | | |
127 | | - | |
| 127 | + | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
129 | 168 | | |
130 | 169 | | |
131 | 170 | | |
| |||
Lines changed: 48 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
99 | 146 | | |
100 | 147 | | |
101 | 148 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
0 commit comments