Commit aa68c90
feat: Cornerstone3D 5.0 (#2748)
* bump version
* bump beta (#2638)
* bump beta [BUMP BETA MAJOR] (#2639)
* bump version
* bump version [BUMP BETA MAJOR]
* chore(version): Update package versions to 5.0.0-beta.1 [skip ci]
* Update to use feat/use-beta-5.0-cs3d for downstream test
* Revert to earlier bun/node
* fix: Dependencies
* feat: Add metadata module to single-source metadata (#2625)
* feat: Add metadata module to single-source metadata
* Revert some of hte changes to dicom image loader in favour of deprecation
* Undo change
* Move unit tests to metadata package
* Revert changes to adapters
* Revert unneeded changes
* Update metadata module to use AsyncDicomListener format
* fix: Add unit test
* Add metadata provider and init for the new metadata function
* Split module lists
* update metadata versoin
* Move audit to end so build steps are viewable
* fix: Audit last
* fix lock file mismatch
* fix: metadata reference
* fix: Link to metadata
* fix: Move audit to a single build to allow overall PR status
Previously the audit happened early and multiple times, causing issues
when the audit failures were unrelated to other changes.
* fix: Unused components, add ecg module
* Remove subdirectory import
* fix: ecg module
* Remove unused lower camel case reader
* Switch new/old flag to be useLegacyMetadataProvider
* Add metadata module for github builds
* useLegacyMetadataProvider for the karma tests needing it
* Add legacy module name
* PR comments
* fix: Wado URI test
* Update version
* Missing PR rename issue
* Fix init/register options to allow registering new provider
This explains the differences between the legacy/default metadata
provider and the data loaders themselves, which still need
registering.
* Add rebuild:canvas command to fix missing canvas
* fix: Update way that loadImage functions with naturalized data
* Cleaner listener design/setup and pas (more) tests
* fix: loadImage with metadata module
* fix: Transfer syntax return as string
* fix: Wrong load image was getting used
* Update the register to clear data
* Store worker log to loglevel
* fix: Various karma tests
* fix: Remaining karma issues
* fix: Scaling data unit tests weren't running correctly
* Use fixed page size to make tests run consistently.
* Set size for consistency
* docusaurus build issues
* Build fixes
* Version fix
* Update to include metadata module
* Include metadata module in circleci config
* fix: Build when linked
* fix: workspace dependency to allow yarn 1.x
* Update package module for adapters build
* Try to fix adapters build issue
* Export suv scaling factor
* Update bun version to push an update
* Link suv module specifically
* fix: Merge issues
* bun lock
* Make node directory if it doesn't exist
* fix: Add migration guide and remove prebuild:esm
* Rename natural to naturalizedMetadata
* More renames natural => naturalized
* PR review comments
* Push test versoin
* Run against master instead of beta
* Rerun tests
* fix: Allow lower ohif_ref for reference
* Invalid image position for PT and some positions with parent position
* Kick updated build
* PR comments to use a separate pipeline for the add handling
* fix: Aspect ratio - merge had gone bad and undo missed changes
* fix: Unintended merge
* Only remove imageId prefix if there are at least two schemes
* PR review comment fixes
* Create @corenrstonejs/utils package with initial contents
* fix: install
* Use load local instead of upload
* Fix karma tests
* fix: Build issues
* fix: Types on toNumber
* fix: ohif-downstream to use build:esm
* toNumber
* Force retest
* Change to allow 120 minutes for CS3D playwright tests
* Update retries to match OHIF
* Upload playwright results on failure
* fix: Add utils path
* Rename addPart10Instance
* Remove cache warm up in utils
* Fix function rename
* PR comments - use enum values instead of literals.
* fix: Resolutions so that beta installs again
* Remove bom
* lock
* Fix docusaurus and docs build warnings/errors
* tmp vuln
* cornerstone3d redo viewports (#2666)
* feat: Update to use pnpm and remove bun/yarn usage (#2635)
* feat: pnpm 11 build/install for cs3d
* Format check runs at root level rather than in each package
* Enable corepack detection of pnpm version
* Fix audit issue
* ohif-downstream build issue
* Update to beta.3 for pnpm
* Update beta 3 in pnpm lock
* Re-run test on updated OHIF
* Fix pnpm build based on merge commit
* Fix link/unlik
* Fixes for linking
* fix cs3d link with ohif
* ci: pin Node 24 and bump pnpm to 11.4.0
playwright.yml's matrix had regressed to Node 20 during the beta merge, but
pnpm 11 requires Node >=22.13 (uses node:sqlite), so installs crashed with
ERR_UNKNOWN_BUILTIN_MODULE. Restore Node 24 everywhere and move pnpm 11.1.1 ->
11.4.0 across all workflows and packageManager.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore: drop exact packageManager pin, rely on engines pnpm>=11
The packageManager: pnpm@11.4.0 pin forced pnpm's precise-version auto-switch,
which broke commits for anyone whose local pnpm couldn't fetch that exact build.
engines.pnpm ">=11" is sufficient; CI still pins 11.4.0 via pnpm/action-setup.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* chore: restore packageManager pnpm pin for nested-repo corepack
CS3D lives inside the OHIF repo, whose package.json pins packageManager: yarn.
With corepack enabled, dropping CS3D's own packageManager field makes corepack
walk up and resolve yarn for CS3D, breaking the pnpm-based husky hook. Pin pnpm
here so corepack uses (and auto-fetches) pnpm for this workspace.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix(ohif-downstream): install OHIF with bun, not pnpm
OHIF is a bun/yarn project checked out inside this pnpm workspace. Installing
it with pnpm walks up to this repo's pnpm-workspace.yaml (node-linker: hoisted)
and produces a mixed node_modules where OHIF's jest and CS3D's jest copies get
tangled, so jest-runner resolves to a different instance than @jest/core ->
"Cannot read properties of undefined (reading 'leakDetector')".
Install/run the OHIF side with bun (its native package manager) so it gets a
self-contained node_modules. Adds a Set up Bun step; CS3D's own install/build
stay on pnpm.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Update bun lock
* frozen workfiles
* Move frozen lockfile flag to pnpm-workspace.yaml
* lock
* Rerun build, resetting ohif-downstream to default
* fix: unit test run
* Fix chrome headless run for karma tests
* Update tmp 0.2.6 to resolve the high severity issue
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>
* fix tests beta (#2749)
* feat: Preserve originally-requested viewport type in rendering engines (#2751)
* feat: Migrate to pnpm and update workflows for codemods package (#2752)
* fix: resolve CI failures from audit and CodeQL alerts
Bump vitest and @vitest/browser-playwright to 4.1.8 to clear the
critical GHSA-2h32-95rg-cppp advisory blocking the CircleCI checkout
job's security audit. Also address CodeQL findings introduced by the
viewport refactor diff: switch example RNGs to crypto APIs, guard the
annotation manager against prototype-polluting keys, and run rspack
via spawnSync with an args array instead of a shell-interpolated
string.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ci: add manual approval gate before npm publish
Insert a HOLD_FOR_APPROVAL job between BUILD and NPM_PUBLISH in the
TEST_AND_RELEASE workflow so the computed version can be reviewed and
approved in the CircleCI UI before any release is published.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Rebuild to check overall build status
---------
Co-authored-by: Alireza <ar.sedghi@gmail.com>
Co-authored-by: ohif-bot <contact@ohif.org>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Joe Boccanfuso <joe.boccanfuso@radicalimaging.com>1 parent 6f7ce81 commit aa68c90
1,163 files changed
Lines changed: 102405 additions & 21646 deletions
File tree
- .agents/skills
- .circleci
- .github/workflows
- .husky
- addOns/externals/dicom-microscopy-viewer
- docs
- karma-baselines
- compat
- packages
- adapters
- examples
- segmentationExport
- segmentationStack
- segmentationVolume
- src
- ai
- src
- codemods
- registry/cornerstone3d/5
- generic-viewport
- scripts
- tests
- edge-existing-utilities-import
- negative-no-matching-accessors
- nested-stack-viewport
- positive-viewport-accessors
- viewport-accessors
- scripts
- core
- examples
- dicomLoader
- dynamicVolume
- ecg
- genericEcg
- genericMultiVolumeAPI
- genericStackAPI
- genericStackPosition
- genericVideo
- genericViewportScale
- genericWsi
- multiVolumeAPI
- multiVolumeCanvasToWorld
- polyDataActorAPI
- programaticPanZoom
- stackAPI
- stackBasic
- stackCanvasToWorld
- stackEvents
- stackPosition
- stackProperties
- stackToVolumeFusion
- stackVoiSigmoid
- stacktovolume
- video
- viewportProjection
- volumeAPI
- volumeBasicWadoUri
- volumeBasic
- volumeEvents
- volumeLarge
- volumePosition
- volumePriorityLoading
- volumeViewport3D
- volumeVoiSigmoid
- wadouri
- webGLContextPooling
- webLoader
- wsi
- src
- RenderingEngine
- CanvasActor
- GenericViewport
- ECG
- Planar
- Video
- Volume3D
- WSI
- helpers
- cpuFallback
- colors
- rendering
- stats
- vtkClasses
- cache
- classes
- enums
- loaders
- types
- utilities
- webWorkerManager
- test
- groundTruth
- utilities
- dicomImageLoader
- examples/dicomImageLoaderWADOURI
- src
- imageLoader
- colorSpaceConverters
- wadors
- metaData
- wadouri
- metaData
- types
- testImages
- docs
- docs
- concepts
- cornerstone-core
- generic-viewport
- cornerstone-metadata
- cornerstone-tools
- contribute
- getting-started
- migration-guides
- 2x
- 4x
- 5x
- src
- labelmap-interpolation
- examples/labelmapInterpolation
- src
- metadata
- src
- enums
- types
- utilities
- dicomStream
- metadataProvider
- modules
- test
- nifti-volume-loader
- examples
- niftiBasic
- niftiWithTools
- src
- polymorphic-segmentation
- examples
- PolySegWasmContourToStackLabelmap
- PolySegWasmContourToSurface
- PolySegWasmContourToVolumeLabelmap
- PolySegWasmStackLabelmapToSurface
- PolySegWasmSurfaceToContour
- PolySegWasmSurfaceToStackLabelmap
- PolySegWasmSurfaceToVolumeLabelmap
- PolySegWasmVolumeLabelmapToContour
- PolySegWasmVolumeLabelmapToSurface
- src
- tools
- examples
- CINETool
- advancedMagnifyTool
- annotationSelectionAndLocking
- annotationToolModes
- annotationVisibility
- calibrationTools
- cancelAnnotationDrawing
- changeColormap
- circleROIStartEndThresholdWithSegmentation
- contourApi
- contourRenderingConfiguration
- contourRenderingMultiple
- contourRendering
- contourSegmentationConfiguration
- crossHairsBindings
- crossHairs
- cursor3D
- dynamicCINETool
- dynamicallyAddAnnotations
- etdrsGrid
- generateImageFromTimeData
- genericLabelmapOverlapPlayground
- genericLabelmapRendering
- genericLabelmapSegmentationTools
- genericLabelmapSliceRenderingTools
- genericLabelmapSliceRendering
- genericStackLabelmapSegmentation
- genericStackManipulationTools
- genericVolumeAnnotationTools
- growCutLabelmap
- imageSliceSynchronization
- interpolationContourSegmentation
- labelmapGlobalConfiguration
- labelmapMIP
- labelmapOverlapPetCt
- labelmapOverlapPlayground
- labelmapRenderingDifferentResolutions
- labelmapRendering
- labelmapSegmentColorChange
- labelmapSegmentLocking
- labelmapSegmentSpecificConfiguration
- labelmapSegmentationDynamicThreshold
- labelmapSegmentationTools
- labelmapSliceRenderingTools
- labelmapSliceRendering
- labelmapStatisticsVolume
- labelmapStatistics
- labelmapSwapping
- labelmapViewportSpecificConfiguration
- leftClickRightClickTools
- livewireContourSegmentation
- livewireContour
- localAdvanced
- local
- logicalOperators
- magnifyTool
- mipJumpToClick
- modifierKeys
- mprReformat
- multipleToolGroups
- orientationMarker
- overlayGrid
- planarFreehandContourSegmentationTool
- planarFreehandROITool
- rectangleROIStartEndThresholdWithSegmentation
- rectangleROIThreshold
- referenceCursors
- referenceLines
- regionSegmentPlus
- regionSegment
- renderingPipelinesCPU
- renderingPipelines
- resetCamera
- scaleOverlayTool
- segmentLabel
- segmentSelect
- splineContourSegmentationToolsAdvanced
- splineContourSegmentationTools
- splineROITools
- stackAndStackLabelmap
- stackAndVolumeLabelmap
- stackAnnotationToolsSpecificConfiguration
- stackAnnotationTools
- stackLabelmapSegmentation
- stackManipulationTools
- stackRange
- stackToVolumeWithAnnotations
- stackToVolumeWithSegmentations
- stackViewportsWithSegmentationSync
- surfaceRenderingForTest
- surfaceRendering
- toolHistoryGrouping
- toolHistory
- tutorial
- ultrasoundColors
- ultrasoundEnhancedRegion
- ultrasoundPleuraBLineAnnotation
- videoColor
- videoContourSegmentation
- videoGroup
- videoRange
- videoSegmentation
- videoSplineROITools
- videoTools
- viewportProjectionSynchronizer
- volumeAndVolumeLabelmap
- volumeAnnotationTools
- volumeCroppingTool
- volumeDecimatedLoading
- volumeSlabScroll
- volumeViewportOrientation
- volumeViewportSynchronization
- webWorker
- windowLevelRegion
- wsiAnnotationTools
- src
- drawingSvg
- eventListeners
- keyboard
- mouse
- segmentation
- labelmap
- touch
- wheel
- stateManagement
- annotation
- segmentation
- helpers
- labelmapModel
- models
- store
- synchronizers/callbacks
- tools
- annotation
- base
- displayTools
- Labelmap
- labelmapRenderPlan
- segmentation
- strategies
- compositions
- utils
- utils
- __tests__
- types
- utilities
- segmentation
- stackPrefetch
- touch
- viewportFilters
- test
- utils
- src
- utilities
- logging
- math
- object
- scripts
- ci
- karma-report
- tests
- genericViewport
- screenshots
- Mobile-Android/genericViewport
- genericEcg.spec.ts
- genericLabelmapOverlapPlayground.spec.ts
- genericLabelmapRendering.spec.ts
- genericLabelmapSliceRendering.spec.ts
- genericMultiVolumeAPI.spec.ts
- genericStackAPI.spec.ts
- genericStackLabelmapSegmentation.spec.ts
- genericStackManipulationTools.spec.ts
- genericVideo.spec.ts
- genericWsi.spec.ts
- chromium
- MPRReformat.spec.ts
- contextPoolRenderingEngine.spec.ts
- contourRendering.spec.ts
- contourRenderingTiled.spec.ts
- dicomImageLoaderWADOURI.spec.ts
- genericViewport
- genericEcg.spec.ts
- genericLabelmapOverlapPlayground.spec.ts
- genericLabelmapRendering.spec.ts
- genericLabelmapSegmentationTools.spec.ts
- genericLabelmapSliceRendering.spec.ts
- genericLabelmapSliceRenderingTools.spec.ts
- genericMultiVolumeAPI.spec.ts
- genericStackLabelmapSegmentation.spec.ts
- genericStackManipulationTools.spec.ts
- genericStackPosition.spec.ts
- genericVideo.spec.ts
- genericViewportScale.spec.ts
- genericVolumeAnnotationTools.spec.ts
- genericWsi.spec.ts
- interpolationContourSegmentation.spec.ts
- labelmapGlobalConfiguration.spec.ts
- labelmapRendering.spec.ts
- labelmapRenderingTiled.spec.ts
- labelmapSwapping.spec.ts
- labelmapsegmentationtools.spec.ts
- splineContourSegmentationTools.spec.ts
- stackAPI.spec.ts
- stackAnnotation.spec.ts
- stackAnnotationTiled.spec.ts
- stackBasic.spec.ts
- stackBasicTiled.spec.ts
- stackLabelmapSegmentation
- circleScissor.spec.ts
- circularBrush.spec.ts
- circularEraser1.spec.ts
- circularEraser2.spec.ts
- dynamicThresholdTests.spec.ts
- rectangleScissor.spec.ts
- sphereBrush.spec.ts
- stackManipulationTools.spec.ts
- stackPosition.spec.ts
- stackProperties.spec.ts
- ultrasoundColors.spec.ts
- volumeAnnotation.spec.ts
- volumeAnnotationTiled.spec.ts
- volumeBasic.spec.ts
- volumeBasicTiled.spec.ts
- webkit/labelmapsegmentationtools.spec.ts
- stackLabelmapSegmentation
- utils
- vitest-browser
- utils
- ExampleRunner
- demo/helpers
- test
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
| 18 | + | |
| 19 | + | |
22 | 20 | | |
23 | 21 | | |
24 | 22 | | |
25 | 23 | | |
26 | 24 | | |
27 | 25 | | |
28 | 26 | | |
29 | | - | |
30 | | - | |
| 27 | + | |
| 28 | + | |
31 | 29 | | |
32 | 30 | | |
33 | 31 | | |
| |||
38 | 36 | | |
39 | 37 | | |
40 | 38 | | |
41 | | - | |
42 | | - | |
| 39 | + | |
| 40 | + | |
43 | 41 | | |
44 | 42 | | |
45 | | - | |
| 43 | + | |
46 | 44 | | |
47 | 45 | | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
| 46 | + | |
65 | 47 | | |
66 | 48 | | |
67 | 49 | | |
| |||
70 | 52 | | |
71 | 53 | | |
72 | 54 | | |
73 | | - | |
| 55 | + | |
74 | 56 | | |
75 | 57 | | |
76 | 58 | | |
77 | | - | |
| 59 | + | |
78 | 60 | | |
79 | 61 | | |
80 | 62 | | |
81 | | - | |
| 63 | + | |
82 | 64 | | |
83 | 65 | | |
84 | 66 | | |
85 | 67 | | |
86 | 68 | | |
87 | | - | |
| 69 | + | |
88 | 70 | | |
89 | 71 | | |
90 | 72 | | |
| |||
95 | 77 | | |
96 | 78 | | |
97 | 79 | | |
98 | | - | |
| 80 | + | |
99 | 81 | | |
100 | 82 | | |
101 | | - | |
102 | | - | |
| 83 | + | |
| 84 | + | |
103 | 85 | | |
104 | 86 | | |
105 | 87 | | |
| 88 | + | |
106 | 89 | | |
107 | 90 | | |
108 | 91 | | |
| |||
118 | 101 | | |
119 | 102 | | |
120 | 103 | | |
121 | | - | |
| 104 | + | |
122 | 105 | | |
123 | 106 | | |
124 | 107 | | |
| |||
133 | 116 | | |
134 | 117 | | |
135 | 118 | | |
136 | | - | |
| 119 | + | |
137 | 120 | | |
138 | 121 | | |
139 | 122 | | |
140 | 123 | | |
141 | 124 | | |
142 | 125 | | |
143 | | - | |
| 126 | + | |
144 | 127 | | |
145 | 128 | | |
146 | 129 | | |
| |||
171 | 154 | | |
172 | 155 | | |
173 | 156 | | |
174 | | - | |
| 157 | + | |
| 158 | + | |
175 | 159 | | |
176 | 160 | | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
177 | 164 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | | - | |
| 35 | + | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| |||
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
86 | | - | |
| 87 | + | |
87 | 88 | | |
88 | 89 | | |
89 | 90 | | |
| |||
100 | 101 | | |
101 | 102 | | |
102 | 103 | | |
103 | | - | |
| 104 | + | |
104 | 105 | | |
105 | 106 | | |
106 | 107 | | |
| |||
110 | 111 | | |
111 | 112 | | |
112 | 113 | | |
113 | | - | |
| 114 | + | |
114 | 115 | | |
115 | 116 | | |
116 | 117 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
| 25 | + | |
| 26 | + | |
27 | 27 | | |
28 | | - | |
29 | | - | |
| 28 | + | |
30 | 29 | | |
31 | | - | |
32 | | - | |
| 30 | + | |
| 31 | + | |
33 | 32 | | |
34 | | - | |
| 33 | + | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 37 | + | |
44 | 38 | | |
45 | 39 | | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
| 40 | + | |
53 | 41 | | |
54 | 42 | | |
55 | | - | |
| 43 | + | |
56 | 44 | | |
57 | 45 | | |
58 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
| 22 | + | |
| 23 | + | |
24 | 24 | | |
25 | | - | |
26 | | - | |
| 25 | + | |
27 | 26 | | |
28 | | - | |
29 | | - | |
| 27 | + | |
| 28 | + | |
30 | 29 | | |
31 | | - | |
| 30 | + | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
| 32 | + | |
32 | 33 | | |
| 34 | + | |
33 | 35 | | |
34 | 36 | | |
35 | | - | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
60 | 62 | | |
61 | 63 | | |
62 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
63 | 73 | | |
64 | 74 | | |
65 | 75 | | |
| |||
69 | 79 | | |
70 | 80 | | |
71 | 81 | | |
| 82 | + | |
72 | 83 | | |
73 | 84 | | |
74 | | - | |
| 85 | + | |
75 | 86 | | |
76 | | - | |
77 | | - | |
| 87 | + | |
| 88 | + | |
78 | 89 | | |
79 | 90 | | |
80 | 91 | | |
| |||
99 | 110 | | |
100 | 111 | | |
101 | 112 | | |
102 | | - | |
| 113 | + | |
103 | 114 | | |
104 | 115 | | |
105 | 116 | | |
| |||
110 | 121 | | |
111 | 122 | | |
112 | 123 | | |
113 | | - | |
| 124 | + | |
114 | 125 | | |
115 | 126 | | |
116 | 127 | | |
| |||
0 commit comments