diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md old mode 100644 new mode 100755 diff --git a/.github/workflows/gradle-test.yml b/.github/workflows/gradle-test.yml old mode 100644 new mode 100755 index e04c472..3d65a46 --- a/.github/workflows/gradle-test.yml +++ b/.github/workflows/gradle-test.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-java@v4 with: distribution: 'liberica' - java-version: '17' + java-version: '19' - name: Grant execute permission for gradlew run: chmod +x gradlew diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.gitmessage.txt b/.gitmessage.txt old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/build.gradle.kts b/build.gradle.kts old mode 100644 new mode 100755 diff --git a/docs/README.md b/docs/README.md old mode 100644 new mode 100755 index e69de29..c878c04 --- a/docs/README.md +++ b/docs/README.md @@ -0,0 +1,41 @@ +# Layered Architecture에 따른 기능 목록 + +### Presentation Layer - 사용자와 상호작용 + +- UserInputManager - 사용자의 입력 + - 로또 구입 금액 입력 + - 당첨 번호 입력 + - 보너스 번호 입력 +- SystemOutputManager - 값 출력 + - 로또 수량 및 번호 출력 + - 당첨 내역 출력 + - 수익률 출력 + +### Application Layer - 기능적 요구사항 + +- LottoGenerator - 금액에 따라 로또를 생성 + - 구입 금액에 따른 로또 수량 계산 + - 로또 수량에 따른 로또 번호 생성 + +- LottoResultCalculator - 로또 당첨 내역과 수익률 계산 + - 로또의 당첨 내역와 수익률 계산 + +### Data Layer +- Customer - class - **정확한** 고객의 저장 + - 사용자 구입 금액 저장 + - 생성한 로또 저장 + - 로또 구입 금액 유효성 검사 +- LottoCompany - class - **정확한** 당첨 번호와 보너스 번호 저장 + - 당첨 번호 저장 + - 보너스 번호 저장 + - 당첨 번호와 보너스 번호 유효성 검사 +- Lotto - record - **정확한** 로또 번호 저장 + - 로또 저장 + - 생성한 로또 유효성 검사 + +### Util + +- ExceptionStatus - enum + - 예외 코드와 에러 메세지 저장 및 exception 발생 +- Winnings - enum + - 상금과 당첨 액수 저장 \ No newline at end of file diff --git a/docs/pull_request_template.md b/docs/pull_request_template.md old mode 100644 new mode 100755 diff --git a/gradle.properties b/gradle.properties old mode 100644 new mode 100755 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar old mode 100644 new mode 100755 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties old mode 100644 new mode 100755 diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/gradlew.bat b/gradlew.bat old mode 100644 new mode 100755 diff --git a/hs_err_pid36733.log b/hs_err_pid36733.log new file mode 100644 index 0000000..e18fe1f --- /dev/null +++ b/hs_err_pid36733.log @@ -0,0 +1,1481 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# SIGSEGV (0xb) at pc=0x0000000107026ed0, pid=36733, tid=6663 +# +# JRE version: OpenJDK Runtime Environment Corretto-19.0.2.7.1 (19.0.2+7) (build 19.0.2+7-FR) +# Java VM: OpenJDK 64-Bit Server VM Corretto-19.0.2.7.1 (19.0.2+7-FR, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64) +# Problematic frame: +# V [libjvm.dylib+0xa16ed0] ThreadsListHandle::ThreadsListHandle(Thread*)+0x20 +# +# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again +# +# If you would like to submit a bug report, please visit: +# https://github.com/corretto/corretto-19/issues/ +# + +--------------- S U M M A R Y ------------ + +Command Line: -Dorg.gradle.internal.worker.tmpdir=/Users/solsol/spring-study/java-lotto/build/tmp/test/work -Dorg.gradle.native=false -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=KR -Duser.language=ko -Duser.variant -ea worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 24' + +Host: "Mac14,2" arm64, 8 cores, 16G, Darwin 23.0.0, macOS 14.0 (23A344) +Time: Tue Mar 12 10:13:14 2024 KST elapsed time: 254.831965 seconds (0d 0h 4m 14s) + +--------------- T H R E A D --------------- + +Current thread is native thread + +Stack: [0x000000016ae08000,0x000000016ae8b000], sp=0x000000016ae8ade0, free space=523k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [libjvm.dylib+0xa16ed0] ThreadsListHandle::ThreadsListHandle(Thread*)+0x20 +V [libjvm.dylib+0x46fcf0] GlobalCounter::write_synchronize()+0x60 +V [libjvm.dylib+0x43fd2c] G1SegmentedArrayFreeList::free_all()+0xb4 +V [libjvm.dylib+0x441244] G1SegmentedArrayFreePool::~G1SegmentedArrayFreePool()+0x30 +C [libsystem_c.dylib+0x27060] __cxa_finalize_ranges+0x1dc +C [libsystem_c.dylib+0x26de8] exit+0x2c +C [libjli.dylib+0xc490] dummyTimer+0x0 +C [libsystem_pthread.dylib+0x7034] _pthread_start+0x88 + + +siginfo: si_signo: 11 (SIGSEGV), si_code: 2 (SEGV_ACCERR), si_addr: 0x00000000000000c8 + +Registers: + x0=0x000000016ae8ae38 x1=0x0000000000000000 x2=0x0000002880001513 x3=0x0000170300000203 + x4=0x00000d5b00000000 x5=0x0000170300000001 x6=0x000000000000002c x7=0x0000000000000000 + x8=0x0000000000000100 x9=0x0000000000000002 x10=0x0000000000000000 x11=0x0000000000000002 +x12=0x0000000000000000 x13=0x0000000000000000 x14=0x000000002f208007 x15=0x0000000000000007 +x16=0x0000000000000102 x17=0x0000000000000000 x18=0x0000000000000000 x19=0x000000016ae8ae38 +x20=0x0000000000002a00 x21=0x0000000000000000 x22=0x0000000000000000 x23=0x00000001073280d0 +x24=0x0000000000000018 x25=0x0000000000000008 x26=0x000000000000001c x27=0x000000000000001b +x28=0x000000000000001b fp=0x000000016ae8adf0 lr=0x0000000106a7fcf0 sp=0x000000016ae8ade0 +pc=0x0000000107026ed0 cpsr=0x0000000060001000 + +Top of Stack: (sp=0x000000016ae8ade0) +0x000000016ae8ade0: 0000000000002a00 000000016ae8ae38 +0x000000016ae8adf0: 000000016ae8aea0 0000000106a7fcf0 +0x000000016ae8ae00: 0000000185504f6c 00000001e0990210 +0x000000016ae8ae10: 000000016ae8aea0 000000016ae8ae58 +0x000000016ae8ae20: 000000016ae8ae38 0000000105415bd0 +0x000000016ae8ae30: 000000016ae8ade0 0000000000000000 +0x000000016ae8ae40: 0000000000000000 0000000000000000 +0x000000016ae8ae50: 0000000000000100 00000001dcb16000 +0x000000016ae8ae60: 0000000000000008 0000000000000008 +0x000000016ae8ae70: 0000000000000009 ab69665dec5900be +0x000000016ae8ae80: 0000000000000000 0000000000000000 +0x000000016ae8ae90: 0000600001421100 000060000030c2b0 +0x000000016ae8aea0: 000000016ae8aef0 0000000106a4fd2c +0x000000016ae8aeb0: 000000000000001c 00000001dcb16000 +0x000000016ae8aec0: 0000000000000008 0000000000000000 +0x000000016ae8aed0: 0000000105458030 0000000000000000 +0x000000016ae8aee0: 0000000000000000 0000000107302f20 +0x000000016ae8aef0: 000000016ae8af20 0000000106a51244 +0x000000016ae8af00: 0000000105458030 0000000000000002 +0x000000016ae8af10: 00000001dcb14c80 0000000000000000 +0x000000016ae8af20: 000000016ae8af80 0000000185707060 +0x000000016ae8af30: 0000000000000000 0000000000000000 +0x000000016ae8af40: 0000000000000000 0000000000000000 +0x000000016ae8af50: 0000000000000000 0000000000000000 +0x000000016ae8af60: 0000000000000000 0000000000000000 +0x000000016ae8af70: 000000010549c000 0000000000000001 +0x000000016ae8af80: 000000016ae8afa0 f54f000185706de8 +0x000000016ae8af90: 000000010549c000 000000016ae023b0 +0x000000016ae8afa0: 000000016ae8afc0 0b6e800105490490 +0x000000016ae8afb0: 0000000000000000 000000016ae8b000 +0x000000016ae8afc0: 000000016ae8afe0 0000000185847034 +0x000000016ae8afd0: 0000000000000000 0000000000000000 + +Instructions: (pc=0x0000000107026ed0) +0x0000000107026dd0: a9be4ff4 a9017bfd 910043fd aa0003f3 +0x0000000107026de0: a900041f f900081f 52802008 79003008 +0x0000000107026df0: f9406428 f9000008 f9006420 f9400408 +0x0000000107026e00: 91030108 f8bfc108 b5000068 f9400268 +0x0000000107026e10: b40001e8 aa1303e0 97fffd02 aa1303e0 +0x0000000107026e20: f8020c1f 3900401f b00016e8 91089d08 +0x0000000107026e30: 39400108 34000048 94001c55 aa1303e0 +0x0000000107026e40: a9417bfd a8c24ff4 d65f03c0 900015a8 +0x0000000107026e50: 911fc108 f8bfc109 b240012a f940066b +0x0000000107026e60: 9103016b c89ffd6a d5033bbf f8bfc10b +0x0000000107026e70: eb09017f 54ffff01 f940066b 9103016b +0x0000000107026e80: d5033bbf aa0a03ec c8ac7d69 eb0a019f +0x0000000107026e90: 1a9f17eb 7100017f 9a8c114b d5033bbf +0x0000000107026ea0: eb0a017f 54fffd81 f9000a69 17ffffdc +0x0000000107026eb0: a9be4ff4 a9017bfd 910043fd aa0003f3 +0x0000000107026ec0: a900041f f900081f 52802008 79003008 +0x0000000107026ed0: f9406428 f9000008 f9006420 f9400408 +0x0000000107026ee0: 91030108 f8bfc108 b5000068 f9400268 +0x0000000107026ef0: b40001e8 aa1303e0 97fffcca aa1303e0 +0x0000000107026f00: f8020c1f 3900401f b00016e8 91089d08 +0x0000000107026f10: 39400108 34000048 94001c1d aa1303e0 +0x0000000107026f20: a9417bfd a8c24ff4 d65f03c0 900015a8 +0x0000000107026f30: 911fc108 f8bfc109 b240012a f940066b +0x0000000107026f40: 9103016b c89ffd6a d5033bbf f8bfc10b +0x0000000107026f50: eb09017f 54ffff01 f940066b 9103016b +0x0000000107026f60: d5033bbf aa0a03ec c8ac7d69 eb0a019f +0x0000000107026f70: 1a9f17eb 7100017f 9a8c114b d5033bbf +0x0000000107026f80: eb0a017f 54fffd81 f9000a69 17ffffdc +0x0000000107026f90: a9be4ff4 a9017bfd 910043fd aa0003f3 +0x0000000107026fa0: b00016e8 91089d08 39400108 340003a8 +0x0000000107026fb0: 91008274 aa1403e0 94001c05 aa1403e0 +0x0000000107026fc0: 94001c1d 90001808 9108c108 52800029 + + + +--------------- P R O C E S S --------------- + +VM state: at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x0000600003d0aa40] Threads_lock - owner thread: 0x000000014e808440 +[0x0000600003d0aac0] Heap_lock - owner thread: 0x000000014f038600 + +OutOfMemory and StackOverflow Exception counts: +OutOfMemoryError java_heap_errors=80 +LinkageErrors=76 + +Heap address: 0x00000007e0000000, size: 512 MB, Compressed Oops mode: Zero based, Oop shift amount: 3 + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800c44000-0x0000000800c44000), size 12861440, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000801000000-0x0000000841000000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + + +Heap: + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x00000007e0000000, 0x00000007e0100000, 0x00000007e0100000|100%| O| |TAMS 0x00000007e0000000, 0x00000007e0000000| Untracked +| 1|0x00000007e0100000, 0x00000007e01ffff8, 0x00000007e0200000| 99%| O| |TAMS 0x00000007e0100000, 0x00000007e0100000| Untracked +| 2|0x00000007e0200000, 0x00000007e02ffff8, 0x00000007e0300000| 99%| O| |TAMS 0x00000007e0200000, 0x00000007e0200000| Untracked +| 3|0x00000007e0300000, 0x00000007e03ffff8, 0x00000007e0400000| 99%| O| |TAMS 0x00000007e0300000, 0x00000007e0300000| Untracked +| 4|0x00000007e0400000, 0x00000007e04fffd8, 0x00000007e0500000| 99%| O| |TAMS 0x00000007e0400000, 0x00000007e0400000| Untracked +| 5|0x00000007e0500000, 0x00000007e05ffff8, 0x00000007e0600000| 99%| O| |TAMS 0x00000007e0500000, 0x00000007e0500000| Untracked +| 6|0x00000007e0600000, 0x00000007e06fffb8, 0x00000007e0700000| 99%| O| |TAMS 0x00000007e0600000, 0x00000007e0600000| Untracked +| 7|0x00000007e0700000, 0x00000007e07fffd8, 0x00000007e0800000| 99%| O| |TAMS 0x00000007e0700000, 0x00000007e0700000| Untracked +| 8|0x00000007e0800000, 0x00000007e08fffe8, 0x00000007e0900000| 99%| O| |TAMS 0x00000007e0800000, 0x00000007e0800000| Untracked +| 9|0x00000007e0900000, 0x00000007e0a00000, 0x00000007e0a00000|100%| O| |TAMS 0x00000007e0900000, 0x00000007e0900000| Untracked +| 10|0x00000007e0a00000, 0x00000007e0afffe0, 0x00000007e0b00000| 99%| O| |TAMS 0x00000007e0a00000, 0x00000007e0a00000| Untracked +| 11|0x00000007e0b00000, 0x00000007e0bfffe8, 0x00000007e0c00000| 99%| O| |TAMS 0x00000007e0b00000, 0x00000007e0b00000| Untracked +| 12|0x00000007e0c00000, 0x00000007e0cffff0, 0x00000007e0d00000| 99%| O| |TAMS 0x00000007e0c00000, 0x00000007e0c00000| Untracked +| 13|0x00000007e0d00000, 0x00000007e0e00000, 0x00000007e0e00000|100%| O| |TAMS 0x00000007e0d00000, 0x00000007e0d00000| Untracked +| 14|0x00000007e0e00000, 0x00000007e0effff0, 0x00000007e0f00000| 99%| O| |TAMS 0x00000007e0e00000, 0x00000007e0e00000| Untracked +| 15|0x00000007e0f00000, 0x00000007e0ffffe8, 0x00000007e1000000| 99%| O| |TAMS 0x00000007e0f00000, 0x00000007e0f00000| Untracked +| 16|0x00000007e1000000, 0x00000007e10fffc0, 0x00000007e1100000| 99%| O| |TAMS 0x00000007e1000000, 0x00000007e1000000| Untracked +| 17|0x00000007e1100000, 0x00000007e11ffff8, 0x00000007e1200000| 99%| O| |TAMS 0x00000007e1100000, 0x00000007e1100000| Untracked +| 18|0x00000007e1200000, 0x00000007e12ffff0, 0x00000007e1300000| 99%| O| |TAMS 0x00000007e1200000, 0x00000007e1200000| Untracked +| 19|0x00000007e1300000, 0x00000007e13ffff8, 0x00000007e1400000| 99%| O| |TAMS 0x00000007e1300000, 0x00000007e1300000| Untracked +| 20|0x00000007e1400000, 0x00000007e1500000, 0x00000007e1500000|100%| O| |TAMS 0x00000007e1400000, 0x00000007e1400000| Untracked +| 21|0x00000007e1500000, 0x00000007e15fffe8, 0x00000007e1600000| 99%| O| |TAMS 0x00000007e1500000, 0x00000007e1500000| Untracked +| 22|0x00000007e1600000, 0x00000007e16fffe8, 0x00000007e1700000| 99%| O| |TAMS 0x00000007e1600000, 0x00000007e1600000| Untracked +| 23|0x00000007e1700000, 0x00000007e1800000, 0x00000007e1800000|100%| O| |TAMS 0x00000007e1700000, 0x00000007e1700000| Untracked +| 24|0x00000007e1800000, 0x00000007e18fffe0, 0x00000007e1900000| 99%| O| |TAMS 0x00000007e1800000, 0x00000007e1800000| Untracked +| 25|0x00000007e1900000, 0x00000007e1a00000, 0x00000007e1a00000|100%| O| |TAMS 0x00000007e1900000, 0x00000007e1900000| Untracked +| 26|0x00000007e1a00000, 0x00000007e1afffe8, 0x00000007e1b00000| 99%| O| |TAMS 0x00000007e1a00000, 0x00000007e1a00000| Untracked +| 27|0x00000007e1b00000, 0x00000007e1bfffe8, 0x00000007e1c00000| 99%| O| |TAMS 0x00000007e1b00000, 0x00000007e1b00000| Untracked +| 28|0x00000007e1c00000, 0x00000007e1cffff8, 0x00000007e1d00000| 99%| O| |TAMS 0x00000007e1c00000, 0x00000007e1c00000| Untracked +| 29|0x00000007e1d00000, 0x00000007e1dffff8, 0x00000007e1e00000| 99%| O| |TAMS 0x00000007e1d00000, 0x00000007e1d00000| Untracked +| 30|0x00000007e1e00000, 0x00000007e1efffe0, 0x00000007e1f00000| 99%| O| |TAMS 0x00000007e1e00000, 0x00000007e1e00000| Untracked +| 31|0x00000007e1f00000, 0x00000007e1fffff8, 0x00000007e2000000| 99%| O| |TAMS 0x00000007e1f00000, 0x00000007e1f00000| Untracked +| 32|0x00000007e2000000, 0x00000007e20fffb0, 0x00000007e2100000| 99%| O| |TAMS 0x00000007e2000000, 0x00000007e2000000| Untracked +| 33|0x00000007e2100000, 0x00000007e21fffd8, 0x00000007e2200000| 99%| O| |TAMS 0x00000007e2100000, 0x00000007e2100000| Untracked +| 34|0x00000007e2200000, 0x00000007e22fffd8, 0x00000007e2300000| 99%| O| |TAMS 0x00000007e2200000, 0x00000007e2200000| Untracked +| 35|0x00000007e2300000, 0x00000007e23fffe8, 0x00000007e2400000| 99%| O| |TAMS 0x00000007e2300000, 0x00000007e2300000| Untracked +| 36|0x00000007e2400000, 0x00000007e2500000, 0x00000007e2500000|100%| O| |TAMS 0x00000007e2400000, 0x00000007e2400000| Untracked +| 37|0x00000007e2500000, 0x00000007e25ffff8, 0x00000007e2600000| 99%| O| |TAMS 0x00000007e2500000, 0x00000007e2500000| Untracked +| 38|0x00000007e2600000, 0x00000007e26ffff0, 0x00000007e2700000| 99%| O| |TAMS 0x00000007e2600000, 0x00000007e2600000| Untracked +| 39|0x00000007e2700000, 0x00000007e27ffff8, 0x00000007e2800000| 99%| O| |TAMS 0x00000007e2700000, 0x00000007e2700000| Untracked +| 40|0x00000007e2800000, 0x00000007e28ffff8, 0x00000007e2900000| 99%| O| |TAMS 0x00000007e2800000, 0x00000007e2800000| Untracked +| 41|0x00000007e2900000, 0x00000007e2a00000, 0x00000007e2a00000|100%| O| |TAMS 0x00000007e2900000, 0x00000007e2900000| Untracked +| 42|0x00000007e2a00000, 0x00000007e2b00000, 0x00000007e2b00000|100%| O| |TAMS 0x00000007e2a00000, 0x00000007e2a00000| Untracked +| 43|0x00000007e2b00000, 0x00000007e2bfffd8, 0x00000007e2c00000| 99%| O| |TAMS 0x00000007e2b00000, 0x00000007e2b00000| Untracked +| 44|0x00000007e2c00000, 0x00000007e2cfffc0, 0x00000007e2d00000| 99%| O| |TAMS 0x00000007e2c00000, 0x00000007e2c00000| Untracked +| 45|0x00000007e2d00000, 0x00000007e2dffff8, 0x00000007e2e00000| 99%| O| |TAMS 0x00000007e2d00000, 0x00000007e2d00000| Untracked +| 46|0x00000007e2e00000, 0x00000007e2effff8, 0x00000007e2f00000| 99%| O| |TAMS 0x00000007e2e00000, 0x00000007e2e00000| Untracked +| 47|0x00000007e2f00000, 0x00000007e2fffff0, 0x00000007e3000000| 99%| O| |TAMS 0x00000007e2f00000, 0x00000007e2f00000| Untracked +| 48|0x00000007e3000000, 0x00000007e3100000, 0x00000007e3100000|100%| O| |TAMS 0x00000007e3000000, 0x00000007e3000000| Untracked +| 49|0x00000007e3100000, 0x00000007e31ffff8, 0x00000007e3200000| 99%| O| |TAMS 0x00000007e3100000, 0x00000007e3100000| Untracked +| 50|0x00000007e3200000, 0x00000007e32fffd8, 0x00000007e3300000| 99%| O| |TAMS 0x00000007e3200000, 0x00000007e3200000| Untracked +| 51|0x00000007e3300000, 0x00000007e3400000, 0x00000007e3400000|100%| O| |TAMS 0x00000007e3300000, 0x00000007e3300000| Untracked +| 52|0x00000007e3400000, 0x00000007e34ffff8, 0x00000007e3500000| 99%| O| |TAMS 0x00000007e3400000, 0x00000007e3400000| Untracked +| 53|0x00000007e3500000, 0x00000007e3600000, 0x00000007e3600000|100%| O| |TAMS 0x00000007e3500000, 0x00000007e3500000| Untracked +| 54|0x00000007e3600000, 0x00000007e36ffff8, 0x00000007e3700000| 99%| O| |TAMS 0x00000007e3600000, 0x00000007e3600000| Untracked +| 55|0x00000007e3700000, 0x00000007e37fffe8, 0x00000007e3800000| 99%| O| |TAMS 0x00000007e3700000, 0x00000007e3700000| Untracked +| 56|0x00000007e3800000, 0x00000007e38ffff8, 0x00000007e3900000| 99%| O| |TAMS 0x00000007e3800000, 0x00000007e3800000| Untracked +| 57|0x00000007e3900000, 0x00000007e3a00000, 0x00000007e3a00000|100%| O| |TAMS 0x00000007e3900000, 0x00000007e3900000| Untracked +| 58|0x00000007e3a00000, 0x00000007e3affff8, 0x00000007e3b00000| 99%| O| |TAMS 0x00000007e3a00000, 0x00000007e3a00000| Untracked +| 59|0x00000007e3b00000, 0x00000007e3bffff0, 0x00000007e3c00000| 99%| O| |TAMS 0x00000007e3b00000, 0x00000007e3b00000| Untracked +| 60|0x00000007e3c00000, 0x00000007e3cffff0, 0x00000007e3d00000| 99%| O| |TAMS 0x00000007e3c00000, 0x00000007e3c00000| Untracked +| 61|0x00000007e3d00000, 0x00000007e3dffff0, 0x00000007e3e00000| 99%| O| |TAMS 0x00000007e3d00000, 0x00000007e3d00000| Untracked +| 62|0x00000007e3e00000, 0x00000007e3effff8, 0x00000007e3f00000| 99%| O| |TAMS 0x00000007e3e00000, 0x00000007e3e00000| Untracked +| 63|0x00000007e3f00000, 0x00000007e3ffffd8, 0x00000007e4000000| 99%| O| |TAMS 0x00000007e3f00000, 0x00000007e3f00000| Untracked +| 64|0x00000007e4000000, 0x00000007e40fffd0, 0x00000007e4100000| 99%| O| |TAMS 0x00000007e4000000, 0x00000007e4000000| Untracked +| 65|0x00000007e4100000, 0x00000007e4200000, 0x00000007e4200000|100%| O| |TAMS 0x00000007e4100000, 0x00000007e4100000| Untracked +| 66|0x00000007e4200000, 0x00000007e42ffff8, 0x00000007e4300000| 99%| O| |TAMS 0x00000007e4200000, 0x00000007e4200000| Untracked +| 67|0x00000007e4300000, 0x00000007e43ffff0, 0x00000007e4400000| 99%| O| |TAMS 0x00000007e4300000, 0x00000007e4300000| Untracked +| 68|0x00000007e4400000, 0x00000007e44ffff8, 0x00000007e4500000| 99%| O| |TAMS 0x00000007e4400000, 0x00000007e4400000| Untracked +| 69|0x00000007e4500000, 0x00000007e45fffe0, 0x00000007e4600000| 99%| O| |TAMS 0x00000007e4500000, 0x00000007e4500000| Untracked +| 70|0x00000007e4600000, 0x00000007e46fffe8, 0x00000007e4700000| 99%| O| |TAMS 0x00000007e4600000, 0x00000007e4600000| Untracked +| 71|0x00000007e4700000, 0x00000007e4800000, 0x00000007e4800000|100%| O| |TAMS 0x00000007e4700000, 0x00000007e4700000| Untracked +| 72|0x00000007e4800000, 0x00000007e48fffb8, 0x00000007e4900000| 99%| O| |TAMS 0x00000007e4800000, 0x00000007e4800000| Untracked +| 73|0x00000007e4900000, 0x00000007e49ffff0, 0x00000007e4a00000| 99%| O| |TAMS 0x00000007e4900000, 0x00000007e4900000| Untracked +| 74|0x00000007e4a00000, 0x00000007e4b00000, 0x00000007e4b00000|100%| O| |TAMS 0x00000007e4a00000, 0x00000007e4a00000| Untracked +| 75|0x00000007e4b00000, 0x00000007e4c00000, 0x00000007e4c00000|100%| O| |TAMS 0x00000007e4b00000, 0x00000007e4b00000| Untracked +| 76|0x00000007e4c00000, 0x00000007e4cfffd0, 0x00000007e4d00000| 99%| O| |TAMS 0x00000007e4c00000, 0x00000007e4c00000| Untracked +| 77|0x00000007e4d00000, 0x00000007e4dfffe0, 0x00000007e4e00000| 99%| O| |TAMS 0x00000007e4d00000, 0x00000007e4d00000| Untracked +| 78|0x00000007e4e00000, 0x00000007e4effff0, 0x00000007e4f00000| 99%| O| |TAMS 0x00000007e4e00000, 0x00000007e4e00000| Untracked +| 79|0x00000007e4f00000, 0x00000007e4ffffd8, 0x00000007e5000000| 99%| O| |TAMS 0x00000007e4f00000, 0x00000007e4f00000| Untracked +| 80|0x00000007e5000000, 0x00000007e50fffb0, 0x00000007e5100000| 99%| O| |TAMS 0x00000007e5000000, 0x00000007e5000000| Untracked +| 81|0x00000007e5100000, 0x00000007e51fffc8, 0x00000007e5200000| 99%| O| |TAMS 0x00000007e5100000, 0x00000007e5100000| Untracked +| 82|0x00000007e5200000, 0x00000007e52ffff0, 0x00000007e5300000| 99%| O| |TAMS 0x00000007e5200000, 0x00000007e5200000| Untracked +| 83|0x00000007e5300000, 0x00000007e5400000, 0x00000007e5400000|100%| O| |TAMS 0x00000007e5300000, 0x00000007e5300000| Untracked +| 84|0x00000007e5400000, 0x00000007e5500000, 0x00000007e5500000|100%| O| |TAMS 0x00000007e5400000, 0x00000007e5400000| Untracked +| 85|0x00000007e5500000, 0x00000007e5600000, 0x00000007e5600000|100%| O| |TAMS 0x00000007e5500000, 0x00000007e5500000| Untracked +| 86|0x00000007e5600000, 0x00000007e5700000, 0x00000007e5700000|100%| O| |TAMS 0x00000007e5600000, 0x00000007e5600000| Untracked +| 87|0x00000007e5700000, 0x00000007e57ffff8, 0x00000007e5800000| 99%| O| |TAMS 0x00000007e5700000, 0x00000007e5700000| Untracked +| 88|0x00000007e5800000, 0x00000007e5900000, 0x00000007e5900000|100%| O| |TAMS 0x00000007e5800000, 0x00000007e5800000| Untracked +| 89|0x00000007e5900000, 0x00000007e59fffe0, 0x00000007e5a00000| 99%| O| |TAMS 0x00000007e5900000, 0x00000007e5900000| Untracked +| 90|0x00000007e5a00000, 0x00000007e5afffe0, 0x00000007e5b00000| 99%| O| |TAMS 0x00000007e5a00000, 0x00000007e5a00000| Untracked +| 91|0x00000007e5b00000, 0x00000007e5c00000, 0x00000007e5c00000|100%| O| |TAMS 0x00000007e5b00000, 0x00000007e5b00000| Untracked +| 92|0x00000007e5c00000, 0x00000007e5cffff8, 0x00000007e5d00000| 99%| O| |TAMS 0x00000007e5c00000, 0x00000007e5c00000| Untracked +| 93|0x00000007e5d00000, 0x00000007e5e00000, 0x00000007e5e00000|100%| O| |TAMS 0x00000007e5d00000, 0x00000007e5d00000| Untracked +| 94|0x00000007e5e00000, 0x00000007e5f00000, 0x00000007e5f00000|100%| O| |TAMS 0x00000007e5e00000, 0x00000007e5e00000| Untracked +| 95|0x00000007e5f00000, 0x00000007e5ffffe0, 0x00000007e6000000| 99%| O| |TAMS 0x00000007e5f00000, 0x00000007e5f00000| Untracked +| 96|0x00000007e6000000, 0x00000007e60ffff0, 0x00000007e6100000| 99%| O| |TAMS 0x00000007e6000000, 0x00000007e6000000| Untracked +| 97|0x00000007e6100000, 0x00000007e61fffe8, 0x00000007e6200000| 99%| O| |TAMS 0x00000007e6100000, 0x00000007e6100000| Untracked +| 98|0x00000007e6200000, 0x00000007e6300000, 0x00000007e6300000|100%| O| |TAMS 0x00000007e6200000, 0x00000007e6200000| Untracked +| 99|0x00000007e6300000, 0x00000007e63ffff8, 0x00000007e6400000| 99%| O| |TAMS 0x00000007e6300000, 0x00000007e6300000| Untracked +| 100|0x00000007e6400000, 0x00000007e64ffff0, 0x00000007e6500000| 99%| O| |TAMS 0x00000007e6400000, 0x00000007e6400000| Untracked +| 101|0x00000007e6500000, 0x00000007e65fffb8, 0x00000007e6600000| 99%| O| |TAMS 0x00000007e6500000, 0x00000007e6500000| Untracked +| 102|0x00000007e6600000, 0x00000007e66fffb8, 0x00000007e6700000| 99%| O| |TAMS 0x00000007e6600000, 0x00000007e6600000| Untracked +| 103|0x00000007e6700000, 0x00000007e67ffff8, 0x00000007e6800000| 99%| O| |TAMS 0x00000007e6700000, 0x00000007e6700000| Untracked +| 104|0x00000007e6800000, 0x00000007e68ffff0, 0x00000007e6900000| 99%| O| |TAMS 0x00000007e6800000, 0x00000007e6800000| Untracked +| 105|0x00000007e6900000, 0x00000007e6a00000, 0x00000007e6a00000|100%| O| |TAMS 0x00000007e6900000, 0x00000007e6900000| Untracked +| 106|0x00000007e6a00000, 0x00000007e6b00000, 0x00000007e6b00000|100%| O| |TAMS 0x00000007e6a00000, 0x00000007e6a00000| Untracked +| 107|0x00000007e6b00000, 0x00000007e6bffff8, 0x00000007e6c00000| 99%| O| |TAMS 0x00000007e6b00000, 0x00000007e6b00000| Untracked +| 108|0x00000007e6c00000, 0x00000007e6cffff0, 0x00000007e6d00000| 99%| O| |TAMS 0x00000007e6c00000, 0x00000007e6c00000| Untracked +| 109|0x00000007e6d00000, 0x00000007e6dffff0, 0x00000007e6e00000| 99%| O| |TAMS 0x00000007e6d00000, 0x00000007e6d00000| Untracked +| 110|0x00000007e6e00000, 0x00000007e6effff8, 0x00000007e6f00000| 99%| O| |TAMS 0x00000007e6e00000, 0x00000007e6e00000| Untracked +| 111|0x00000007e6f00000, 0x00000007e6fffff0, 0x00000007e7000000| 99%| O| |TAMS 0x00000007e6f00000, 0x00000007e6f00000| Untracked +| 112|0x00000007e7000000, 0x00000007e70fffe8, 0x00000007e7100000| 99%| O| |TAMS 0x00000007e7000000, 0x00000007e7000000| Untracked +| 113|0x00000007e7100000, 0x00000007e71fffc0, 0x00000007e7200000| 99%| O| |TAMS 0x00000007e7100000, 0x00000007e7100000| Untracked +| 114|0x00000007e7200000, 0x00000007e72fffe8, 0x00000007e7300000| 99%| O| |TAMS 0x00000007e7200000, 0x00000007e7200000| Untracked +| 115|0x00000007e7300000, 0x00000007e73fffb8, 0x00000007e7400000| 99%| O| |TAMS 0x00000007e7300000, 0x00000007e7300000| Untracked +| 116|0x00000007e7400000, 0x00000007e7500000, 0x00000007e7500000|100%| O| |TAMS 0x00000007e7400000, 0x00000007e7400000| Untracked +| 117|0x00000007e7500000, 0x00000007e75ffff8, 0x00000007e7600000| 99%| O| |TAMS 0x00000007e7500000, 0x00000007e7500000| Untracked +| 118|0x00000007e7600000, 0x00000007e7700000, 0x00000007e7700000|100%| O| |TAMS 0x00000007e7600000, 0x00000007e7600000| Untracked +| 119|0x00000007e7700000, 0x00000007e77fffb0, 0x00000007e7800000| 99%| O| |TAMS 0x00000007e7700000, 0x00000007e7700000| Untracked +| 120|0x00000007e7800000, 0x00000007e78ffff8, 0x00000007e7900000| 99%| O| |TAMS 0x00000007e7800000, 0x00000007e7800000| Untracked +| 121|0x00000007e7900000, 0x00000007e79ffff8, 0x00000007e7a00000| 99%| O| |TAMS 0x00000007e7900000, 0x00000007e7900000| Untracked +| 122|0x00000007e7a00000, 0x00000007e7b00000, 0x00000007e7b00000|100%| O| |TAMS 0x00000007e7a00000, 0x00000007e7a00000| Untracked +| 123|0x00000007e7b00000, 0x00000007e7bffff8, 0x00000007e7c00000| 99%| O| |TAMS 0x00000007e7b00000, 0x00000007e7b00000| Untracked +| 124|0x00000007e7c00000, 0x00000007e7d00000, 0x00000007e7d00000|100%| O| |TAMS 0x00000007e7c00000, 0x00000007e7c00000| Untracked +| 125|0x00000007e7d00000, 0x00000007e7dfffd8, 0x00000007e7e00000| 99%| O| |TAMS 0x00000007e7d00000, 0x00000007e7d00000| Untracked +| 126|0x00000007e7e00000, 0x00000007e7efffc8, 0x00000007e7f00000| 99%| O| |TAMS 0x00000007e7e00000, 0x00000007e7e00000| Untracked +| 127|0x00000007e7f00000, 0x00000007e7fffff8, 0x00000007e8000000| 99%| O| |TAMS 0x00000007e7f00000, 0x00000007e7f00000| Untracked +| 128|0x00000007e8000000, 0x00000007e80ffff8, 0x00000007e8100000| 99%| O| |TAMS 0x00000007e8000000, 0x00000007e8000000| Untracked +| 129|0x00000007e8100000, 0x00000007e81ffff0, 0x00000007e8200000| 99%| O| |TAMS 0x00000007e8100000, 0x00000007e8100000| Untracked +| 130|0x00000007e8200000, 0x00000007e82fffb0, 0x00000007e8300000| 99%| O| |TAMS 0x00000007e8200000, 0x00000007e8200000| Untracked +| 131|0x00000007e8300000, 0x00000007e83ffff8, 0x00000007e8400000| 99%| O| |TAMS 0x00000007e8300000, 0x00000007e8300000| Untracked +| 132|0x00000007e8400000, 0x00000007e84fffe8, 0x00000007e8500000| 99%| O| |TAMS 0x00000007e8400000, 0x00000007e8400000| Untracked +| 133|0x00000007e8500000, 0x00000007e8600000, 0x00000007e8600000|100%| O| |TAMS 0x00000007e8500000, 0x00000007e8500000| Untracked +| 134|0x00000007e8600000, 0x00000007e8700000, 0x00000007e8700000|100%| O| |TAMS 0x00000007e8600000, 0x00000007e8600000| Untracked +| 135|0x00000007e8700000, 0x00000007e87ffff0, 0x00000007e8800000| 99%| O| |TAMS 0x00000007e8700000, 0x00000007e8700000| Untracked +| 136|0x00000007e8800000, 0x00000007e88fffb0, 0x00000007e8900000| 99%| O| |TAMS 0x00000007e8800000, 0x00000007e8800000| Untracked +| 137|0x00000007e8900000, 0x00000007e89ffff0, 0x00000007e8a00000| 99%| O| |TAMS 0x00000007e8900000, 0x00000007e8900000| Untracked +| 138|0x00000007e8a00000, 0x00000007e8afffe0, 0x00000007e8b00000| 99%| O| |TAMS 0x00000007e8a00000, 0x00000007e8a00000| Untracked +| 139|0x00000007e8b00000, 0x00000007e8c00000, 0x00000007e8c00000|100%| O| |TAMS 0x00000007e8b00000, 0x00000007e8b00000| Untracked +| 140|0x00000007e8c00000, 0x00000007e8cffff8, 0x00000007e8d00000| 99%| O| |TAMS 0x00000007e8c00000, 0x00000007e8c00000| Untracked +| 141|0x00000007e8d00000, 0x00000007e8dffff8, 0x00000007e8e00000| 99%| O| |TAMS 0x00000007e8d00000, 0x00000007e8d00000| Untracked +| 142|0x00000007e8e00000, 0x00000007e8f00000, 0x00000007e8f00000|100%| O| |TAMS 0x00000007e8e00000, 0x00000007e8e00000| Untracked +| 143|0x00000007e8f00000, 0x00000007e8fffff8, 0x00000007e9000000| 99%| O| |TAMS 0x00000007e8f00000, 0x00000007e8f00000| Untracked +| 144|0x00000007e9000000, 0x00000007e90ffff0, 0x00000007e9100000| 99%| O| |TAMS 0x00000007e9000000, 0x00000007e9000000| Untracked +| 145|0x00000007e9100000, 0x00000007e91ffff8, 0x00000007e9200000| 99%| O| |TAMS 0x00000007e9100000, 0x00000007e9100000| Untracked +| 146|0x00000007e9200000, 0x00000007e92ffff0, 0x00000007e9300000| 99%| O| |TAMS 0x00000007e9200000, 0x00000007e9200000| Untracked +| 147|0x00000007e9300000, 0x00000007e93ffff8, 0x00000007e9400000| 99%| O| |TAMS 0x00000007e9300000, 0x00000007e9300000| Untracked +| 148|0x00000007e9400000, 0x00000007e94ffff0, 0x00000007e9500000| 99%| O| |TAMS 0x00000007e9400000, 0x00000007e9400000| Untracked +| 149|0x00000007e9500000, 0x00000007e95ffff8, 0x00000007e9600000| 99%| O| |TAMS 0x00000007e9500000, 0x00000007e9500000| Untracked +| 150|0x00000007e9600000, 0x00000007e9700000, 0x00000007e9700000|100%| O| |TAMS 0x00000007e9600000, 0x00000007e9600000| Untracked +| 151|0x00000007e9700000, 0x00000007e9800000, 0x00000007e9800000|100%| O| |TAMS 0x00000007e9700000, 0x00000007e9700000| Untracked +| 152|0x00000007e9800000, 0x00000007e98ffff8, 0x00000007e9900000| 99%| O| |TAMS 0x00000007e9800000, 0x00000007e9800000| Untracked +| 153|0x00000007e9900000, 0x00000007e9a00000, 0x00000007e9a00000|100%| O| |TAMS 0x00000007e9900000, 0x00000007e9900000| Untracked +| 154|0x00000007e9a00000, 0x00000007e9b00000, 0x00000007e9b00000|100%| O| |TAMS 0x00000007e9a00000, 0x00000007e9a00000| Untracked +| 155|0x00000007e9b00000, 0x00000007e9bfffd8, 0x00000007e9c00000| 99%| O| |TAMS 0x00000007e9b00000, 0x00000007e9b00000| Untracked +| 156|0x00000007e9c00000, 0x00000007e9d00000, 0x00000007e9d00000|100%| O| |TAMS 0x00000007e9c00000, 0x00000007e9c00000| Untracked +| 157|0x00000007e9d00000, 0x00000007e9dfffd8, 0x00000007e9e00000| 99%| O| |TAMS 0x00000007e9d00000, 0x00000007e9d00000| Untracked +| 158|0x00000007e9e00000, 0x00000007e9effff8, 0x00000007e9f00000| 99%| O| |TAMS 0x00000007e9e00000, 0x00000007e9e00000| Untracked +| 159|0x00000007e9f00000, 0x00000007ea000000, 0x00000007ea000000|100%| O| |TAMS 0x00000007e9f00000, 0x00000007e9f00000| Untracked +| 160|0x00000007ea000000, 0x00000007ea0ffff0, 0x00000007ea100000| 99%| O| |TAMS 0x00000007ea000000, 0x00000007ea000000| Untracked +| 161|0x00000007ea100000, 0x00000007ea1fffc8, 0x00000007ea200000| 99%| O| |TAMS 0x00000007ea100000, 0x00000007ea100000| Untracked +| 162|0x00000007ea200000, 0x00000007ea2ffff8, 0x00000007ea300000| 99%| O| |TAMS 0x00000007ea200000, 0x00000007ea200000| Untracked +| 163|0x00000007ea300000, 0x00000007ea400000, 0x00000007ea400000|100%| O| |TAMS 0x00000007ea300000, 0x00000007ea300000| Untracked +| 164|0x00000007ea400000, 0x00000007ea500000, 0x00000007ea500000|100%| O| |TAMS 0x00000007ea400000, 0x00000007ea400000| Untracked +| 165|0x00000007ea500000, 0x00000007ea5ffff8, 0x00000007ea600000| 99%| O| |TAMS 0x00000007ea500000, 0x00000007ea500000| Untracked +| 166|0x00000007ea600000, 0x00000007ea6fffd8, 0x00000007ea700000| 99%| O| |TAMS 0x00000007ea600000, 0x00000007ea600000| Untracked +| 167|0x00000007ea700000, 0x00000007ea800000, 0x00000007ea800000|100%| O| |TAMS 0x00000007ea700000, 0x00000007ea700000| Untracked +| 168|0x00000007ea800000, 0x00000007ea8fffe8, 0x00000007ea900000| 99%| O| |TAMS 0x00000007ea800000, 0x00000007ea800000| Untracked +| 169|0x00000007ea900000, 0x00000007ea9fffe0, 0x00000007eaa00000| 99%| O| |TAMS 0x00000007ea900000, 0x00000007ea900000| Untracked +| 170|0x00000007eaa00000, 0x00000007eaaffff8, 0x00000007eab00000| 99%| O| |TAMS 0x00000007eaa00000, 0x00000007eaa00000| Untracked +| 171|0x00000007eab00000, 0x00000007eac00000, 0x00000007eac00000|100%| O| |TAMS 0x00000007eab00000, 0x00000007eab00000| Untracked +| 172|0x00000007eac00000, 0x00000007ead00000, 0x00000007ead00000|100%| O| |TAMS 0x00000007eac00000, 0x00000007eac00000| Untracked +| 173|0x00000007ead00000, 0x00000007eae00000, 0x00000007eae00000|100%| O| |TAMS 0x00000007ead00000, 0x00000007ead00000| Untracked +| 174|0x00000007eae00000, 0x00000007eaeffff0, 0x00000007eaf00000| 99%| O| |TAMS 0x00000007eae00000, 0x00000007eae00000| Untracked +| 175|0x00000007eaf00000, 0x00000007eafffff8, 0x00000007eb000000| 99%| O| |TAMS 0x00000007eaf00000, 0x00000007eaf00000| Untracked +| 176|0x00000007eb000000, 0x00000007eb100000, 0x00000007eb100000|100%| O| |TAMS 0x00000007eb000000, 0x00000007eb000000| Untracked +| 177|0x00000007eb100000, 0x00000007eb1ffff0, 0x00000007eb200000| 99%| O| |TAMS 0x00000007eb100000, 0x00000007eb100000| Untracked +| 178|0x00000007eb200000, 0x00000007eb300000, 0x00000007eb300000|100%| O| |TAMS 0x00000007eb200000, 0x00000007eb200000| Untracked +| 179|0x00000007eb300000, 0x00000007eb3ffff0, 0x00000007eb400000| 99%| O| |TAMS 0x00000007eb300000, 0x00000007eb300000| Untracked +| 180|0x00000007eb400000, 0x00000007eb4ffff8, 0x00000007eb500000| 99%| O| |TAMS 0x00000007eb400000, 0x00000007eb400000| Untracked +| 181|0x00000007eb500000, 0x00000007eb5ffff0, 0x00000007eb600000| 99%| O| |TAMS 0x00000007eb500000, 0x00000007eb500000| Untracked +| 182|0x00000007eb600000, 0x00000007eb6ffff8, 0x00000007eb700000| 99%| O| |TAMS 0x00000007eb600000, 0x00000007eb600000| Untracked +| 183|0x00000007eb700000, 0x00000007eb7ffff0, 0x00000007eb800000| 99%| O| |TAMS 0x00000007eb700000, 0x00000007eb700000| Untracked +| 184|0x00000007eb800000, 0x00000007eb8ffff8, 0x00000007eb900000| 99%| O| |TAMS 0x00000007eb800000, 0x00000007eb800000| Untracked +| 185|0x00000007eb900000, 0x00000007eb9ffff0, 0x00000007eba00000| 99%| O| |TAMS 0x00000007eb900000, 0x00000007eb900000| Untracked +| 186|0x00000007eba00000, 0x00000007ebaffff0, 0x00000007ebb00000| 99%| O| |TAMS 0x00000007eba00000, 0x00000007eba00000| Untracked +| 187|0x00000007ebb00000, 0x00000007ebbffff8, 0x00000007ebc00000| 99%| O| |TAMS 0x00000007ebb00000, 0x00000007ebb00000| Untracked +| 188|0x00000007ebc00000, 0x00000007ebcfffe0, 0x00000007ebd00000| 99%| O| |TAMS 0x00000007ebc00000, 0x00000007ebc00000| Untracked +| 189|0x00000007ebd00000, 0x00000007ebdfffd8, 0x00000007ebe00000| 99%| O| |TAMS 0x00000007ebd00000, 0x00000007ebd00000| Untracked +| 190|0x00000007ebe00000, 0x00000007ebeffff8, 0x00000007ebf00000| 99%| O| |TAMS 0x00000007ebe00000, 0x00000007ebe00000| Untracked +| 191|0x00000007ebf00000, 0x00000007ec000000, 0x00000007ec000000|100%| O| |TAMS 0x00000007ebf00000, 0x00000007ebf00000| Untracked +| 192|0x00000007ec000000, 0x00000007ec0ffff8, 0x00000007ec100000| 99%| O| |TAMS 0x00000007ec000000, 0x00000007ec000000| Untracked +| 193|0x00000007ec100000, 0x00000007ec1ffff0, 0x00000007ec200000| 99%| O| |TAMS 0x00000007ec100000, 0x00000007ec100000| Untracked +| 194|0x00000007ec200000, 0x00000007ec2fffe0, 0x00000007ec300000| 99%| O| |TAMS 0x00000007ec200000, 0x00000007ec200000| Untracked +| 195|0x00000007ec300000, 0x00000007ec3ffff8, 0x00000007ec400000| 99%| O| |TAMS 0x00000007ec300000, 0x00000007ec300000| Untracked +| 196|0x00000007ec400000, 0x00000007ec4ffff8, 0x00000007ec500000| 99%| O| |TAMS 0x00000007ec400000, 0x00000007ec400000| Untracked +| 197|0x00000007ec500000, 0x00000007ec5ffff8, 0x00000007ec600000| 99%| O| |TAMS 0x00000007ec500000, 0x00000007ec500000| Untracked +| 198|0x00000007ec600000, 0x00000007ec6ffff0, 0x00000007ec700000| 99%| O| |TAMS 0x00000007ec600000, 0x00000007ec600000| Untracked +| 199|0x00000007ec700000, 0x00000007ec7ffff8, 0x00000007ec800000| 99%| O| |TAMS 0x00000007ec700000, 0x00000007ec700000| Untracked +| 200|0x00000007ec800000, 0x00000007ec8fffc0, 0x00000007ec900000| 99%| O| |TAMS 0x00000007ec800000, 0x00000007ec800000| Untracked +| 201|0x00000007ec900000, 0x00000007eca00000, 0x00000007eca00000|100%| O| |TAMS 0x00000007ec900000, 0x00000007ec900000| Untracked +| 202|0x00000007eca00000, 0x00000007ecb00000, 0x00000007ecb00000|100%| O| |TAMS 0x00000007eca00000, 0x00000007eca00000| Untracked +| 203|0x00000007ecb00000, 0x00000007ecbffff0, 0x00000007ecc00000| 99%| O| |TAMS 0x00000007ecb00000, 0x00000007ecb00000| Untracked +| 204|0x00000007ecc00000, 0x00000007eccfffb8, 0x00000007ecd00000| 99%| O| |TAMS 0x00000007ecc00000, 0x00000007ecc00000| Untracked +| 205|0x00000007ecd00000, 0x00000007ecdffff8, 0x00000007ece00000| 99%| O| |TAMS 0x00000007ecd00000, 0x00000007ecd00000| Untracked +| 206|0x00000007ece00000, 0x00000007eceffff8, 0x00000007ecf00000| 99%| O| |TAMS 0x00000007ece00000, 0x00000007ece00000| Untracked +| 207|0x00000007ecf00000, 0x00000007ecfffff8, 0x00000007ed000000| 99%| O| |TAMS 0x00000007ecf00000, 0x00000007ecf00000| Untracked +| 208|0x00000007ed000000, 0x00000007ed100000, 0x00000007ed100000|100%| O| |TAMS 0x00000007ed000000, 0x00000007ed000000| Untracked +| 209|0x00000007ed100000, 0x00000007ed1fffc8, 0x00000007ed200000| 99%| O| |TAMS 0x00000007ed100000, 0x00000007ed100000| Untracked +| 210|0x00000007ed200000, 0x00000007ed2fffe8, 0x00000007ed300000| 99%| O| |TAMS 0x00000007ed200000, 0x00000007ed200000| Untracked +| 211|0x00000007ed300000, 0x00000007ed3ffff0, 0x00000007ed400000| 99%| O| |TAMS 0x00000007ed300000, 0x00000007ed300000| Untracked +| 212|0x00000007ed400000, 0x00000007ed4ffff0, 0x00000007ed500000| 99%| O| |TAMS 0x00000007ed400000, 0x00000007ed400000| Untracked +| 213|0x00000007ed500000, 0x00000007ed5ffff0, 0x00000007ed600000| 99%| O| |TAMS 0x00000007ed500000, 0x00000007ed500000| Untracked +| 214|0x00000007ed600000, 0x00000007ed700000, 0x00000007ed700000|100%| O| |TAMS 0x00000007ed600000, 0x00000007ed600000| Untracked +| 215|0x00000007ed700000, 0x00000007ed800000, 0x00000007ed800000|100%| O| |TAMS 0x00000007ed700000, 0x00000007ed700000| Untracked +| 216|0x00000007ed800000, 0x00000007ed8ffff8, 0x00000007ed900000| 99%| O| |TAMS 0x00000007ed800000, 0x00000007ed800000| Untracked +| 217|0x00000007ed900000, 0x00000007ed9ffff8, 0x00000007eda00000| 99%| O| |TAMS 0x00000007ed900000, 0x00000007ed900000| Untracked +| 218|0x00000007eda00000, 0x00000007edaffff8, 0x00000007edb00000| 99%| O| |TAMS 0x00000007eda00000, 0x00000007eda00000| Untracked +| 219|0x00000007edb00000, 0x00000007edbffff8, 0x00000007edc00000| 99%| O| |TAMS 0x00000007edb00000, 0x00000007edb00000| Untracked +| 220|0x00000007edc00000, 0x00000007edcfffc8, 0x00000007edd00000| 99%| O| |TAMS 0x00000007edc00000, 0x00000007edc00000| Untracked +| 221|0x00000007edd00000, 0x00000007ede00000, 0x00000007ede00000|100%| O| |TAMS 0x00000007edd00000, 0x00000007edd00000| Untracked +| 222|0x00000007ede00000, 0x00000007edeffff0, 0x00000007edf00000| 99%| O| |TAMS 0x00000007ede00000, 0x00000007ede00000| Untracked +| 223|0x00000007edf00000, 0x00000007edffffd8, 0x00000007ee000000| 99%| O| |TAMS 0x00000007edf00000, 0x00000007edf00000| Untracked +| 224|0x00000007ee000000, 0x00000007ee0ffff8, 0x00000007ee100000| 99%| O| |TAMS 0x00000007ee000000, 0x00000007ee000000| Untracked +| 225|0x00000007ee100000, 0x00000007ee1ffff8, 0x00000007ee200000| 99%| O| |TAMS 0x00000007ee100000, 0x00000007ee100000| Untracked +| 226|0x00000007ee200000, 0x00000007ee2fffe0, 0x00000007ee300000| 99%| O| |TAMS 0x00000007ee200000, 0x00000007ee200000| Untracked +| 227|0x00000007ee300000, 0x00000007ee3fffd8, 0x00000007ee400000| 99%| O| |TAMS 0x00000007ee300000, 0x00000007ee300000| Untracked +| 228|0x00000007ee400000, 0x00000007ee500000, 0x00000007ee500000|100%| O| |TAMS 0x00000007ee400000, 0x00000007ee400000| Untracked +| 229|0x00000007ee500000, 0x00000007ee5fffc0, 0x00000007ee600000| 99%| O| |TAMS 0x00000007ee500000, 0x00000007ee500000| Untracked +| 230|0x00000007ee600000, 0x00000007ee700000, 0x00000007ee700000|100%| O| |TAMS 0x00000007ee600000, 0x00000007ee600000| Untracked +| 231|0x00000007ee700000, 0x00000007ee7ffff8, 0x00000007ee800000| 99%| O| |TAMS 0x00000007ee700000, 0x00000007ee700000| Untracked +| 232|0x00000007ee800000, 0x00000007ee8ffff0, 0x00000007ee900000| 99%| O| |TAMS 0x00000007ee800000, 0x00000007ee800000| Untracked +| 233|0x00000007ee900000, 0x00000007eea00000, 0x00000007eea00000|100%| O| |TAMS 0x00000007ee900000, 0x00000007ee900000| Untracked +| 234|0x00000007eea00000, 0x00000007eeafffe0, 0x00000007eeb00000| 99%| O| |TAMS 0x00000007eea00000, 0x00000007eea00000| Untracked +| 235|0x00000007eeb00000, 0x00000007eebffff0, 0x00000007eec00000| 99%| O| |TAMS 0x00000007eeb00000, 0x00000007eeb00000| Untracked +| 236|0x00000007eec00000, 0x00000007eecfffe0, 0x00000007eed00000| 99%| O| |TAMS 0x00000007eec00000, 0x00000007eec00000| Untracked +| 237|0x00000007eed00000, 0x00000007eedfffb0, 0x00000007eee00000| 99%| O| |TAMS 0x00000007eed00000, 0x00000007eed00000| Untracked +| 238|0x00000007eee00000, 0x00000007eeeffff8, 0x00000007eef00000| 99%| O| |TAMS 0x00000007eee00000, 0x00000007eee00000| Untracked +| 239|0x00000007eef00000, 0x00000007eefffff8, 0x00000007ef000000| 99%| O| |TAMS 0x00000007eef00000, 0x00000007eef00000| Untracked +| 240|0x00000007ef000000, 0x00000007ef0fffb8, 0x00000007ef100000| 99%| O| |TAMS 0x00000007ef000000, 0x00000007ef000000| Untracked +| 241|0x00000007ef100000, 0x00000007ef1fffb8, 0x00000007ef200000| 99%| O| |TAMS 0x00000007ef100000, 0x00000007ef100000| Untracked +| 242|0x00000007ef200000, 0x00000007ef2ffff8, 0x00000007ef300000| 99%| O| |TAMS 0x00000007ef200000, 0x00000007ef200000| Untracked +| 243|0x00000007ef300000, 0x00000007ef3ffff8, 0x00000007ef400000| 99%| O| |TAMS 0x00000007ef300000, 0x00000007ef300000| Untracked +| 244|0x00000007ef400000, 0x00000007ef500000, 0x00000007ef500000|100%| O| |TAMS 0x00000007ef400000, 0x00000007ef400000| Untracked +| 245|0x00000007ef500000, 0x00000007ef600000, 0x00000007ef600000|100%| O| |TAMS 0x00000007ef500000, 0x00000007ef500000| Untracked +| 246|0x00000007ef600000, 0x00000007ef700000, 0x00000007ef700000|100%| O| |TAMS 0x00000007ef600000, 0x00000007ef600000| Untracked +| 247|0x00000007ef700000, 0x00000007ef7fffe8, 0x00000007ef800000| 99%| O| |TAMS 0x00000007ef700000, 0x00000007ef700000| Untracked +| 248|0x00000007ef800000, 0x00000007ef900000, 0x00000007ef900000|100%| O| |TAMS 0x00000007ef800000, 0x00000007ef800000| Untracked +| 249|0x00000007ef900000, 0x00000007ef9ffff8, 0x00000007efa00000| 99%| O| |TAMS 0x00000007ef900000, 0x00000007ef900000| Untracked +| 250|0x00000007efa00000, 0x00000007efb00000, 0x00000007efb00000|100%| O| |TAMS 0x00000007efa00000, 0x00000007efa00000| Untracked +| 251|0x00000007efb00000, 0x00000007efc00000, 0x00000007efc00000|100%| O| |TAMS 0x00000007efb00000, 0x00000007efb00000| Untracked +| 252|0x00000007efc00000, 0x00000007efcfffe0, 0x00000007efd00000| 99%| O| |TAMS 0x00000007efc00000, 0x00000007efc00000| Untracked +| 253|0x00000007efd00000, 0x00000007efdffff0, 0x00000007efe00000| 99%| O| |TAMS 0x00000007efd00000, 0x00000007efd00000| Untracked +| 254|0x00000007efe00000, 0x00000007efeffff0, 0x00000007eff00000| 99%| O| |TAMS 0x00000007efe00000, 0x00000007efe00000| Untracked +| 255|0x00000007eff00000, 0x00000007efffffd0, 0x00000007f0000000| 99%| O| |TAMS 0x00000007eff00000, 0x00000007eff00000| Untracked +| 256|0x00000007f0000000, 0x00000007f00ffff8, 0x00000007f0100000| 99%| O| |TAMS 0x00000007f0000000, 0x00000007f0000000| Untracked +| 257|0x00000007f0100000, 0x00000007f0200000, 0x00000007f0200000|100%| O| |TAMS 0x00000007f0100000, 0x00000007f0100000| Untracked +| 258|0x00000007f0200000, 0x00000007f0300000, 0x00000007f0300000|100%| O| |TAMS 0x00000007f0200000, 0x00000007f0200000| Untracked +| 259|0x00000007f0300000, 0x00000007f0400000, 0x00000007f0400000|100%| O| |TAMS 0x00000007f0300000, 0x00000007f0300000| Untracked +| 260|0x00000007f0400000, 0x00000007f04ffff0, 0x00000007f0500000| 99%| O| |TAMS 0x00000007f0400000, 0x00000007f0400000| Untracked +| 261|0x00000007f0500000, 0x00000007f05fffc8, 0x00000007f0600000| 99%| O| |TAMS 0x00000007f0500000, 0x00000007f0500000| Untracked +| 262|0x00000007f0600000, 0x00000007f0700000, 0x00000007f0700000|100%| O| |TAMS 0x00000007f0600000, 0x00000007f0600000| Untracked +| 263|0x00000007f0700000, 0x00000007f07ffff8, 0x00000007f0800000| 99%| O| |TAMS 0x00000007f0700000, 0x00000007f0700000| Untracked +| 264|0x00000007f0800000, 0x00000007f08ffff0, 0x00000007f0900000| 99%| O| |TAMS 0x00000007f0800000, 0x00000007f0800000| Untracked +| 265|0x00000007f0900000, 0x00000007f09ffff8, 0x00000007f0a00000| 99%| O| |TAMS 0x00000007f0900000, 0x00000007f0900000| Untracked +| 266|0x00000007f0a00000, 0x00000007f0affff8, 0x00000007f0b00000| 99%| O| |TAMS 0x00000007f0a00000, 0x00000007f0a00000| Untracked +| 267|0x00000007f0b00000, 0x00000007f0bfffe8, 0x00000007f0c00000| 99%| O| |TAMS 0x00000007f0b00000, 0x00000007f0b00000| Untracked +| 268|0x00000007f0c00000, 0x00000007f0cffff8, 0x00000007f0d00000| 99%| O| |TAMS 0x00000007f0c00000, 0x00000007f0c00000| Untracked +| 269|0x00000007f0d00000, 0x00000007f0dffff0, 0x00000007f0e00000| 99%| O| |TAMS 0x00000007f0d00000, 0x00000007f0d00000| Untracked +| 270|0x00000007f0e00000, 0x00000007f0effff8, 0x00000007f0f00000| 99%| O| |TAMS 0x00000007f0e00000, 0x00000007f0e00000| Untracked +| 271|0x00000007f0f00000, 0x00000007f0ffffe8, 0x00000007f1000000| 99%| O| |TAMS 0x00000007f0f00000, 0x00000007f0f00000| Untracked +| 272|0x00000007f1000000, 0x00000007f10fffe8, 0x00000007f1100000| 99%| O| |TAMS 0x00000007f1000000, 0x00000007f1000000| Untracked +| 273|0x00000007f1100000, 0x00000007f11fffe8, 0x00000007f1200000| 99%| O| |TAMS 0x00000007f1100000, 0x00000007f1100000| Untracked +| 274|0x00000007f1200000, 0x00000007f12fffe0, 0x00000007f1300000| 99%| O| |TAMS 0x00000007f1200000, 0x00000007f1200000| Untracked +| 275|0x00000007f1300000, 0x00000007f1400000, 0x00000007f1400000|100%| O| |TAMS 0x00000007f1300000, 0x00000007f1300000| Untracked +| 276|0x00000007f1400000, 0x00000007f14ffff0, 0x00000007f1500000| 99%| O| |TAMS 0x00000007f1400000, 0x00000007f1400000| Untracked +| 277|0x00000007f1500000, 0x00000007f15fffe0, 0x00000007f1600000| 99%| O| |TAMS 0x00000007f1500000, 0x00000007f1500000| Untracked +| 278|0x00000007f1600000, 0x00000007f16fffe8, 0x00000007f1700000| 99%| O| |TAMS 0x00000007f1600000, 0x00000007f1600000| Untracked +| 279|0x00000007f1700000, 0x00000007f17ffff0, 0x00000007f1800000| 99%| O| |TAMS 0x00000007f1700000, 0x00000007f1700000| Untracked +| 280|0x00000007f1800000, 0x00000007f18fffe8, 0x00000007f1900000| 99%| O| |TAMS 0x00000007f1800000, 0x00000007f1800000| Untracked +| 281|0x00000007f1900000, 0x00000007f1a00000, 0x00000007f1a00000|100%| O| |TAMS 0x00000007f1900000, 0x00000007f1900000| Untracked +| 282|0x00000007f1a00000, 0x00000007f1affff0, 0x00000007f1b00000| 99%| O| |TAMS 0x00000007f1a00000, 0x00000007f1a00000| Untracked +| 283|0x00000007f1b00000, 0x00000007f1c00000, 0x00000007f1c00000|100%| O| |TAMS 0x00000007f1b00000, 0x00000007f1b00000| Untracked +| 284|0x00000007f1c00000, 0x00000007f1cfffe8, 0x00000007f1d00000| 99%| O| |TAMS 0x00000007f1c00000, 0x00000007f1c00000| Untracked +| 285|0x00000007f1d00000, 0x00000007f1dffff0, 0x00000007f1e00000| 99%| O| |TAMS 0x00000007f1d00000, 0x00000007f1d00000| Untracked +| 286|0x00000007f1e00000, 0x00000007f1effff8, 0x00000007f1f00000| 99%| O| |TAMS 0x00000007f1e00000, 0x00000007f1e00000| Untracked +| 287|0x00000007f1f00000, 0x00000007f1ffffe8, 0x00000007f2000000| 99%| O| |TAMS 0x00000007f1f00000, 0x00000007f1f00000| Untracked +| 288|0x00000007f2000000, 0x00000007f20ffff0, 0x00000007f2100000| 99%| O| |TAMS 0x00000007f2000000, 0x00000007f2000000| Untracked +| 289|0x00000007f2100000, 0x00000007f2200000, 0x00000007f2200000|100%| O| |TAMS 0x00000007f2100000, 0x00000007f2100000| Untracked +| 290|0x00000007f2200000, 0x00000007f22ffff0, 0x00000007f2300000| 99%| O| |TAMS 0x00000007f2200000, 0x00000007f2200000| Untracked +| 291|0x00000007f2300000, 0x00000007f2400000, 0x00000007f2400000|100%| O| |TAMS 0x00000007f2300000, 0x00000007f2300000| Untracked +| 292|0x00000007f2400000, 0x00000007f24ffff8, 0x00000007f2500000| 99%| O| |TAMS 0x00000007f2400000, 0x00000007f2400000| Untracked +| 293|0x00000007f2500000, 0x00000007f2600000, 0x00000007f2600000|100%| O| |TAMS 0x00000007f2500000, 0x00000007f2500000| Untracked +| 294|0x00000007f2600000, 0x00000007f26ffff8, 0x00000007f2700000| 99%| O| |TAMS 0x00000007f2600000, 0x00000007f2600000| Untracked +| 295|0x00000007f2700000, 0x00000007f27ffff0, 0x00000007f2800000| 99%| O| |TAMS 0x00000007f2700000, 0x00000007f2700000| Untracked +| 296|0x00000007f2800000, 0x00000007f28ffff0, 0x00000007f2900000| 99%| O| |TAMS 0x00000007f2800000, 0x00000007f2800000| Untracked +| 297|0x00000007f2900000, 0x00000007f2a00000, 0x00000007f2a00000|100%| O| |TAMS 0x00000007f2900000, 0x00000007f2900000| Untracked +| 298|0x00000007f2a00000, 0x00000007f2affff8, 0x00000007f2b00000| 99%| O| |TAMS 0x00000007f2a00000, 0x00000007f2a00000| Untracked +| 299|0x00000007f2b00000, 0x00000007f2bffff8, 0x00000007f2c00000| 99%| O| |TAMS 0x00000007f2b00000, 0x00000007f2b00000| Untracked +| 300|0x00000007f2c00000, 0x00000007f2cffff0, 0x00000007f2d00000| 99%| O| |TAMS 0x00000007f2c00000, 0x00000007f2c00000| Untracked +| 301|0x00000007f2d00000, 0x00000007f2e00000, 0x00000007f2e00000|100%| O| |TAMS 0x00000007f2d00000, 0x00000007f2d00000| Untracked +| 302|0x00000007f2e00000, 0x00000007f2efffe8, 0x00000007f2f00000| 99%| O| |TAMS 0x00000007f2e00000, 0x00000007f2e00000| Untracked +| 303|0x00000007f2f00000, 0x00000007f2fffff0, 0x00000007f3000000| 99%| O| |TAMS 0x00000007f2f00000, 0x00000007f2f00000| Untracked +| 304|0x00000007f3000000, 0x00000007f30ffff8, 0x00000007f3100000| 99%| O| |TAMS 0x00000007f3000000, 0x00000007f3000000| Untracked +| 305|0x00000007f3100000, 0x00000007f31fffe8, 0x00000007f3200000| 99%| O| |TAMS 0x00000007f3100000, 0x00000007f3100000| Untracked +| 306|0x00000007f3200000, 0x00000007f32ffff0, 0x00000007f3300000| 99%| O| |TAMS 0x00000007f3200000, 0x00000007f3200000| Untracked +| 307|0x00000007f3300000, 0x00000007f33ffff8, 0x00000007f3400000| 99%| O| |TAMS 0x00000007f3300000, 0x00000007f3300000| Untracked +| 308|0x00000007f3400000, 0x00000007f3500000, 0x00000007f3500000|100%| O| |TAMS 0x00000007f3400000, 0x00000007f3400000| Untracked +| 309|0x00000007f3500000, 0x00000007f35ffff8, 0x00000007f3600000| 99%| O| |TAMS 0x00000007f3500000, 0x00000007f3500000| Untracked +| 310|0x00000007f3600000, 0x00000007f36ffff8, 0x00000007f3700000| 99%| O| |TAMS 0x00000007f3600000, 0x00000007f3600000| Untracked +| 311|0x00000007f3700000, 0x00000007f37fffe0, 0x00000007f3800000| 99%| O| |TAMS 0x00000007f3700000, 0x00000007f3700000| Untracked +| 312|0x00000007f3800000, 0x00000007f3900000, 0x00000007f3900000|100%| O| |TAMS 0x00000007f3800000, 0x00000007f3800000| Untracked +| 313|0x00000007f3900000, 0x00000007f39ffff0, 0x00000007f3a00000| 99%| O| |TAMS 0x00000007f3900000, 0x00000007f3900000| Untracked +| 314|0x00000007f3a00000, 0x00000007f3affff0, 0x00000007f3b00000| 99%| O| |TAMS 0x00000007f3a00000, 0x00000007f3a00000| Untracked +| 315|0x00000007f3b00000, 0x00000007f3c00000, 0x00000007f3c00000|100%| O| |TAMS 0x00000007f3b00000, 0x00000007f3b00000| Untracked +| 316|0x00000007f3c00000, 0x00000007f3cfffe0, 0x00000007f3d00000| 99%| O| |TAMS 0x00000007f3c00000, 0x00000007f3c00000| Untracked +| 317|0x00000007f3d00000, 0x00000007f3e00000, 0x00000007f3e00000|100%| O| |TAMS 0x00000007f3d00000, 0x00000007f3d00000| Untracked +| 318|0x00000007f3e00000, 0x00000007f3f00000, 0x00000007f3f00000|100%| O| |TAMS 0x00000007f3e00000, 0x00000007f3e00000| Untracked +| 319|0x00000007f3f00000, 0x00000007f4000000, 0x00000007f4000000|100%| O| |TAMS 0x00000007f3f00000, 0x00000007f3f00000| Untracked +| 320|0x00000007f4000000, 0x00000007f4100000, 0x00000007f4100000|100%| O| |TAMS 0x00000007f4000000, 0x00000007f4000000| Untracked +| 321|0x00000007f4100000, 0x00000007f41ffff8, 0x00000007f4200000| 99%| O| |TAMS 0x00000007f4100000, 0x00000007f4100000| Untracked +| 322|0x00000007f4200000, 0x00000007f42fffe8, 0x00000007f4300000| 99%| O| |TAMS 0x00000007f4200000, 0x00000007f4200000| Untracked +| 323|0x00000007f4300000, 0x00000007f43ffff8, 0x00000007f4400000| 99%| O| |TAMS 0x00000007f4300000, 0x00000007f4300000| Untracked +| 324|0x00000007f4400000, 0x00000007f44ffff0, 0x00000007f4500000| 99%| O| |TAMS 0x00000007f4400000, 0x00000007f4400000| Untracked +| 325|0x00000007f4500000, 0x00000007f45fffe8, 0x00000007f4600000| 99%| O| |TAMS 0x00000007f4500000, 0x00000007f4500000| Untracked +| 326|0x00000007f4600000, 0x00000007f46fffd0, 0x00000007f4700000| 99%| O| |TAMS 0x00000007f4600000, 0x00000007f4600000| Untracked +| 327|0x00000007f4700000, 0x00000007f47fffe8, 0x00000007f4800000| 99%| O| |TAMS 0x00000007f4700000, 0x00000007f4700000| Untracked +| 328|0x00000007f4800000, 0x00000007f4900000, 0x00000007f4900000|100%| O| |TAMS 0x00000007f4800000, 0x00000007f4800000| Untracked +| 329|0x00000007f4900000, 0x00000007f49fffb0, 0x00000007f4a00000| 99%| O| |TAMS 0x00000007f4900000, 0x00000007f4900000| Untracked +| 330|0x00000007f4a00000, 0x00000007f4affff8, 0x00000007f4b00000| 99%| O| |TAMS 0x00000007f4a00000, 0x00000007f4a00000| Untracked +| 331|0x00000007f4b00000, 0x00000007f4bfffb0, 0x00000007f4c00000| 99%| O| |TAMS 0x00000007f4b00000, 0x00000007f4b00000| Untracked +| 332|0x00000007f4c00000, 0x00000007f4cffff8, 0x00000007f4d00000| 99%| O| |TAMS 0x00000007f4c00000, 0x00000007f4c00000| Untracked +| 333|0x00000007f4d00000, 0x00000007f4dffff0, 0x00000007f4e00000| 99%| O| |TAMS 0x00000007f4d00000, 0x00000007f4d00000| Untracked +| 334|0x00000007f4e00000, 0x00000007f4f00000, 0x00000007f4f00000|100%| O| |TAMS 0x00000007f4e00000, 0x00000007f4e00000| Untracked +| 335|0x00000007f4f00000, 0x00000007f4fffff8, 0x00000007f5000000| 99%| O| |TAMS 0x00000007f4f00000, 0x00000007f4f00000| Untracked +| 336|0x00000007f5000000, 0x00000007f50fffd8, 0x00000007f5100000| 99%| O| |TAMS 0x00000007f5000000, 0x00000007f5000000| Untracked +| 337|0x00000007f5100000, 0x00000007f51fffe8, 0x00000007f5200000| 99%| O| |TAMS 0x00000007f5100000, 0x00000007f5100000| Untracked +| 338|0x00000007f5200000, 0x00000007f52fffe0, 0x00000007f5300000| 99%| O| |TAMS 0x00000007f5200000, 0x00000007f5200000| Untracked +| 339|0x00000007f5300000, 0x00000007f53ffff8, 0x00000007f5400000| 99%| O| |TAMS 0x00000007f5300000, 0x00000007f5300000| Untracked +| 340|0x00000007f5400000, 0x00000007f54fffe8, 0x00000007f5500000| 99%| O| |TAMS 0x00000007f5400000, 0x00000007f5400000| Untracked +| 341|0x00000007f5500000, 0x00000007f55fffe0, 0x00000007f5600000| 99%| O| |TAMS 0x00000007f5500000, 0x00000007f5500000| Untracked +| 342|0x00000007f5600000, 0x00000007f56fffe8, 0x00000007f5700000| 99%| O| |TAMS 0x00000007f5600000, 0x00000007f5600000| Untracked +| 343|0x00000007f5700000, 0x00000007f57fffe0, 0x00000007f5800000| 99%| O| |TAMS 0x00000007f5700000, 0x00000007f5700000| Untracked +| 344|0x00000007f5800000, 0x00000007f5900000, 0x00000007f5900000|100%| O| |TAMS 0x00000007f5800000, 0x00000007f5800000| Untracked +| 345|0x00000007f5900000, 0x00000007f5a00000, 0x00000007f5a00000|100%| O| |TAMS 0x00000007f5900000, 0x00000007f5900000| Untracked +| 346|0x00000007f5a00000, 0x00000007f5afffd8, 0x00000007f5b00000| 99%| O| |TAMS 0x00000007f5a00000, 0x00000007f5a00000| Untracked +| 347|0x00000007f5b00000, 0x00000007f5bffff0, 0x00000007f5c00000| 99%| O| |TAMS 0x00000007f5b00000, 0x00000007f5b00000| Untracked +| 348|0x00000007f5c00000, 0x00000007f5cffff0, 0x00000007f5d00000| 99%| O| |TAMS 0x00000007f5c00000, 0x00000007f5c00000| Untracked +| 349|0x00000007f5d00000, 0x00000007f5dffff0, 0x00000007f5e00000| 99%| O| |TAMS 0x00000007f5d00000, 0x00000007f5d00000| Untracked +| 350|0x00000007f5e00000, 0x00000007f5effff0, 0x00000007f5f00000| 99%| O| |TAMS 0x00000007f5e00000, 0x00000007f5e00000| Untracked +| 351|0x00000007f5f00000, 0x00000007f5fffff0, 0x00000007f6000000| 99%| O| |TAMS 0x00000007f5f00000, 0x00000007f5f00000| Untracked +| 352|0x00000007f6000000, 0x00000007f60fffd8, 0x00000007f6100000| 99%| O| |TAMS 0x00000007f6000000, 0x00000007f6000000| Untracked +| 353|0x00000007f6100000, 0x00000007f61ffff8, 0x00000007f6200000| 99%| O| |TAMS 0x00000007f6100000, 0x00000007f6100000| Untracked +| 354|0x00000007f6200000, 0x00000007f6300000, 0x00000007f6300000|100%| O| |TAMS 0x00000007f6200000, 0x00000007f6200000| Untracked +| 355|0x00000007f6300000, 0x00000007f63ffff8, 0x00000007f6400000| 99%| O| |TAMS 0x00000007f6300000, 0x00000007f6300000| Untracked +| 356|0x00000007f6400000, 0x00000007f64ffff0, 0x00000007f6500000| 99%| O| |TAMS 0x00000007f6400000, 0x00000007f6400000| Untracked +| 357|0x00000007f6500000, 0x00000007f65ffff0, 0x00000007f6600000| 99%| O| |TAMS 0x00000007f6500000, 0x00000007f6500000| Untracked +| 358|0x00000007f6600000, 0x00000007f66ffff8, 0x00000007f6700000| 99%| O| |TAMS 0x00000007f6600000, 0x00000007f6600000| Untracked +| 359|0x00000007f6700000, 0x00000007f6800000, 0x00000007f6800000|100%| O| |TAMS 0x00000007f6700000, 0x00000007f6700000| Untracked +| 360|0x00000007f6800000, 0x00000007f6900000, 0x00000007f6900000|100%| O| |TAMS 0x00000007f6800000, 0x00000007f6800000| Untracked +| 361|0x00000007f6900000, 0x00000007f69fffe8, 0x00000007f6a00000| 99%| O| |TAMS 0x00000007f6900000, 0x00000007f6900000| Untracked +| 362|0x00000007f6a00000, 0x00000007f6affff0, 0x00000007f6b00000| 99%| O| |TAMS 0x00000007f6a00000, 0x00000007f6a00000| Untracked +| 363|0x00000007f6b00000, 0x00000007f6bffff8, 0x00000007f6c00000| 99%| O| |TAMS 0x00000007f6b00000, 0x00000007f6b00000| Untracked +| 364|0x00000007f6c00000, 0x00000007f6cffff8, 0x00000007f6d00000| 99%| O| |TAMS 0x00000007f6c00000, 0x00000007f6c00000| Untracked +| 365|0x00000007f6d00000, 0x00000007f6dfffd8, 0x00000007f6e00000| 99%| O| |TAMS 0x00000007f6d00000, 0x00000007f6d00000| Untracked +| 366|0x00000007f6e00000, 0x00000007f6effff0, 0x00000007f6f00000| 99%| O| |TAMS 0x00000007f6e00000, 0x00000007f6e00000| Untracked +| 367|0x00000007f6f00000, 0x00000007f7000000, 0x00000007f7000000|100%| O| |TAMS 0x00000007f6f00000, 0x00000007f6f00000| Untracked +| 368|0x00000007f7000000, 0x00000007f70ffff8, 0x00000007f7100000| 99%| O| |TAMS 0x00000007f7000000, 0x00000007f7000000| Untracked +| 369|0x00000007f7100000, 0x00000007f71ffff0, 0x00000007f7200000| 99%| O| |TAMS 0x00000007f7100000, 0x00000007f7100000| Untracked +| 370|0x00000007f7200000, 0x00000007f72ffff0, 0x00000007f7300000| 99%| O| |TAMS 0x00000007f7200000, 0x00000007f7200000| Untracked +| 371|0x00000007f7300000, 0x00000007f7400000, 0x00000007f7400000|100%| O| |TAMS 0x00000007f7300000, 0x00000007f7300000| Untracked +| 372|0x00000007f7400000, 0x00000007f74ffff8, 0x00000007f7500000| 99%| O| |TAMS 0x00000007f7400000, 0x00000007f7400000| Untracked +| 373|0x00000007f7500000, 0x00000007f75ffff0, 0x00000007f7600000| 99%| O| |TAMS 0x00000007f7500000, 0x00000007f7500000| Untracked +| 374|0x00000007f7600000, 0x00000007f7700000, 0x00000007f7700000|100%| O| |TAMS 0x00000007f7600000, 0x00000007f7600000| Untracked +| 375|0x00000007f7700000, 0x00000007f77ffff8, 0x00000007f7800000| 99%| O| |TAMS 0x00000007f7700000, 0x00000007f7700000| Untracked +| 376|0x00000007f7800000, 0x00000007f7900000, 0x00000007f7900000|100%| O| |TAMS 0x00000007f7800000, 0x00000007f7800000| Untracked +| 377|0x00000007f7900000, 0x00000007f79ffff8, 0x00000007f7a00000| 99%| O| |TAMS 0x00000007f7900000, 0x00000007f7900000| Untracked +| 378|0x00000007f7a00000, 0x00000007f7affff0, 0x00000007f7b00000| 99%| O| |TAMS 0x00000007f7a00000, 0x00000007f7a00000| Untracked +| 379|0x00000007f7b00000, 0x00000007f7c00000, 0x00000007f7c00000|100%| O| |TAMS 0x00000007f7b00000, 0x00000007f7b00000| Untracked +| 380|0x00000007f7c00000, 0x00000007f7d00000, 0x00000007f7d00000|100%| O| |TAMS 0x00000007f7c00000, 0x00000007f7c00000| Untracked +| 381|0x00000007f7d00000, 0x00000007f7e00000, 0x00000007f7e00000|100%| O| |TAMS 0x00000007f7d00000, 0x00000007f7d00000| Untracked +| 382|0x00000007f7e00000, 0x00000007f7f00000, 0x00000007f7f00000|100%| O| |TAMS 0x00000007f7e00000, 0x00000007f7e00000| Untracked +| 383|0x00000007f7f00000, 0x00000007f7ffffe8, 0x00000007f8000000| 99%| O| |TAMS 0x00000007f7f00000, 0x00000007f7f00000| Untracked +| 384|0x00000007f8000000, 0x00000007f8100000, 0x00000007f8100000|100%| O| |TAMS 0x00000007f8000000, 0x00000007f8000000| Untracked +| 385|0x00000007f8100000, 0x00000007f81ffff8, 0x00000007f8200000| 99%| O| |TAMS 0x00000007f8100000, 0x00000007f8100000| Untracked +| 386|0x00000007f8200000, 0x00000007f8300000, 0x00000007f8300000|100%| O| |TAMS 0x00000007f8200000, 0x00000007f8200000| Untracked +| 387|0x00000007f8300000, 0x00000007f83fffe8, 0x00000007f8400000| 99%| O| |TAMS 0x00000007f8300000, 0x00000007f8300000| Untracked +| 388|0x00000007f8400000, 0x00000007f84ffff8, 0x00000007f8500000| 99%| O| |TAMS 0x00000007f8400000, 0x00000007f8400000| Untracked +| 389|0x00000007f8500000, 0x00000007f8600000, 0x00000007f8600000|100%| O| |TAMS 0x00000007f8500000, 0x00000007f8500000| Untracked +| 390|0x00000007f8600000, 0x00000007f8700000, 0x00000007f8700000|100%| O| |TAMS 0x00000007f8600000, 0x00000007f8600000| Untracked +| 391|0x00000007f8700000, 0x00000007f87fffd8, 0x00000007f8800000| 99%| O| |TAMS 0x00000007f8700000, 0x00000007f8700000| Untracked +| 392|0x00000007f8800000, 0x00000007f88fffe8, 0x00000007f8900000| 99%| O| |TAMS 0x00000007f8800000, 0x00000007f8800000| Untracked +| 393|0x00000007f8900000, 0x00000007f89ffff8, 0x00000007f8a00000| 99%| O| |TAMS 0x00000007f8900000, 0x00000007f8900000| Untracked +| 394|0x00000007f8a00000, 0x00000007f8affff8, 0x00000007f8b00000| 99%| O| |TAMS 0x00000007f8a00000, 0x00000007f8a00000| Untracked +| 395|0x00000007f8b00000, 0x00000007f8bfffe8, 0x00000007f8c00000| 99%| O| |TAMS 0x00000007f8b00000, 0x00000007f8b00000| Untracked +| 396|0x00000007f8c00000, 0x00000007f8cffff0, 0x00000007f8d00000| 99%| O| |TAMS 0x00000007f8c00000, 0x00000007f8c00000| Untracked +| 397|0x00000007f8d00000, 0x00000007f8e00000, 0x00000007f8e00000|100%| O| |TAMS 0x00000007f8d00000, 0x00000007f8d00000| Untracked +| 398|0x00000007f8e00000, 0x00000007f8effff0, 0x00000007f8f00000| 99%| O| |TAMS 0x00000007f8e00000, 0x00000007f8e00000| Untracked +| 399|0x00000007f8f00000, 0x00000007f8fffff8, 0x00000007f9000000| 99%| O| |TAMS 0x00000007f8f00000, 0x00000007f8f00000| Untracked +| 400|0x00000007f9000000, 0x00000007f90fffb8, 0x00000007f9100000| 99%| O| |TAMS 0x00000007f9000000, 0x00000007f9000000| Untracked +| 401|0x00000007f9100000, 0x00000007f91ffff8, 0x00000007f9200000| 99%| O| |TAMS 0x00000007f9100000, 0x00000007f9100000| Untracked +| 402|0x00000007f9200000, 0x00000007f92fffe8, 0x00000007f9300000| 99%| O| |TAMS 0x00000007f9200000, 0x00000007f9200000| Untracked +| 403|0x00000007f9300000, 0x00000007f93ffff0, 0x00000007f9400000| 99%| O| |TAMS 0x00000007f9300000, 0x00000007f9300000| Untracked +| 404|0x00000007f9400000, 0x00000007f94fffe0, 0x00000007f9500000| 99%| O| |TAMS 0x00000007f9400000, 0x00000007f9400000| Untracked +| 405|0x00000007f9500000, 0x00000007f95fffe0, 0x00000007f9600000| 99%| O| |TAMS 0x00000007f9500000, 0x00000007f9500000| Untracked +| 406|0x00000007f9600000, 0x00000007f96ffff0, 0x00000007f9700000| 99%| O| |TAMS 0x00000007f9600000, 0x00000007f9600000| Untracked +| 407|0x00000007f9700000, 0x00000007f97fffe8, 0x00000007f9800000| 99%| O| |TAMS 0x00000007f9700000, 0x00000007f9700000| Untracked +| 408|0x00000007f9800000, 0x00000007f98fffe0, 0x00000007f9900000| 99%| O| |TAMS 0x00000007f9800000, 0x00000007f9800000| Untracked +| 409|0x00000007f9900000, 0x00000007f99ffff0, 0x00000007f9a00000| 99%| O| |TAMS 0x00000007f9900000, 0x00000007f9900000| Untracked +| 410|0x00000007f9a00000, 0x00000007f9affff8, 0x00000007f9b00000| 99%| O| |TAMS 0x00000007f9a00000, 0x00000007f9a00000| Untracked +| 411|0x00000007f9b00000, 0x00000007f9bffff8, 0x00000007f9c00000| 99%| O| |TAMS 0x00000007f9b00000, 0x00000007f9b00000| Untracked +| 412|0x00000007f9c00000, 0x00000007f9d00000, 0x00000007f9d00000|100%| O| |TAMS 0x00000007f9c00000, 0x00000007f9c00000| Untracked +| 413|0x00000007f9d00000, 0x00000007f9e00000, 0x00000007f9e00000|100%| O| |TAMS 0x00000007f9d00000, 0x00000007f9d00000| Untracked +| 414|0x00000007f9e00000, 0x00000007f9effff8, 0x00000007f9f00000| 99%| O| |TAMS 0x00000007f9e00000, 0x00000007f9e00000| Untracked +| 415|0x00000007f9f00000, 0x00000007f9fffff0, 0x00000007fa000000| 99%| O| |TAMS 0x00000007f9f00000, 0x00000007f9f00000| Untracked +| 416|0x00000007fa000000, 0x00000007fa100000, 0x00000007fa100000|100%| O| |TAMS 0x00000007fa000000, 0x00000007fa000000| Untracked +| 417|0x00000007fa100000, 0x00000007fa200000, 0x00000007fa200000|100%| O| |TAMS 0x00000007fa100000, 0x00000007fa100000| Untracked +| 418|0x00000007fa200000, 0x00000007fa2ffff8, 0x00000007fa300000| 99%| O| |TAMS 0x00000007fa200000, 0x00000007fa200000| Untracked +| 419|0x00000007fa300000, 0x00000007fa3fffc8, 0x00000007fa400000| 99%| O| |TAMS 0x00000007fa300000, 0x00000007fa300000| Untracked +| 420|0x00000007fa400000, 0x00000007fa4ffff8, 0x00000007fa500000| 99%| O| |TAMS 0x00000007fa400000, 0x00000007fa400000| Untracked +| 421|0x00000007fa500000, 0x00000007fa5ffff8, 0x00000007fa600000| 99%| O| |TAMS 0x00000007fa500000, 0x00000007fa500000| Untracked +| 422|0x00000007fa600000, 0x00000007fa700000, 0x00000007fa700000|100%| O| |TAMS 0x00000007fa600000, 0x00000007fa600000| Untracked +| 423|0x00000007fa700000, 0x00000007fa7ffff8, 0x00000007fa800000| 99%| O| |TAMS 0x00000007fa700000, 0x00000007fa700000| Untracked +| 424|0x00000007fa800000, 0x00000007fa8fffb0, 0x00000007fa900000| 99%| O| |TAMS 0x00000007fa800000, 0x00000007fa800000| Untracked +| 425|0x00000007fa900000, 0x00000007fa9ffff8, 0x00000007faa00000| 99%| O| |TAMS 0x00000007fa900000, 0x00000007fa900000| Untracked +| 426|0x00000007faa00000, 0x00000007faaffff0, 0x00000007fab00000| 99%| O| |TAMS 0x00000007faa00000, 0x00000007faa00000| Untracked +| 427|0x00000007fab00000, 0x00000007fabfffd8, 0x00000007fac00000| 99%| O| |TAMS 0x00000007fab00000, 0x00000007fab00000| Untracked +| 428|0x00000007fac00000, 0x00000007fad00000, 0x00000007fad00000|100%| O| |TAMS 0x00000007fac00000, 0x00000007fac00000| Untracked +| 429|0x00000007fad00000, 0x00000007fae00000, 0x00000007fae00000|100%| O| |TAMS 0x00000007fad00000, 0x00000007fad00000| Untracked +| 430|0x00000007fae00000, 0x00000007faeffff0, 0x00000007faf00000| 99%| O| |TAMS 0x00000007fae00000, 0x00000007fae00000| Untracked +| 431|0x00000007faf00000, 0x00000007fafffff0, 0x00000007fb000000| 99%| O| |TAMS 0x00000007faf00000, 0x00000007faf00000| Untracked +| 432|0x00000007fb000000, 0x00000007fb100000, 0x00000007fb100000|100%| O| |TAMS 0x00000007fb000000, 0x00000007fb000000| Untracked +| 433|0x00000007fb100000, 0x00000007fb1ffff0, 0x00000007fb200000| 99%| O| |TAMS 0x00000007fb100000, 0x00000007fb100000| Untracked +| 434|0x00000007fb200000, 0x00000007fb2ffff8, 0x00000007fb300000| 99%| O| |TAMS 0x00000007fb200000, 0x00000007fb200000| Untracked +| 435|0x00000007fb300000, 0x00000007fb400000, 0x00000007fb400000|100%| O| |TAMS 0x00000007fb300000, 0x00000007fb300000| Untracked +| 436|0x00000007fb400000, 0x00000007fb500000, 0x00000007fb500000|100%| O| |TAMS 0x00000007fb400000, 0x00000007fb400000| Untracked +| 437|0x00000007fb500000, 0x00000007fb600000, 0x00000007fb600000|100%| O| |TAMS 0x00000007fb500000, 0x00000007fb500000| Untracked +| 438|0x00000007fb600000, 0x00000007fb700000, 0x00000007fb700000|100%| O| |TAMS 0x00000007fb600000, 0x00000007fb600000| Untracked +| 439|0x00000007fb700000, 0x00000007fb7ffff8, 0x00000007fb800000| 99%| O| |TAMS 0x00000007fb700000, 0x00000007fb700000| Untracked +| 440|0x00000007fb800000, 0x00000007fb8fffe0, 0x00000007fb900000| 99%| O| |TAMS 0x00000007fb800000, 0x00000007fb800000| Untracked +| 441|0x00000007fb900000, 0x00000007fb9fffe0, 0x00000007fba00000| 99%| O| |TAMS 0x00000007fb900000, 0x00000007fb900000| Untracked +| 442|0x00000007fba00000, 0x00000007fbafffd8, 0x00000007fbb00000| 99%| O| |TAMS 0x00000007fba00000, 0x00000007fba00000| Untracked +| 443|0x00000007fbb00000, 0x00000007fbc00000, 0x00000007fbc00000|100%| O| |TAMS 0x00000007fbb00000, 0x00000007fbb00000| Untracked +| 444|0x00000007fbc00000, 0x00000007fbcfffc8, 0x00000007fbd00000| 99%| O| |TAMS 0x00000007fbc00000, 0x00000007fbc00000| Untracked +| 445|0x00000007fbd00000, 0x00000007fbe00000, 0x00000007fbe00000|100%| O| |TAMS 0x00000007fbd00000, 0x00000007fbd00000| Untracked +| 446|0x00000007fbe00000, 0x00000007fbeffff0, 0x00000007fbf00000| 99%| O| |TAMS 0x00000007fbe00000, 0x00000007fbe00000| Untracked +| 447|0x00000007fbf00000, 0x00000007fc000000, 0x00000007fc000000|100%| O| |TAMS 0x00000007fbf00000, 0x00000007fbf00000| Untracked +| 448|0x00000007fc000000, 0x00000007fc0ffff8, 0x00000007fc100000| 99%| O| |TAMS 0x00000007fc000000, 0x00000007fc000000| Untracked +| 449|0x00000007fc100000, 0x00000007fc1ffff8, 0x00000007fc200000| 99%| O| |TAMS 0x00000007fc100000, 0x00000007fc100000| Untracked +| 450|0x00000007fc200000, 0x00000007fc2fffe0, 0x00000007fc300000| 99%| O| |TAMS 0x00000007fc200000, 0x00000007fc200000| Untracked +| 451|0x00000007fc300000, 0x00000007fc3fffc0, 0x00000007fc400000| 99%| O| |TAMS 0x00000007fc300000, 0x00000007fc300000| Untracked +| 452|0x00000007fc400000, 0x00000007fc4ffff0, 0x00000007fc500000| 99%| O| |TAMS 0x00000007fc400000, 0x00000007fc400000| Untracked +| 453|0x00000007fc500000, 0x00000007fc5ffff8, 0x00000007fc600000| 99%| O| |TAMS 0x00000007fc500000, 0x00000007fc500000| Untracked +| 454|0x00000007fc600000, 0x00000007fc6ffff0, 0x00000007fc700000| 99%| O| |TAMS 0x00000007fc600000, 0x00000007fc600000| Untracked +| 455|0x00000007fc700000, 0x00000007fc800000, 0x00000007fc800000|100%| O| |TAMS 0x00000007fc700000, 0x00000007fc700000| Untracked +| 456|0x00000007fc800000, 0x00000007fc900000, 0x00000007fc900000|100%| O| |TAMS 0x00000007fc800000, 0x00000007fc800000| Untracked +| 457|0x00000007fc900000, 0x00000007fc9fffe0, 0x00000007fca00000| 99%| O| |TAMS 0x00000007fc900000, 0x00000007fc900000| Untracked +| 458|0x00000007fca00000, 0x00000007fcafffd8, 0x00000007fcb00000| 99%| O| |TAMS 0x00000007fca00000, 0x00000007fca00000| Untracked +| 459|0x00000007fcb00000, 0x00000007fcbffff0, 0x00000007fcc00000| 99%| O| |TAMS 0x00000007fcb00000, 0x00000007fcb00000| Untracked +| 460|0x00000007fcc00000, 0x00000007fccffff8, 0x00000007fcd00000| 99%| O| |TAMS 0x00000007fcc00000, 0x00000007fcc00000| Untracked +| 461|0x00000007fcd00000, 0x00000007fce00000, 0x00000007fce00000|100%| O| |TAMS 0x00000007fcd00000, 0x00000007fcd00000| Untracked +| 462|0x00000007fce00000, 0x00000007fceffff8, 0x00000007fcf00000| 99%| O| |TAMS 0x00000007fce00000, 0x00000007fce00000| Untracked +| 463|0x00000007fcf00000, 0x00000007fd000000, 0x00000007fd000000|100%| O| |TAMS 0x00000007fcf00000, 0x00000007fcf00000| Untracked +| 464|0x00000007fd000000, 0x00000007fd100000, 0x00000007fd100000|100%| O| |TAMS 0x00000007fd000000, 0x00000007fd000000| Untracked +| 465|0x00000007fd100000, 0x00000007fd1fffd0, 0x00000007fd200000| 99%| O| |TAMS 0x00000007fd100000, 0x00000007fd100000| Untracked +| 466|0x00000007fd200000, 0x00000007fd2ffff8, 0x00000007fd300000| 99%| O| |TAMS 0x00000007fd200000, 0x00000007fd200000| Untracked +| 467|0x00000007fd300000, 0x00000007fd3ffff8, 0x00000007fd400000| 99%| O| |TAMS 0x00000007fd300000, 0x00000007fd300000| Untracked +| 468|0x00000007fd400000, 0x00000007fd4fffe8, 0x00000007fd500000| 99%| O| |TAMS 0x00000007fd400000, 0x00000007fd400000| Untracked +| 469|0x00000007fd500000, 0x00000007fd600000, 0x00000007fd600000|100%| O| |TAMS 0x00000007fd500000, 0x00000007fd500000| Untracked +| 470|0x00000007fd600000, 0x00000007fd6fffe0, 0x00000007fd700000| 99%| O| |TAMS 0x00000007fd600000, 0x00000007fd600000| Untracked +| 471|0x00000007fd700000, 0x00000007fd7ffff0, 0x00000007fd800000| 99%| O| |TAMS 0x00000007fd700000, 0x00000007fd700000| Untracked +| 472|0x00000007fd800000, 0x00000007fd900000, 0x00000007fd900000|100%| O| |TAMS 0x00000007fd800000, 0x00000007fd800000| Untracked +| 473|0x00000007fd900000, 0x00000007fd9ffff8, 0x00000007fda00000| 99%| O| |TAMS 0x00000007fd900000, 0x00000007fd900000| Untracked +| 474|0x00000007fda00000, 0x00000007fdaffff0, 0x00000007fdb00000| 99%| O| |TAMS 0x00000007fda00000, 0x00000007fda00000| Untracked +| 475|0x00000007fdb00000, 0x00000007fdbfffe0, 0x00000007fdc00000| 99%| O| |TAMS 0x00000007fdb00000, 0x00000007fdb00000| Untracked +| 476|0x00000007fdc00000, 0x00000007fdcfffd8, 0x00000007fdd00000| 99%| O| |TAMS 0x00000007fdc00000, 0x00000007fdc00000| Untracked +| 477|0x00000007fdd00000, 0x00000007fddfffc8, 0x00000007fde00000| 99%| O| |TAMS 0x00000007fdd00000, 0x00000007fdd00000| Untracked +| 478|0x00000007fde00000, 0x00000007fdf00000, 0x00000007fdf00000|100%| O| |TAMS 0x00000007fde00000, 0x00000007fde00000| Untracked +| 479|0x00000007fdf00000, 0x00000007fdfffff0, 0x00000007fe000000| 99%| O| |TAMS 0x00000007fdf00000, 0x00000007fdf00000| Untracked +| 480|0x00000007fe000000, 0x00000007fe0ffff0, 0x00000007fe100000| 99%| O| |TAMS 0x00000007fe000000, 0x00000007fe000000| Untracked +| 481|0x00000007fe100000, 0x00000007fe1ffff8, 0x00000007fe200000| 99%| O| |TAMS 0x00000007fe100000, 0x00000007fe100000| Untracked +| 482|0x00000007fe200000, 0x00000007fe300000, 0x00000007fe300000|100%| O| |TAMS 0x00000007fe200000, 0x00000007fe200000| Untracked +| 483|0x00000007fe300000, 0x00000007fe3ffff8, 0x00000007fe400000| 99%| O| |TAMS 0x00000007fe300000, 0x00000007fe300000| Untracked +| 484|0x00000007fe400000, 0x00000007fe4fffe8, 0x00000007fe500000| 99%| O| |TAMS 0x00000007fe400000, 0x00000007fe400000| Untracked +| 485|0x00000007fe500000, 0x00000007fe5ffff8, 0x00000007fe600000| 99%| O| |TAMS 0x00000007fe500000, 0x00000007fe500000| Untracked +| 486|0x00000007fe600000, 0x00000007fe6fffd0, 0x00000007fe700000| 99%| O| |TAMS 0x00000007fe600000, 0x00000007fe600000| Untracked +| 487|0x00000007fe700000, 0x00000007fe7ffff8, 0x00000007fe800000| 99%| O| |TAMS 0x00000007fe700000, 0x00000007fe700000| Untracked +| 488|0x00000007fe800000, 0x00000007fe8ffff0, 0x00000007fe900000| 99%| O| |TAMS 0x00000007fe800000, 0x00000007fe800000| Untracked +| 489|0x00000007fe900000, 0x00000007fea00000, 0x00000007fea00000|100%| O| |TAMS 0x00000007fe900000, 0x00000007fe900000| Untracked +| 490|0x00000007fea00000, 0x00000007feafffd0, 0x00000007feb00000| 99%| O| |TAMS 0x00000007fea00000, 0x00000007fea00000| Untracked +| 491|0x00000007feb00000, 0x00000007febffff8, 0x00000007fec00000| 99%| O| |TAMS 0x00000007feb00000, 0x00000007feb00000| Untracked +| 492|0x00000007fec00000, 0x00000007fecfffc0, 0x00000007fed00000| 99%| O| |TAMS 0x00000007fec00000, 0x00000007fec00000| Untracked +| 493|0x00000007fed00000, 0x00000007fedfffe0, 0x00000007fee00000| 99%| O| |TAMS 0x00000007fed00000, 0x00000007fed00000| Untracked +| 494|0x00000007fee00000, 0x00000007fef00000, 0x00000007fef00000|100%| O| |TAMS 0x00000007fee00000, 0x00000007fee00000| Untracked +| 495|0x00000007fef00000, 0x00000007ff000000, 0x00000007ff000000|100%| O| |TAMS 0x00000007fef00000, 0x00000007fef00000| Untracked +| 496|0x00000007ff000000, 0x00000007ff0fffe8, 0x00000007ff100000| 99%| O| |TAMS 0x00000007ff000000, 0x00000007ff000000| Untracked +| 497|0x00000007ff100000, 0x00000007ff1ffff8, 0x00000007ff200000| 99%| O| |TAMS 0x00000007ff100000, 0x00000007ff100000| Untracked +| 498|0x00000007ff200000, 0x00000007ff2ffff8, 0x00000007ff300000| 99%| O| |TAMS 0x00000007ff200000, 0x00000007ff200000| Untracked +| 499|0x00000007ff300000, 0x00000007ff400000, 0x00000007ff400000|100%| O| |TAMS 0x00000007ff300000, 0x00000007ff300000| Untracked +| 500|0x00000007ff400000, 0x00000007ff4ffff8, 0x00000007ff500000| 99%| O| |TAMS 0x00000007ff400000, 0x00000007ff400000| Untracked +| 501|0x00000007ff500000, 0x00000007ff5ffff8, 0x00000007ff600000| 99%| O| |TAMS 0x00000007ff500000, 0x00000007ff500000| Untracked +| 502|0x00000007ff600000, 0x00000007ff6ffff8, 0x00000007ff700000| 99%| O| |TAMS 0x00000007ff600000, 0x00000007ff600000| Untracked +| 503|0x00000007ff700000, 0x00000007ff703ab0, 0x00000007ff800000| 1%| O| |TAMS 0x00000007ff700000, 0x00000007ff700000| Untracked +| 504|0x00000007ff800000, 0x00000007ff900000, 0x00000007ff900000|100%| O| |TAMS 0x00000007ff800000, 0x00000007ff800000| Untracked +| 505|0x00000007ff900000, 0x00000007ffa00000, 0x00000007ffa00000|100%| O| |TAMS 0x00000007ff900000, 0x00000007ff900000| Untracked +| 506|0x00000007ffa00000, 0x00000007ffb00000, 0x00000007ffb00000|100%| O| |TAMS 0x00000007ffa00000, 0x00000007ffa00000| Untracked +| 507|0x00000007ffb00000, 0x00000007ffbfffe8, 0x00000007ffc00000| 99%| O| |TAMS 0x00000007ffb00000, 0x00000007ffb00000| Untracked +| 508|0x00000007ffc00000, 0x00000007ffcffff8, 0x00000007ffd00000| 99%| O| |TAMS 0x00000007ffc00000, 0x00000007ffc00000| Untracked +| 509|0x00000007ffd00000, 0x00000007ffdfffd0, 0x00000007ffe00000| 99%| O| |TAMS 0x00000007ffd00000, 0x00000007ffd00000| Untracked +| 510|0x00000007ffe00000, 0x00000007ffe78000, 0x00000007fff00000| 46%|OA| |TAMS 0x00000007ffe78000, 0x00000007ffe00000| Untracked +| 511|0x00000007fff00000, 0x00000007fff80000, 0x0000000800000000| 50%|CA| |TAMS 0x00000007fff00000, 0x00000007fff00000| Untracked + +Card table byte_map: [0x0000000105524000,0x0000000105624000] _byte_map_base: 0x0000000101624000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000000014f839c50, (CMBitMap*) 0x000000014f839c10 + Prev Bits: [0x000000011e884000, 0x000000011f084000) + Next Bits: [0x0000000105724000, 0x0000000105f24000) + +Polling page: 0x0000000105010000 + +Metaspace: + +Usage: + Non-class: 13.88 MB used. + Class: 2.44 MB used. + Both: 16.32 MB used. + +Virtual space: + Non-class space: 64.00 MB reserved, 14.25 MB ( 22%) committed, 1 nodes. + Class space: 1.00 GB reserved, 2.62 MB ( <1%) committed, 1 nodes. + Both: 1.06 GB reserved, 16.88 MB ( 2%) committed. + +Chunk freelists: + Non-Class: 1.66 MB + Class: 1.47 MB + Both: 3.13 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 28.06 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 8388608. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + + +Internal statistics: + +num_allocs_failed_limit: 0. +num_arena_births: 392. +num_arena_deaths: 188. +num_vsnodes_births: 2. +num_vsnodes_deaths: 0. +num_space_committed: 270. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 214. +num_chunks_taken_from_freelist: 989. +num_chunk_merges: 70. +num_chunk_splits: 638. +num_chunks_enlarged: 443. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=120032Kb used=1633Kb max_used=1633Kb free=118398Kb + bounds [0x000000011734c000, 0x00000001175bc000, 0x000000011e884000] +CodeHeap 'profiled nmethods': size=120016Kb used=6701Kb max_used=6701Kb free=113314Kb + bounds [0x000000010f884000, 0x000000010ff14000, 0x0000000116db8000] +CodeHeap 'non-nmethods': size=5712Kb used=1230Kb max_used=1281Kb free=4481Kb + bounds [0x0000000116db8000, 0x0000000117028000, 0x000000011734c000] + total_blobs=3967 nmethods=3467 adapters=414 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 21.523 Thread 0x000000014f8c3e00 nmethod 3513 0x000000010ff0d610 code [0x000000010ff0d7c0, 0x000000010ff0da98] +Event: 21.523 Thread 0x000000014f8c3e00 3514 3 net.bytebuddy.description.type.TypeDescription$Generic$AnnotationReader$Delegator$ForLoadedMethodReturnType:: (10 bytes) +Event: 21.523 Thread 0x000000014f8c3e00 nmethod 3514 0x000000010ff0dc10 code [0x000000010ff0ddc0, 0x000000010ff0dfd8] +Event: 21.523 Thread 0x000000014f8c3e00 3507 3 net.bytebuddy.description.method.MethodDescription$AbstractBase::isVirtual (34 bytes) +Event: 21.524 Thread 0x000000014f8c3e00 nmethod 3507 0x000000010ff0e110 code [0x000000010ff0e380, 0x000000010ff0ec58] +Event: 21.524 Thread 0x000000014f8c3e00 3503 3 java.util.HashMap::newHashMap (12 bytes) +Event: 21.524 Thread 0x000000014f8c3e00 nmethod 3503 0x000000010ff0ee10 code [0x000000010ff0f000, 0x000000010ff0f2f8] +Event: 21.524 Thread 0x000000014f8c3e00 3511 1 java.util.AbstractMap$SimpleImmutableEntry::getValue (5 bytes) +Event: 21.524 Thread 0x000000014f8c3e00 nmethod 3511 0x00000001174dcd10 code [0x00000001174dcec0, 0x00000001174dcf58] +Event: 21.524 Thread 0x000000014f8c3e00 3512 1 java.util.Collections$EmptySet::size (2 bytes) +Event: 21.524 Thread 0x000000014f8c3e00 nmethod 3512 0x00000001174dd010 code [0x00000001174dd1c0, 0x00000001174dd298] +Event: 21.524 Thread 0x000000014f8c3e00 3517 1 java.util.Collections$SingletonMap::size (2 bytes) +Event: 21.524 Thread 0x000000014f8c3e00 nmethod 3517 0x00000001174dd310 code [0x00000001174dd4c0, 0x00000001174dd598] +Event: 23.697 Thread 0x000000014f8c3800 nmethod 3528 0x00000001174dd610 code [0x00000001174dda40, 0x00000001174deef0] +Event: 23.697 Thread 0x000000014f8c3800 3529 4 java.util.Collections$SingletonSet::contains (9 bytes) +Event: 25.247 Thread 0x000000014f8c3800 nmethod 3529 0x00000001174dfd10 code [0x00000001174e0000, 0x00000001174e0940] +Event: 25.247 Thread 0x000000014f8c3800 3538 4 java.util.Collections::disjoint (109 bytes) +Event: 68.987 Thread 0x000000014f8c3800 nmethod 3538 0x00000001174e1110 code [0x00000001174e14c0, 0x00000001174e2680] +Event: 71.057 Thread 0x000000014f8c3800 3541 4 java.util.Collections::eq (22 bytes) +Event: 160.931 Thread 0x000000014f8c3800 nmethod 3541 0x00000001174e3310 code [0x00000001174e3600, 0x00000001174e3f40] + +GC Heap History (20 events): +Event: 250.521 GC heap after +{Heap after GC invocations=590 (full 292): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 250.522 GC heap before +{Heap before GC invocations=590 (full 292): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 250.522 GC heap after +{Heap after GC invocations=591 (full 292): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 250.522 GC heap before +{Heap before GC invocations=591 (full 292): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 251.168 GC heap after +{Heap after GC invocations=592 (full 293): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 251.168 GC heap before +{Heap before GC invocations=592 (full 293): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 251.957 GC heap after +{Heap after GC invocations=593 (full 294): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 251.957 GC heap before +{Heap before GC invocations=593 (full 294): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 251.958 GC heap after +{Heap after GC invocations=594 (full 294): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 251.958 GC heap before +{Heap before GC invocations=594 (full 294): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 252.617 GC heap after +{Heap after GC invocations=595 (full 295): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 252.617 GC heap before +{Heap before GC invocations=595 (full 295): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 253.396 GC heap after +{Heap after GC invocations=596 (full 296): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 253.396 GC heap before +{Heap before GC invocations=596 (full 296): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 253.397 GC heap after +{Heap after GC invocations=597 (full 296): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 253.397 GC heap before +{Heap before GC invocations=597 (full 296): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 254.062 GC heap after +{Heap after GC invocations=598 (full 297): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 254.062 GC heap before +{Heap before GC invocations=598 (full 297): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 254.812 GC heap after +{Heap after GC invocations=599 (full 298): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} +Event: 254.812 GC heap before +{Heap before GC invocations=599 (full 298): + garbage-first heap total 524288K, used 522214K [0x00000007e0000000, 0x0000000800000000) + region size 1024K, 0 young (0K), 0 survivors (0K) + Metaspace used 16711K, committed 17280K, reserved 1114112K + class space used 2497K, committed 2688K, reserved 1048576K +} + +Dll operation events (10 events): +Event: 0.004 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libjava.dylib +Event: 0.024 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libnio.dylib +Event: 0.027 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libzip.dylib +Event: 0.062 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libverify.dylib +Event: 0.065 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libjimage.dylib +Event: 0.086 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libnet.dylib +Event: 0.207 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libextnet.dylib +Event: 0.609 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libinstrument.dylib +Event: 0.609 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libzip.dylib +Event: 0.610 Loaded shared library /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libinstrument.dylib + +Deoptimization events (20 events): +Event: 20.782 Thread 0x000000014f816e00 DEOPT PACKING pc=0x000000011748ca00 sp=0x000000016b08e8a0 +Event: 20.782 Thread 0x000000014f816e00 DEOPT UNPACKING pc=0x0000000116e0721c sp=0x000000016b08e860 mode 2 +Event: 20.782 Thread 0x000000014f816e00 Uncommon trap: trap_request=0xffffffde fr.pc=0x00000001174cd5cc relative=0x00000000000007cc +Event: 20.782 Thread 0x000000014f816e00 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00000001174cd5cc method=java.util.Collections.disjoint(Ljava/util/Collection;Ljava/util/Collection;)Z @ 65 c2 +Event: 20.782 Thread 0x000000014f816e00 DEOPT PACKING pc=0x00000001174cd5cc sp=0x000000016b08e800 +Event: 20.782 Thread 0x000000014f816e00 DEOPT UNPACKING pc=0x0000000116e0721c sp=0x000000016b08e7b0 mode 2 +Event: 20.782 Thread 0x000000014f816e00 Uncommon trap: trap_request=0xffffffde fr.pc=0x000000011748e1e8 relative=0x0000000000000468 +Event: 20.782 Thread 0x000000014f816e00 Uncommon trap: reason=class_check action=maybe_recompile pc=0x000000011748e1e8 method=java.util.Collections.eq(Ljava/lang/Object;Ljava/lang/Object;)Z @ 18 c2 +Event: 20.782 Thread 0x000000014f816e00 DEOPT PACKING pc=0x000000011748e1e8 sp=0x000000016b08e760 +Event: 20.782 Thread 0x000000014f816e00 DEOPT UNPACKING pc=0x0000000116e0721c sp=0x000000016b08e6b0 mode 2 +Event: 34.109 Thread 0x000000014f816e00 DEOPT PACKING pc=0x00000001174a2370 sp=0x000000016b08eda0 +Event: 34.109 Thread 0x000000014f816e00 DEOPT UNPACKING pc=0x0000000116e0707c sp=0x000000016b08e3d0 mode 1 +Event: 62.589 Thread 0x000000014f106a00 DEOPT PACKING pc=0x0000000117459c4c sp=0x000000016da9a550 +Event: 62.589 Thread 0x000000014f106a00 DEOPT UNPACKING pc=0x0000000116e0707c sp=0x000000016da9a110 mode 1 +Event: 74.727 Thread 0x000000014f106a00 DEOPT PACKING pc=0x00000001174736dc sp=0x000000016da9a640 +Event: 74.727 Thread 0x000000014f106a00 DEOPT UNPACKING pc=0x0000000116e0707c sp=0x000000016da9a2e0 mode 1 +Event: 101.453 Thread 0x000000014f106a00 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000000011744fe7c relative=0x00000000000000bc +Event: 101.453 Thread 0x000000014f106a00 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000011744fe7c method=java.lang.ThreadLocal$ThreadLocalMap.getEntry(Ljava/lang/ThreadLocal;)Ljava/lang/ThreadLocal$ThreadLocalMap$Entry; @ 21 c2 +Event: 101.453 Thread 0x000000014f106a00 DEOPT PACKING pc=0x000000011744fe7c sp=0x000000016da9a7a0 +Event: 101.453 Thread 0x000000014f106a00 DEOPT UNPACKING pc=0x0000000116e0721c sp=0x000000016da9a730 mode 2 + +Classes loaded (20 events): +Event: 1.077 Loading class org/mockito/ArgumentMatcher +Event: 1.077 Loading class org/mockito/ArgumentMatcher done +Event: 1.077 Loading class org/mockito/internal/matchers/Equality +Event: 1.077 Loading class org/mockito/internal/matchers/Equality done +Event: 1.078 Loading class org/mockito/internal/invocation/StubInfoImpl +Event: 1.078 Loading class org/mockito/internal/invocation/StubInfoImpl done +Event: 1.078 Loading class org/mockito/internal/invocation/InvocationMatcher$1 +Event: 1.078 Loading class org/mockito/internal/invocation/InvocationMatcher$1 done +Event: 1.078 Loading class org/mockito/internal/matchers/CapturesArguments +Event: 1.078 Loading class org/mockito/internal/matchers/CapturesArguments done +Event: 1.078 Loading class org/mockito/internal/util/KotlinInlineClassUtil +Event: 1.078 Loading class org/mockito/internal/util/KotlinInlineClassUtil done +Event: 1.078 Loading class kotlin/jvm/JvmInline +Event: 1.078 Loading class kotlin/jvm/JvmInline done +Event: 30.912 Loading class jdk/internal/misc/Signal$1 +Event: 46.675 Loading class jdk/internal/misc/Signal$1 done +Event: 201.358 Loading class java/lang/Throwable$WrappedPrintStream +Event: 207.344 Loading class java/lang/Throwable$PrintStreamOrWriter +Event: 217.134 Loading class java/lang/Throwable$PrintStreamOrWriter done +Event: 217.134 Loading class java/lang/Throwable$WrappedPrintStream done + +Classes unloaded (20 events): +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801028800 'java/lang/invoke/LambdaForm$MH+0x0000000801028800' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101bc00 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor13' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101b400 'java/lang/invoke/LambdaForm$MH+0x000000080101b400' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101b000 'java/lang/invoke/LambdaForm$MH+0x000000080101b000' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101ac00 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor12' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101a800 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor11' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101a400 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor10' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x000000080101a000 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor9' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801019c00 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor8' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801019800 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor7' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801019400 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor6' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801018c00 'java/lang/invoke/LambdaForm$MH+0x0000000801018c00' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801018800 'java/lang/invoke/LambdaForm$MH+0x0000000801018800' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801018000 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor5' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801015c00 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor4' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801015000 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor3' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801014c00 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor2' +Event: 6.571 Thread 0x000000014e808440 Unloading class 0x0000000801014800 'jdk/internal/reflect/GeneratedSerializationConstructorAccessor1' +Event: 160.026 Thread 0x000000014e808440 Unloading class 0x000000080113c000 'java/lang/invoke/LambdaForm$DMH+0x000000080113c000' +Event: 160.026 Thread 0x000000014e808440 Unloading class 0x0000000801131400 'java/lang/invoke/LambdaForm$MH+0x0000000801131400' + +Classes redefined (4 events): +Event: 0.993 Thread 0x000000014e808440 redefined class name=java.util.random.RandomGenerator, count=1 +Event: 0.994 Thread 0x000000014e808440 redefined class name=java.lang.Object, count=1 +Event: 0.994 Thread 0x000000014e808440 redefined class name=java.io.Serializable, count=2 +Event: 0.994 Thread 0x000000014e808440 redefined class name=java.util.Random, count=2 + +Internal exceptions (20 events): +Event: 190.092 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 193.280 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 196.560 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 199.686 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 203.687 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 207.343 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 212.136 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 213.826 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 217.134 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 220.906 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 224.155 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 227.318 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 230.456 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 234.314 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 237.547 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 241.380 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 244.559 Thread 0x000000014f816e00 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 247.783 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 250.522 Thread 0x000000014f038600 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] +Event: 253.396 Thread 0x000000013d808200 Exception (0x00000007e054f8d8) +thrown [src/hotspot/share/gc/shared/memAllocator.cpp, line 136] + +VM Operations (20 events): +Event: 241.380 Executing VM operation: G1CollectForAllocation done +Event: 241.380 Executing VM operation: G1CollectForAllocation +Event: 242.964 Executing VM operation: G1CollectForAllocation done +Event: 242.964 Executing VM operation: G1CollectForAllocation +Event: 244.559 Executing VM operation: G1CollectForAllocation done +Event: 244.559 Executing VM operation: G1CollectForAllocation +Event: 246.165 Executing VM operation: G1CollectForAllocation done +Event: 246.165 Executing VM operation: G1CollectForAllocation +Event: 247.783 Executing VM operation: G1CollectForAllocation done +Event: 247.783 Executing VM operation: G1CollectForAllocation +Event: 249.164 Executing VM operation: G1CollectForAllocation done +Event: 249.164 Executing VM operation: G1CollectForAllocation +Event: 250.522 Executing VM operation: G1CollectForAllocation done +Event: 250.522 Executing VM operation: G1CollectForAllocation +Event: 251.957 Executing VM operation: G1CollectForAllocation done +Event: 251.957 Executing VM operation: G1CollectForAllocation +Event: 253.396 Executing VM operation: G1CollectForAllocation done +Event: 253.396 Executing VM operation: G1CollectForAllocation +Event: 254.812 Executing VM operation: G1CollectForAllocation done +Event: 254.812 Executing VM operation: G1CollectForAllocation + +Events (20 events): +Event: 0.235 Thread 0x000000014f03cc00 Thread added: 0x000000014f03cc00 +Event: 0.235 Protecting memory [0x000000016d480000,0x000000016d48c000] with protection modes 0 +Event: 0.243 Thread 0x000000014f106400 Thread added: 0x000000014f106400 +Event: 0.243 Protecting memory [0x000000016d68c000,0x000000016d698000] with protection modes 0 +Event: 0.243 Thread 0x000000014f106a00 Thread added: 0x000000014f106a00 +Event: 0.243 Protecting memory [0x000000016d898000,0x000000016d8a4000] with protection modes 0 +Event: 0.421 Thread 0x000000014d963c00 Thread added: 0x000000014d963c00 +Event: 0.421 Protecting memory [0x000000016e8f8000,0x000000016e904000] with protection modes 0 +Event: 0.504 Thread 0x000000014e531600 Thread added: 0x000000014e531600 +Event: 0.504 Protecting memory [0x000000016e938000,0x000000016e944000] with protection modes 0 +Event: 83.415 Protecting memory [0x000000016e8f8000,0x000000016e904000] with protection modes 3 +Event: 83.415 Thread 0x000000014d963c00 Thread exited: 0x000000014d963c00 +Event: 101.453 Protecting memory [0x000000016d898000,0x000000016d8a4000] with protection modes 3 +Event: 101.453 Thread 0x000000014f106a00 Thread exited: 0x000000014f106a00 +Event: 246.165 Protecting memory [0x000000016ae90000,0x000000016ae9c000] with protection modes 3 +Event: 247.783 Thread 0x000000014f816e00 Thread exited: 0x000000014f816e00 +Event: 247.783 Protecting memory [0x000000016ae90000,0x000000016ae9c000] with protection modes 0 +Event: 249.164 Thread 0x000000013d808200 Thread added: 0x000000013d808200 +Event: 253.396 Protecting memory [0x000000016ae90000,0x000000016ae9c000] with protection modes 3 +Event: 254.812 Thread 0x000000013d808200 Thread exited: 0x000000013d808200 + + +Dynamic libraries: +0x0000000105484000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libjli.dylib +0x000000019f3e5000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa +0x00000001890c3000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit +0x000000018c0e7000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData +0x00000001869cf000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation +0x0000000192069000 /usr/lib/libSystem.B.dylib +0x000000018a3d4000 /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation +0x00000001fa368000 /System/Library/PrivateFrameworks/CollectionViewCore.framework/Versions/A/CollectionViewCore +0x000000019916e000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices +0x0000000190122000 /System/Library/PrivateFrameworks/XCTTargetBootstrap.framework/Versions/A/XCTTargetBootstrap +0x000000019464a000 /System/Library/PrivateFrameworks/InternationalSupport.framework/Versions/A/InternationalSupport +0x00000001946d1000 /System/Library/PrivateFrameworks/UserActivity.framework/Versions/A/UserActivity +0x000000021c5b1000 /System/Library/PrivateFrameworks/WindowManagement.framework/Versions/A/WindowManagement +0x0000000186659000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration +0x0000000193af2000 /usr/lib/libspindump.dylib +0x000000018a588000 /System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers +0x000000018e083000 /usr/lib/libapp_launch_measurement.dylib +0x000000018d49b000 /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics +0x000000018e08a000 /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout +0x000000018f955000 /System/Library/Frameworks/Metal.framework/Versions/A/Metal +0x000000019088b000 /usr/lib/liblangid.dylib +0x0000000190128000 /System/Library/PrivateFrameworks/CoreSVG.framework/Versions/A/CoreSVG +0x000000018af43000 /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight +0x000000018b3d3000 /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics +0x00000001998b5000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate +0x0000000193951000 /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices +0x000000018f933000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface +0x000000018d4ca000 /usr/lib/libDiagnosticMessagesClient.dylib +0x0000000191fad000 /usr/lib/libz.1.dylib +0x000000019cf78000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices +0x000000019010a000 /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation +0x0000000188930000 /usr/lib/libicucore.A.dylib +0x000000019569e000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox +0x0000000194656000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore +0x00000001ad454000 /System/Library/PrivateFrameworks/TextInput.framework/Versions/A/TextInput +0x000000018ae96000 /usr/lib/libMobileGestalt.dylib +0x000000018fe4a000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox +0x000000018d99c000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore +0x000000018856f000 /System/Library/Frameworks/Security.framework/Versions/A/Security +0x00000001991ae000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition +0x000000018ddb3000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI +0x0000000187e82000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio +0x000000018d5ae000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration +0x0000000193f44000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport +0x000000018ae94000 /usr/lib/libenergytrace.dylib +0x00000001a32fb000 /System/Library/PrivateFrameworks/RenderBox.framework/Versions/A/RenderBox +0x0000000188f7a000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit +0x00000001995b2000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices +0x000000018e010000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis +0x00000001ed4b8000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL +0x000000018e0d4000 /usr/lib/libxml2.2.dylib +0x00000001914b2000 /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag +0x0000000185478000 /usr/lib/libobjc.A.dylib +0x000000018575f000 /usr/lib/libc++.1.dylib +0x000000019952f000 /System/Library/Frameworks/Accessibility.framework/Versions/A/Accessibility +0x000000018bab0000 /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync +0x00000001858a6000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation +0x0000000190478000 /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage +0x0000000187c8e000 /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText +0x00000001f04de000 /System/Library/Frameworks/CoreTransferable.framework/Versions/A/CoreTransferable +0x00000001f09c0000 /System/Library/Frameworks/DeveloperToolsSupport.framework/Versions/A/DeveloperToolsSupport +0x0000000190161000 /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO +0x00000001f4daa000 /System/Library/Frameworks/Symbols.framework/Versions/A/Symbols +0x000000019206f000 /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking +0x0000000195071000 /usr/lib/swift/libswiftCore.dylib +0x00000001aa22f000 /usr/lib/swift/libswiftCoreFoundation.dylib +0x00000001a800f000 /usr/lib/swift/libswiftCoreGraphics.dylib +0x00000001aa27b000 /usr/lib/swift/libswiftCoreImage.dylib +0x00000001a8016000 /usr/lib/swift/libswiftDarwin.dylib +0x000000019ac0f000 /usr/lib/swift/libswiftDispatch.dylib +0x00000001aa27c000 /usr/lib/swift/libswiftIOKit.dylib +0x00000001b5adc000 /usr/lib/swift/libswiftMetal.dylib +0x00000001c2371000 /usr/lib/swift/libswiftOSLog.dylib +0x000000019d3e0000 /usr/lib/swift/libswiftObjectiveC.dylib +0x00000001b972b000 /usr/lib/swift/libswiftQuartzCore.dylib +0x00000001bd725000 /usr/lib/swift/libswiftUniformTypeIdentifiers.dylib +0x00000001aa245000 /usr/lib/swift/libswiftXPC.dylib +0x00000002248df000 /usr/lib/swift/libswift_Concurrency.dylib +0x000000019d3e4000 /usr/lib/swift/libswiftos.dylib +0x00000001ad3b8000 /usr/lib/swift/libswiftsimd.dylib +0x000000019221b000 /usr/lib/libcompression.dylib +0x00000001945a4000 /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO +0x0000000193604000 /usr/lib/libate.dylib +0x0000000192063000 /usr/lib/system/libcache.dylib +0x000000019201f000 /usr/lib/system/libcommonCrypto.dylib +0x000000019204a000 /usr/lib/system/libcompiler_rt.dylib +0x0000000192040000 /usr/lib/system/libcopyfile.dylib +0x00000001855c2000 /usr/lib/system/libcorecrypto.dylib +0x0000000185696000 /usr/lib/system/libdispatch.dylib +0x000000018584d000 /usr/lib/system/libdyld.dylib +0x0000000192059000 /usr/lib/system/libkeymgr.dylib +0x0000000191ff7000 /usr/lib/system/libmacho.dylib +0x0000000191597000 /usr/lib/system/libquarantine.dylib +0x0000000192056000 /usr/lib/system/libremovefile.dylib +0x000000018af0a000 /usr/lib/system/libsystem_asl.dylib +0x000000018555b000 /usr/lib/system/libsystem_blocks.dylib +0x00000001856e0000 /usr/lib/system/libsystem_c.dylib +0x000000019204e000 /usr/lib/system/libsystem_collections.dylib +0x0000000190879000 /usr/lib/system/libsystem_configuration.dylib +0x000000018f909000 /usr/lib/system/libsystem_containermanager.dylib +0x0000000191c9c000 /usr/lib/system/libsystem_coreservices.dylib +0x0000000188be9000 /usr/lib/system/libsystem_darwin.dylib +0x0000000224c07000 /usr/lib/system/libsystem_darwindirectory.dylib +0x000000019205a000 /usr/lib/system/libsystem_dnssd.dylib +0x00000001856dd000 /usr/lib/system/libsystem_featureflags.dylib +0x0000000185879000 /usr/lib/system/libsystem_info.dylib +0x0000000191fbc000 /usr/lib/system/libsystem_m.dylib +0x000000018565f000 /usr/lib/system/libsystem_malloc.dylib +0x000000018ae7a000 /usr/lib/system/libsystem_networkextension.dylib +0x000000018905b000 /usr/lib/system/libsystem_notify.dylib +0x000000019087e000 /usr/lib/system/libsystem_sandbox.dylib +0x0000000192053000 /usr/lib/system/libsystem_secinit.dylib +0x0000000185805000 /usr/lib/system/libsystem_kernel.dylib +0x0000000185872000 /usr/lib/system/libsystem_platform.dylib +0x0000000185840000 /usr/lib/system/libsystem_pthread.dylib +0x000000018c8bd000 /usr/lib/system/libsystem_symptoms.dylib +0x00000001855a7000 /usr/lib/system/libsystem_trace.dylib +0x000000019202d000 /usr/lib/system/libunwind.dylib +0x0000000185560000 /usr/lib/system/libxpc.dylib +0x00000001857ed000 /usr/lib/libc++abi.dylib +0x0000000192038000 /usr/lib/liboah.dylib +0x00000001934b7000 /usr/lib/liblzma.5.dylib +0x000000019206b000 /usr/lib/libfakelink.dylib +0x000000018aaa9000 /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork +0x00000001920be000 /usr/lib/libarchive.2.dylib +0x00000001974b1000 /System/Library/Frameworks/Combine.framework/Versions/A/Combine +0x00000001fa37c000 /System/Library/PrivateFrameworks/CollectionsInternal.framework/Versions/A/CollectionsInternal +0x000000020fd6e000 /System/Library/PrivateFrameworks/ReflectionInternal.framework/Versions/A/ReflectionInternal +0x000000021035c000 /System/Library/PrivateFrameworks/RuntimeInternal.framework/Versions/A/RuntimeInternal +0x0000000224a28000 /usr/lib/swift/libswift_StringProcessing.dylib +0x0000000188ef9000 /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal +0x00000001915be000 /usr/lib/libbsm.0.dylib +0x0000000191fff000 /usr/lib/system/libkxld.dylib +0x000000018e04c000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents +0x0000000188bf4000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore +0x000000018d513000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata +0x0000000191ca2000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices +0x0000000192147000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit +0x000000018c83f000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE +0x0000000185d7d000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices +0x0000000193460000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices +0x000000018e059000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList +0x00000001921e6000 /usr/lib/libapple_nghttp2.dylib +0x000000018c4d6000 /usr/lib/libsqlite3.dylib +0x000000018c8c6000 /System/Library/Frameworks/Network.framework/Versions/A/Network +0x0000000223395000 /usr/lib/libCoreEntitlements.dylib +0x000000020b2f7000 /System/Library/PrivateFrameworks/MessageSecurity.framework/Versions/A/MessageSecurity +0x000000018c4bc000 /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer +0x0000000191bcb000 /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression +0x00000001915a6000 /usr/lib/libcoretls.dylib +0x00000001934d0000 /usr/lib/libcoretls_cfhelpers.dylib +0x0000000192215000 /usr/lib/libpam.2.dylib +0x0000000193541000 /usr/lib/libxar.1.dylib +0x0000000193928000 /usr/lib/libheimdal-asn1.dylib +0x000000018aaa8000 /usr/lib/libnetwork.dylib +0x0000000192070000 /usr/lib/libpcap.A.dylib +0x000000018c8b3000 /usr/lib/libdns_services.dylib +0x000000022497c000 /usr/lib/swift/libswift_RegexParser.dylib +0x0000000190886000 /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo +0x00000001912ab000 /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer +0x0000000191c8f000 /usr/lib/libbz2.1.0.dylib +0x000000019159a000 /usr/lib/libCheckFix.dylib +0x000000018af22000 /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC +0x000000019088d000 /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP +0x000000018d4cc000 /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities +0x00000001915d0000 /usr/lib/libmecab.dylib +0x00000001866ec000 /usr/lib/libCRFSuite.dylib +0x000000019162c000 /usr/lib/libgermantok.dylib +0x00000001921be000 /usr/lib/libThaiTokenizer.dylib +0x000000018d5b7000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage +0x0000000199589000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib +0x0000000193588000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib +0x0000000191187000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib +0x000000018617b000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib +0x00000001922ee000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib +0x000000019162f000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib +0x0000000192200000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib +0x00000001922e9000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib +0x00000001909af000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib +0x00000001865f2000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib +0x0000000209b36000 /System/Library/PrivateFrameworks/MIL.framework/Versions/A/MIL +0x00000001920a5000 /usr/lib/libiconv.2.dylib +0x0000000191ff3000 /usr/lib/libcharset.1.dylib +0x000000018e02c000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory +0x000000018e01c000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory +0x00000001934d2000 /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS +0x00000001914d8000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation +0x0000000193550000 /usr/lib/libutil.dylib +0x0000000207e24000 /System/Library/PrivateFrameworks/InstalledContentLibrary.framework/Versions/A/InstalledContentLibrary +0x0000000188f39000 /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore +0x00000001f7f9b000 /System/Library/PrivateFrameworks/AppleMobileFileIntegrity.framework/Versions/A/AppleMobileFileIntegrity +0x00000001aa20e000 /usr/lib/libmis.dylib +0x00000001b9bee000 /System/Library/PrivateFrameworks/MobileSystemServices.framework/Versions/A/MobileSystemServices +0x00000001ea8e7000 /System/Library/PrivateFrameworks/ConfigProfileHelper.framework/Versions/A/ConfigProfileHelper +0x00000001921c0000 /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce +0x0000000187622000 /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling +0x0000000193554000 /usr/lib/libxslt.1.dylib +0x00000001920ac000 /usr/lib/libcmph.dylib +0x0000000191278000 /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji +0x00000001909a9000 /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData +0x0000000186505000 /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon +0x0000000191566000 /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement +0x000000022357e000 /usr/lib/libTLE.dylib +0x0000000193e0a000 /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG +0x000000019390d000 /usr/lib/libexpat.1.dylib +0x0000000194403000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib +0x000000019442e000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib +0x0000000194519000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib +0x0000000193e50000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib +0x00000001944be000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib +0x00000001944b5000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib +0x000000018fce5000 /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib +0x000000018c7dd000 /System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices +0x000000019fbed000 /System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/Versions/A/IOSurfaceAccelerator +0x0000000193f40000 /System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient +0x0000000187803000 /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay +0x000000018fba3000 /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia +0x000000018f94b000 /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator +0x000000018e1bd000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo +0x0000000192213000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders +0x0000000193f83000 /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox +0x000000018e258000 /System/Library/PrivateFrameworks/UserManagement.framework/Versions/A/UserManagement +0x000000018c70d000 /System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard +0x0000000190884000 /System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary +0x00000001f7f23000 /System/Library/PrivateFrameworks/AppleKeyStore.framework/Versions/A/AppleKeyStore +0x00000001944b0000 /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler +0x0000000194490000 /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment +0x00000001944b8000 /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay +0x0000000203f31000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/libllvm-flatbuffers.dylib +0x00000001ed4ab000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib +0x0000000200c11000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/libGPUCompilerUtils.dylib +0x000000019451f000 /System/Library/PrivateFrameworks/CMCaptureCore.framework/Versions/A/CMCaptureCore +0x00000001f0ac2000 /System/Library/Frameworks/ExtensionFoundation.framework/Versions/A/ExtensionFoundation +0x000000019b44a000 /System/Library/PrivateFrameworks/CoreTime.framework/Versions/A/CoreTime +0x0000000193add000 /System/Library/PrivateFrameworks/AppServerSupport.framework/Versions/A/AppServerSupport +0x000000019601c000 /System/Library/PrivateFrameworks/perfdata.framework/Versions/A/perfdata +0x0000000187927000 /System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore +0x000000018fb79000 /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk +0x0000000195898000 /usr/lib/libAudioStatistics.dylib +0x00000001a95b1000 /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy +0x0000000195b6f000 /usr/lib/libSMC.dylib +0x000000019f274000 /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI +0x00000001943ca000 /usr/lib/libAudioToolboxUtility.dylib +0x00000001a4f7c000 /System/Library/PrivateFrameworks/OSAServicesClient.framework/Versions/A/OSAServicesClient +0x000000019602a000 /usr/lib/libperfcheck.dylib +0x00000001937f7000 /System/Library/PrivateFrameworks/PlugInKit.framework/Versions/A/PlugInKit +0x00000001914ca000 /System/Library/PrivateFrameworks/AssertionServices.framework/Versions/A/AssertionServices +0x000000019e3a8000 /System/Library/PrivateFrameworks/ASEProcessing.framework/Versions/A/ASEProcessing +0x00000001c564b000 /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication +0x000000020ee03000 /System/Library/PrivateFrameworks/PhotosensitivityProcessing.framework/Versions/A/PhotosensitivityProcessing +0x0000000193a8f000 /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer +0x00000001ed50d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib +0x00000001ed4cc000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib +0x00000001ed6a5000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib +0x00000001ed4d5000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib +0x00000001ed4c9000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib +0x0000000223537000 /usr/lib/libRosetta.dylib +0x00000001ed4b2000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib +0x00000001fee34000 /System/Library/PrivateFrameworks/FontServices.framework/Versions/A/FontServices +0x0000000193a9b000 /System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG +0x000000018dd61000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib +0x0000000193ae7000 /System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib +0x00000001fee35000 /System/Library/PrivateFrameworks/FontServices.framework/libXTFontStaticRegistryData.dylib +0x00000001907fc000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSCore.framework/Versions/A/MPSCore +0x0000000191b3e000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSImage.framework/Versions/A/MPSImage +0x0000000191644000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork +0x0000000191a32000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix +0x000000019183e000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector +0x0000000191a61000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray +0x00000001f2648000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSFunctions.framework/Versions/A/MPSFunctions +0x00000001f262a000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSBenchmarkLoop.framework/Versions/A/MPSBenchmarkLoop +0x0000000186030000 /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools +0x00000001ae585000 /System/Library/PrivateFrameworks/IOAccelMemoryInfo.framework/Versions/A/IOAccelMemoryInfo +0x00000001b9afb000 /System/Library/PrivateFrameworks/kperf.framework/Versions/A/kperf +0x00000001aa222000 /System/Library/PrivateFrameworks/GPURawCounter.framework/Versions/A/GPURawCounter +0x000000019b33a000 /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication +0x00000001aa1df000 /System/Library/PrivateFrameworks/MallocStackLogging.framework/Versions/A/MallocStackLogging +0x000000019369e000 /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport +0x000000019b2f5000 /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols +0x00000001b8e53000 /System/Library/PrivateFrameworks/OSAnalytics.framework/Versions/A/OSAnalytics +0x000000021ab0c000 /System/Library/PrivateFrameworks/VideoToolboxParavirtualizationSupport.framework/Versions/A/VideoToolboxParavirtualizationSupport +0x00000001938c1000 /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA +0x00000001958e0000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS +0x000000018bc5f000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices +0x000000019452c000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore +0x0000000195cc8000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD +0x0000000195cbc000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy +0x00000001958b0000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis +0x00000001944e9000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI +0x0000000195c4f000 /usr/lib/libcups.2.dylib +0x0000000196038000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos +0x0000000196049000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS +0x000000019595f000 /usr/lib/libresolv.9.dylib +0x0000000193af8000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal +0x000000019d34d000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib +0x00000001960a3000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth +0x00000001ef88c000 /System/Library/Frameworks/AVFAudio.framework/Versions/A/AVFAudio +0x00000001a4fcb000 /System/Library/PrivateFrameworks/AXCoreUtilities.framework/Versions/A/AXCoreUtilities +0x000000019581c000 /System/Library/PrivateFrameworks/AudioSession.framework/Versions/A/AudioSession +0x0000000197251000 /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth +0x00000001939cb000 /System/Library/PrivateFrameworks/MediaExperience.framework/Versions/A/MediaExperience +0x0000000195660000 /System/Library/PrivateFrameworks/AudioSession.framework/libSessionUtility.dylib +0x0000000195cd4000 /System/Library/PrivateFrameworks/AudioResourceArbitration.framework/Versions/A/AudioResourceArbitration +0x000000019a2d4000 /System/Library/PrivateFrameworks/PowerLog.framework/Versions/A/PowerLog +0x000000019a1f7000 /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth +0x000000019d34e000 /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit +0x0000000191337000 /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils +0x00000001fd48b000 /System/Library/PrivateFrameworks/CoreUtilsExtras.framework/Versions/A/CoreUtilsExtras +0x0000000207cb7000 /System/Library/PrivateFrameworks/IO80211.framework/Versions/A/IO80211 +0x000000019ae70000 /System/Library/PrivateFrameworks/FrontBoardServices.framework/Versions/A/FrontBoardServices +0x000000019c93a000 /System/Library/PrivateFrameworks/BackBoardServices.framework/Versions/A/BackBoardServices +0x000000019af29000 /System/Library/PrivateFrameworks/BoardServices.framework/Versions/A/BoardServices +0x0000000193933000 /System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/IconFoundation +0x000000019919a000 /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore +0x00000001a4fe6000 /usr/lib/libAccessibility.dylib +0x0000000199901000 /System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility +0x00000001c89e7000 /System/Library/Frameworks/OSLog.framework/Versions/A/OSLog +0x00000001aa16f000 /System/Library/PrivateFrameworks/LoggingSupport.framework/Versions/A/LoggingSupport +0x0000000106610000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/server/libjvm.dylib +0x0000000105024000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libjimage.dylib +0x000000010506c000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libjava.dylib +0x0000000105398000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libnio.dylib +0x00000001053b8000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libnet.dylib +0x0000000105f24000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libzip.dylib +0x00000001053d8000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libverify.dylib +0x00000001053f4000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libextnet.dylib +0x0000000105f4c000 /Users/solsol/Library/Java/JavaVirtualMachines/corretto-19.0.2/Contents/Home/lib/libinstrument.dylib + + +VM Arguments: +jvm_args: -Dorg.gradle.internal.worker.tmpdir=/Users/solsol/spring-study/java-lotto/build/tmp/test/work -Dorg.gradle.native=false -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=KR -Duser.language=ko -Duser.variant -ea +java_command: worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 24' +java_class_path (initial): /Users/solsol/.gradle/caches/8.5/workerMain/gradle-worker.jar:/Users/solsol/spring-study/java-lotto/build/classes/java/test:/Users/solsol/spring-study/java-lotto/build/classes/java/main:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-actuator/3.2.3/ccd73fa4c26fd504fe3b2a6af618770f8689a4a8/spring-boot-starter-actuator-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-test/3.2.3/edfce43fbd303d556f3951af65dfb6e335d8230e/spring-boot-starter-test-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter/3.2.3/15f3e03b0fd9570f90bdce9651610cc152534cf4/spring-boot-starter-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator-autoconfigure/3.2.3/74af39b7830e781e9021c5f56c86298d3cda9e2c/spring-boot-actuator-autoconfigure-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-jakarta9/1.12.3/b034431db33d20d6a65439099fb341c1b5b420c9/micrometer-jakarta9-1.12.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-core/1.12.3/9cb0cf6994e12aaa9a756864705c10d9e0af7428/micrometer-core-1.12.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test-autoconfigure/3.2.3/ea2e1778142fc8a05bd9325b433b13fe0a6845c1/spring-boot-test-autoconfigure-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-test/3.2.3/4f440305c921caa9eb11624c1c6fa8fcc5200a64/spring-boot-test-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-autoconfigure/3.2.3/59db74eb4196885bb5a149417ab1ab51dc9b6952/spring-boot-autoconfigure-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-actuator/3.2.3/214e6577734f72724e55c8f3730c8ceed3258f6f/spring-boot-actuator-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot/3.2.3/b4aa6e3fdc4078fee4a4b9d702d9cc64e3fad1d4/spring-boot-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/6.1.4/765316bef55e41e4523f9b2780b8721ce5dd0fe2/spring-context-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-observation/1.12.3/105f768c211564fcebe4d79419bda4ebef0d0ac7/micrometer-observation-1.12.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/com.jayway.jsonpath/json-path/2.9.0/37fe2217f577b0b68b18e62c4d17a8858ecf9b69/json-path-2.9.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-api/4.0.1/ca2330866cbc624c7e5ce982e121db1125d23e15/jakarta.xml.bind-api-4.0.1.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/net.minidev/json-smart/2.5.0/57a64f421b472849c40e77d2e7cce3a141b41e99/json-smart-2.5.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-core/3.24.2/ebbf338e33f893139459ce5df023115971c2786f/assertj-core-3.24.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.awaitility/awaitility/4.2.0/2c39784846001a9cffd6c6b89c78de62c0d80fb8/awaitility-4.2.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-2.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-junit-jupiter/5.7.0/ac2d6a3431747a7986b8f4abef465f72bf3a21ae/mockito-junit-jupiter-5.7.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-params/5.10.2/359132c82a9d3fa87a325db6edd33b5fdc67a3d8/junit-jupiter-params-5.10.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-engine/5.10.2/f1f8fe97bd58e85569205f071274d459c2c4f8cd/junit-jupiter-engine-5.10.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-api/5.10.2/fb55d6e2bce173f35fd28422e7975539621055ef/junit-jupiter-api-5.10.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-engine/1.10.2/d53bb4e0ce7f211a498705783440614bfaf0df2e/junit-platform-engine-1.10.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-commons/1.10.2/3197154a1f0c88da46c47a9ca27611ac7ec5d797/junit-platform-commons-1.10.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter/5.10.2/831c0b86ddc2ce38391c5b81ea662b0cfdc02cce/junit-jupiter-5.10.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-core/5.7.0/a1c258331ab91d66863c983aff7136357e9de056/mockito-core-5.7.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.skyscreamer/jsonassert/1.5.1/6d842d0faf4cf6725c509a5e5347d319ee0431c3/jsonassert-1.5.1.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-test/6.1.4/acef358552d3bb56a4da0894b8d2277de8ae39d9/spring-test-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-aop/6.1.4/26ae2c9e7f69b0235a2faca1c58416c51eaebef6/spring-aop-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/6.1.4/e311cc9937d522a1051622580b4a2c250fc74164/spring-beans-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-expression/6.1.4/a1f2e3af83c7222b7f95f68a8e0666fdcceb35e1/spring-expression-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/6.1.4/3b4dde8f55c3d5d4e948de64b866d7bb27e5a8d4/spring-core-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.xmlunit/xmlunit-core/2.9.1/e5833662d9a1279a37da3ef6f62a1da29fcd68c4/xmlunit-core-2.9.1.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework.boot/spring-boot-starter-logging/3.2.3/c186015229d7f5cbd30ea99bf903a8cede6d849f/spring-boot-starter-logging-3.2.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.1.1/48b9bda22b091b1f48b13af03fe36db3be6e1ae3/jakarta.annotation-api-2.1.1.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/2.2/3af797a25458550a16bf89acc8e4ab2b7f2bfce0/snakeyaml-2.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.15.4/5223ea5a9bf52cdc9c5e537a0e52f2432eaf208b/jackson-annotations-2.15.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.15.4/aebe84b45360debad94f692a4074c6aceb535fa0/jackson-core-2.15.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.datatype/jackson-datatype-jsr310/2.15.4/7de629770a4559db57128d35ccae7d2fddd35db3/jackson-datatype-jsr310-2.15.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.15.4/560309fc381f77d4d15c4a4cdaa0db5025c4fd13/jackson-databind-2.15.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-commons/1.12.3/83add2dda5cdc811fefb83e858c7412a176fe5b1/micrometer-commons-1.12.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.4.14/d98bc162275134cdf1518774da4a2a17ef6fb94d/logback-classic-1.4.14.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-slf4j/2.21.1/d77b2ba81711ed596cd797cc2b5b5bd7409d841c/log4j-to-slf4j-2.21.1.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.slf4j/jul-to-slf4j/2.0.12/eb5f48f782b41cc881b0bf1fb4d88ae2ff6d5b93/jul-to-slf4j-2.0.12.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.12/48f109a2a6d8f446c794f3e3fa0d86df0cdfa312/slf4j-api-2.0.12.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/jakarta.activation/jakarta.activation-api/2.1.2/640c0d5aff45dbff1e1a1bc09673ff3a02b1ba12/jakarta.activation-api-2.1.2.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/net.minidev/accessors-smart/2.5.0/aca011492dfe9c26f4e0659028a4fe0970829dd8/accessors-smart-2.5.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy/1.14.12/6e37f743dc15a8d7a4feb3eb0025cbc612d5b9e1/byte-buddy-1.14.12.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.12/be4984cb6fd1ef1d11f218a648889dfda44b8a15/byte-buddy-agent-1.14.12.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.objenesis/objenesis/3.3/1049c09f1de4331e8193e579448d0916d75b7631/objenesis-3.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-0.0.20131108.vaadin1.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jcl/6.1.4/a244bd674a5431dfdce68d28cdf857104e6fff67/spring-jcl-6.1.4.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.hdrhistogram/HdrHistogram/2.1.12/6eb7552156e0d517ae80cc2247be1427c8d90452/HdrHistogram-2.1.12.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.latencyutils/LatencyUtils/2.0.3/769c0b82cb2421c8256300e907298a9410a2a3d3/LatencyUtils-2.0.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.3/8e6300ef51c1d801a7ed62d07cd221aca3a90640/asm-9.3.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.opentest4j/opentest4j/1.3.0/152ea56b3a72f655d4fd677fc0ef2596c3dd5e6e/opentest4j-1.3.0.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.4.14/4d3c2248219ac0effeb380ed4c5280a80bf395e8/logback-core-1.4.14.jar:/Users/solsol/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.21.1/74c65e87b9ce1694a01524e192d7be989ba70486/log4j-api-2.21.1.jar:/Users/solsol/.gradle/wrapper/dists/gradle-8.5-bin/5t9huq95ubn472n8rpzujfbqh/gradle-8.5/lib/plugins/junit-platform-engine-1.8.2.jar:/Users/solsol/.gradle/wrapper/dists/gradle-8.5-bin/5t9huq95ubn472n8rpzujfbqh/gradle-8.5/lib/plugins/junit-platform-launcher-1.8.2.jar:/Users/solsol/.gradle/wrapper/dists/gradle-8.5-bin/5t9huq95ubn472n8rpzujfbqh/gradle-8.5/lib/plugins/junit-platform-commons-1.8.2.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 4 {product} {ergonomic} + uint ConcGCThreads = 2 {product} {ergonomic} + uint G1ConcRefinementThreads = 8 {product} {ergonomic} + size_t G1HeapRegionSize = 1048576 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 268435456 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 536870912 {product} {command line} + size_t MaxNewSize = 321912832 {product} {ergonomic} + size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 5839564 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122909338 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122909338 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 536870912 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseNUMA = false {product} {ergonomic} + bool UseNUMAInterleaving = false {product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags foldmultilines=false + #1: stderr all=off uptime,level,tags foldmultilines=false + +Environment Variables: +PATH=/opt/homebrew/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/usr/local/apache-maven-3.9.3/bin +SHELL=/bin/zsh +LC_CTYPE=ko_KR.UTF-8 +TMPDIR=/var/folders/st/l3xg42c56d31pxss6hzdxtjm0000gn/T/ + +Active Locale: +LC_ALL=C/ko_KR.UTF-8/C/C/C/C +LC_COLLATE=C +LC_CTYPE=ko_KR.UTF-8 +LC_MESSAGES=C +LC_MONETARY=C +LC_NUMERIC=C +LC_TIME=C + +Signal Handlers: + SIGSEGV: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGBUS: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGFPE: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGPIPE: javaSignalHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + *** Handler was modified! + *** Expected: 0x00000b3fa7be4090, mask=10010000000000000000000000000000, flags=none + SIGXFSZ: javaSignalHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + *** Handler was modified! + *** Expected: 0x00000b3fa7be40d0, mask=01010000000000000000000000000000, flags=none + SIGILL: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGUSR2: SR_handler in libjvm.dylib, mask=00100000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO + *** Handler was modified! + *** Expected: 0x00000b3fa7be4060, mask=01110000000000000000000000000000, flags=none + SIGHUP: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGINT: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGTERM: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGQUIT: UserHandler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + SIGTRAP: crash_handler in libjvm.dylib, mask=11100110000111110111111111111111, flags=SA_RESTART|SA_SIGINFO + + +--------------- S Y S T E M --------------- + +OS: +uname: Darwin 23.0.0 Darwin Kernel Version 23.0.0: Fri Sep 15 14:42:57 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T8112 arm64 +OS uptime: 1 days 3:28 hours +rlimit (soft/hard): STACK 8176k/65520k , CORE 0k/infinity , NPROC 2666/4000 , NOFILE 10240/infinity , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK infinity/infinity , RSS infinity/infinity +load average: 8.91 6.05 3.99 + +CPU: total 8 (initial active 8) 0x61:0x0:0xda33d83d:0, fp, simd, aes, pmull, crc32, lse + +Memory: 16k page, physical 16777216k(64848k free), swap 0k(0k free) + +vm_info: OpenJDK 64-Bit Server VM (19.0.2+7-FR) for bsd-aarch64 JRE (19.0.2+7-FR), built on Jan 13 2023 18:57:43 by "ec2user" with clang Apple LLVM 13.0.0 (clang-1300.0.29.30) + +END. diff --git a/settings.gradle b/settings.gradle old mode 100644 new mode 100755 diff --git a/src/main/java/lotto/Application.java b/src/main/java/lotto/Application.java old mode 100644 new mode 100755 index d190922..7a0c63d --- a/src/main/java/lotto/Application.java +++ b/src/main/java/lotto/Application.java @@ -1,7 +1,23 @@ package lotto; +import lotto.controller.LottoController; +import lotto.model.service.LottoGenerator; +import lotto.view.InputManager; +import lotto.view.OutputManager; +import lotto.view.SystemOutputManager; +import lotto.view.UserInputManager; + +import java.util.Random; +import java.util.Scanner; + public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + OutputManager outputManager = new SystemOutputManager(); + Random random = new Random(); + + LottoController lottoController = new LottoController(inputManager, outputManager, random); + lottoController.runGame(); } } diff --git a/src/main/java/lotto/Lotto.java b/src/main/java/lotto/Lotto.java deleted file mode 100644 index 519793d..0000000 --- a/src/main/java/lotto/Lotto.java +++ /dev/null @@ -1,20 +0,0 @@ -package lotto; - -import java.util.List; - -public class Lotto { - private final List numbers; - - public Lotto(List numbers) { - validate(numbers); - this.numbers = numbers; - } - - private void validate(List numbers) { - if (numbers.size() != 6) { - throw new IllegalArgumentException(); - } - } - - // TODO: 추가 기능 구현 -} diff --git a/src/main/java/lotto/controller/LottoController.java b/src/main/java/lotto/controller/LottoController.java new file mode 100755 index 0000000..90ba973 --- /dev/null +++ b/src/main/java/lotto/controller/LottoController.java @@ -0,0 +1,96 @@ +package lotto.controller; + +import lombok.AllArgsConstructor; +import lotto.model.Lotto; +import lotto.model.dto.Money; +import lotto.model.service.LottoGenerator; +import lotto.model.service.LottoResultCalculator; +import lotto.model.dto.PrizeNumbers; +import lotto.model.enums.Winnings; +import lotto.view.InputManager; +import lotto.view.OutputManager; + +import java.util.HashMap; +import java.util.List; +import java.util.Random; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +@AllArgsConstructor +public class LottoController { + private final InputManager inputManager; + private final OutputManager outputManager; + private final Random random; + // 입력 처리 및 비즈니스 로직 통제 + public void runGame(){ + LottoGenerator lottoGenerator = new LottoGenerator(random); + LottoResultCalculator lottoResultCalculator = new LottoResultCalculator(); + // 돈 받고 로또 생성 + Money money = getMoney(Lotto::validateMoney); + int lottoQuantity = lottoGenerator.countQuentityBasedOnMoney(money); + outputManager.outputLottoQuantity(lottoQuantity); + List lottos = lottoGenerator.createLottos(lottoQuantity); + outputManager.outputLottoNumbers(lottos); + + PrizeNumbers prizeNumbers = getPrizeNumbersForLotto(); + HashMap lottoResult = lottoResultCalculator.provideWinningDetails(lottos, prizeNumbers); + outputManager.outputWinningDetails(lottoResult); + String rateOrReturn = lottoResultCalculator.calculateReturn(lottoResult, money); + outputManager.outputRateOfReturn(rateOrReturn); + } + + // 로또를 사기 위한 구입 금액 입력 + // 만약 자동차를 사기 위한 Money를 입력 받는 경우가 생긴다면? 어떻게 할 수 있을까? + // 함수형 인터페이스의 익명함수를 사용하면 유효성 검사 로직과 입력 받는 로직을 분리할 수 있다. + private Money getMoney(Consumer vaildator){ + while(true){ + try{ + outputManager.displayMessage("구입금액을 입력해 주세요."); + int amount = inputManager.enterPurchaseAmount(); // View + Money money = new Money(amount); + vaildator.accept(money); + return money; // 데이터 생성 + } + catch(IllegalArgumentException e){ + outputManager.displayMessage(e.getMessage()); + } + } + } + + private PrizeNumbers getPrizeNumbersForLotto(){ + // (w) -> Lotto.validateLottoNumbers(w) + List winningNumbers = retryWinningNumbers(Lotto::validateLottoNumbers); + int bonusNumber = retryBonusNumber(winningNumbers, Lotto::validateBonusNumber); + return new PrizeNumbers(winningNumbers, bonusNumber); + } + + // Lotto를 위한 당첨금 받기 + private List retryWinningNumbers(Consumer> vaildator){ + while(true){ + try{ + outputManager.displayWinningNumbersRequest(); + List winningNumbers = inputManager.enterWinningNumbers(); + vaildator.accept(winningNumbers); + return winningNumbers; + } + catch(IllegalArgumentException e){ + outputManager.displayMessage(e.getMessage()); + } + } + } + + // Lotto를 위한 보너스 받기 + private int retryBonusNumber(List winningNumbers, BiConsumer, Integer> vaildator){ + while(true){ + try{ + outputManager.displayBonusNumberRequest(); + int bonusNumber = inputManager.enterBonusNumber(); + vaildator.accept(winningNumbers, bonusNumber); + return bonusNumber; + } + catch(IllegalArgumentException e){ + outputManager.displayMessage(e.getMessage()); + } + } + } +} diff --git a/src/main/java/lotto/model/Lotto.java b/src/main/java/lotto/model/Lotto.java new file mode 100755 index 0000000..cc292c2 --- /dev/null +++ b/src/main/java/lotto/model/Lotto.java @@ -0,0 +1,62 @@ +package lotto.model; + +import lotto.model.dto.Money; +import lotto.model.enums.LottoDefinition; +import lotto.model.enums.LottoExceptionStatus; + +import java.util.List; +import java.util.stream.Collectors; + +public record Lotto(List numbers) { + + public Lotto(List numbers) { + Lotto.validateLottoNumbers(numbers); + this.numbers = numbers.stream() // 정렬해서 저장 + .sorted() + .collect(Collectors.toList()); + } + + @Override + public String toString(){ + return numbers.toString(); + } + + public static void validateMoney(Money money){ + if (money.getMoney() % LottoDefinition.PriceOfLotto.getNumber() > 0) { + throw new IllegalArgumentException(LottoExceptionStatus.IllegalPurchaseRemainderException.getMessage()); + } + } + + public static void validateBonusNumber(List winningNumbers, int bonusNumber) { + validateNumberLottoScope(bonusNumber); + Lotto.validateNumberLottoScope(bonusNumber); // 유효 범위 + if(winningNumbers.contains(bonusNumber)){ // 당첨 번호와 중복 체크 + throw new IllegalArgumentException(LottoExceptionStatus.IllegalBonusDuplicateException.getMessage()); + } + } + + public static void validateLottoNumbers(List numbers){ + validateNumberCount(numbers); + validateNumberDuplicate(numbers); + validateNumbersLottoScope(numbers); + } + private static void validateNumberCount(List numbers){ + if (numbers.size() != LottoDefinition.SelectionSize.getNumber()) { + throw new IllegalArgumentException(LottoExceptionStatus.IllegalLottoSizeException.getMessage()); + } + } + private static void validateNumberDuplicate(List numbers){ + int distinctSize = (int) numbers.stream().distinct().count(); + if(distinctSize != LottoDefinition.SelectionSize.getNumber()){ + throw new IllegalArgumentException(LottoExceptionStatus.IllegalLottoDuplicateException.getMessage()); + } + } + private static void validateNumberLottoScope(int number){ + if(number>LottoDefinition.MaximumNumber.getNumber() || number numbers){ + numbers.forEach(Lotto::validateNumberLottoScope); + } +} diff --git a/src/main/java/lotto/model/dto/Money.java b/src/main/java/lotto/model/dto/Money.java new file mode 100644 index 0000000..e908a6e --- /dev/null +++ b/src/main/java/lotto/model/dto/Money.java @@ -0,0 +1,17 @@ +package lotto.model.dto; + +import lombok.Getter; + +@Getter +public class Money { + private int money; + public Money(int money){ + validateMoney(money); + this.money = money; + } + private void validateMoney(int money){ + if(money < 0 ) + // Lotto와는 관련 없는 에러 메시지기 때문에 따로 enum 처리하지 않음 + throw new IllegalArgumentException("[ERROR] 구입 금액은 0 이상일 때 입력할 수 있어요."); + } +} diff --git a/src/main/java/lotto/model/dto/PrizeNumbers.java b/src/main/java/lotto/model/dto/PrizeNumbers.java new file mode 100755 index 0000000..48768f1 --- /dev/null +++ b/src/main/java/lotto/model/dto/PrizeNumbers.java @@ -0,0 +1,15 @@ +package lotto.model.dto; + +import java.util.List; +import java.util.stream.Collectors; + +// 생성되고 더 이상 수정되지 않음 +public record PrizeNumbers(List winningNumbers, int bonusNumber){ + + public PrizeNumbers(List winningNumbers, int bonusNumber){ + this.winningNumbers = winningNumbers.stream() // 정렬해서 저장 + .sorted() + .collect(Collectors.toList()); + this.bonusNumber = bonusNumber; + } +} diff --git a/src/main/java/lotto/model/enums/LottoDefinition.java b/src/main/java/lotto/model/enums/LottoDefinition.java new file mode 100644 index 0000000..d5343b8 --- /dev/null +++ b/src/main/java/lotto/model/enums/LottoDefinition.java @@ -0,0 +1,17 @@ +package lotto.model.enums; + +import lombok.Getter; + +@Getter +public enum LottoDefinition { + MaximumNumber(45), + MinimunNumber(1), + PriceOfLotto(1000), + SelectionSize(6); + + private final int number; + + LottoDefinition(int number){ + this.number = number; + } +} diff --git a/src/main/java/lotto/model/enums/LottoExceptionStatus.java b/src/main/java/lotto/model/enums/LottoExceptionStatus.java new file mode 100755 index 0000000..d8a3b17 --- /dev/null +++ b/src/main/java/lotto/model/enums/LottoExceptionStatus.java @@ -0,0 +1,25 @@ +package lotto.model.enums; + +public enum LottoExceptionStatus { + + IllegalPurchaseRemainderException("[ERROR] 구입 금액은 1000으로 나눠 떨어질 때 입력할 수 있어요."), + IllegalPurchaseNegativeException("[ERROR] 구입 금액은 0 이상일 때 입력할 수 있어요."), + IllegalLottoDuplicateException("[ERROR] 로또 번호는 중복이 없을 때 입력할 수 있어요."), + IllegalLottoSizeException("[ERROR] 로또 번호는 6개 숫자를 입력할 수 있어요."), + IllegalLottoScopeException("[ERROR] 로또 번호는 1에서 45 사이 숫자를 입력할 수 있어요."), + IllegalBonusDuplicateException("[ERROR] 보너스 번호는 당첨 보호와 중복이 없을 때 입력할 수 있어요."); + + private String message; + + LottoExceptionStatus(String message){ + this.message = message; + } + public String getMessage(){ + return message; + } + + public IllegalArgumentException makeException(){ + return new IllegalArgumentException(getMessage()); + } + +} diff --git a/src/main/java/lotto/model/enums/Winnings.java b/src/main/java/lotto/model/enums/Winnings.java new file mode 100755 index 0000000..e7efce2 --- /dev/null +++ b/src/main/java/lotto/model/enums/Winnings.java @@ -0,0 +1,33 @@ +package lotto.model.enums; + +import lombok.Getter; +import java.util.Arrays; + +@Getter +public enum Winnings { + Fail(0,0,false), + Fifth(5000,3,false), + Fourth(50000,4,false), + Third(1500000,5,false), + Second(30000000,5,true), + First(2000000000,6,false); + + private int winningValue; + private int winningMatchCount; + private boolean bonusMatchCount; + + Winnings(int winningValue,int winningMatchCount, boolean bonusMatchCount) { + this.winningValue = winningValue; + this.winningMatchCount = winningMatchCount; + this.bonusMatchCount = bonusMatchCount; + } + + // valueOfWinningsAndBonus의 if문 분기를 제거. 대신 Fail에 따른 Output 로직 수정은 필요. + public static Winnings of(int winningMatchCount, boolean bonusMatch){ + return Arrays.stream(values()) + .filter(it -> (it.winningMatchCount == winningMatchCount && + it.bonusMatchCount == bonusMatch)) + .findAny() + .orElse(Fail); + } +} \ No newline at end of file diff --git a/src/main/java/lotto/model/service/LottoGenerator.java b/src/main/java/lotto/model/service/LottoGenerator.java new file mode 100755 index 0000000..9574048 --- /dev/null +++ b/src/main/java/lotto/model/service/LottoGenerator.java @@ -0,0 +1,38 @@ +package lotto.model.service; + +import lotto.model.Lotto; +import lotto.model.dto.Money; + +import java.util.HashSet; +import java.util.List; +import java.util.Random; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +public class LottoGenerator { + private final Random random; + // 더 쉬운 테스트를 위해 Random을 주입하는 방식 사용 + public LottoGenerator(Random random){ + this.random = random; + } + + public int countQuentityBasedOnMoney(Money money){ + return money.getMoney()/1000; + } + + public List createLottos(int lottoQuantity) { + return IntStream.range(0, lottoQuantity) + .mapToObj(i -> createSingleLotto()) + .collect(Collectors.toList()); + } + + private Lotto createSingleLotto(){ + Set numbers = new HashSet<>(); + while(numbers.size()<=5) { + int temp = random.nextInt(45) + 1; // 1~45 사이 값 무작위로 추출 + numbers.add(temp); + } + return new Lotto(numbers.stream().toList()); + } +} diff --git a/src/main/java/lotto/model/service/LottoResultCalculator.java b/src/main/java/lotto/model/service/LottoResultCalculator.java new file mode 100755 index 0000000..224f5db --- /dev/null +++ b/src/main/java/lotto/model/service/LottoResultCalculator.java @@ -0,0 +1,54 @@ +package lotto.model.service; + +import lombok.AllArgsConstructor; +import lotto.model.Lotto; +import lotto.model.dto.Money; +import lotto.model.dto.PrizeNumbers; +import lotto.model.enums.Winnings; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; + +@AllArgsConstructor +public class LottoResultCalculator { + + public HashMap provideWinningDetails(List customerLottos, PrizeNumbers prizeNumbers){ + HashMap map = newWinningsMap(); + customerLottos.forEach(lotto -> { + int winningMatchCount = checkWinningElement(lotto.numbers(), prizeNumbers.winningNumbers()); + boolean bonusMatchCount = checkBonusElement(lotto.numbers(), prizeNumbers.bonusNumber()); + Winnings winnings = Winnings.of(winningMatchCount,bonusMatchCount); + map.put(winnings, map.get(winnings)+1); + }); + return map; + } + + private HashMap newWinningsMap(){ + HashMap map = new LinkedHashMap<>(); // 입력 순서를 보장하면서 Map을 사용할 수 있는 자료형 + for(Winnings w : Winnings.values()){ + map.put(w,0); + } + return map; + } + + private boolean checkBonusElement(List a, int b){ + return a.contains(b); + } + + // 크기가 6이고 정렬된 두 배열에서 동일한 요소 개수 찾기 + private int checkWinningElement(List a, Listb){ + return (int) a.stream().filter(b::contains).count(); + } + + public String calculateReturn(HashMap lottoResult, Money money) { + return String.format("%.1f", (double) totalPrice(lottoResult)*100/money.getMoney()); + } + private int totalPrice(HashMap lottoResult){ + int result = 0; + for(Winnings w : lottoResult.keySet()){ + result += w.getWinningValue()*lottoResult.get(w); + } + return result; + } +} diff --git a/src/main/java/lotto/view/InputManager.java b/src/main/java/lotto/view/InputManager.java new file mode 100755 index 0000000..2748801 --- /dev/null +++ b/src/main/java/lotto/view/InputManager.java @@ -0,0 +1,9 @@ +package lotto.view; + +import java.util.List; + +public interface InputManager { + int enterPurchaseAmount(); + List enterWinningNumbers(); + int enterBonusNumber(); +} diff --git a/src/main/java/lotto/view/OutputManager.java b/src/main/java/lotto/view/OutputManager.java new file mode 100755 index 0000000..5e1e265 --- /dev/null +++ b/src/main/java/lotto/view/OutputManager.java @@ -0,0 +1,17 @@ +package lotto.view; + +import lotto.model.Lotto; +import lotto.model.enums.Winnings; + +import java.util.HashMap; +import java.util.List; + +public interface OutputManager { + void outputLottoQuantity(int quantity); + void outputLottoNumbers(List lottoList); + void outputWinningDetails(HashMap map); + void outputRateOfReturn(String rateOfReturn); + void displayMessage(String message); + void displayWinningNumbersRequest(); + void displayBonusNumberRequest(); +} diff --git a/src/main/java/lotto/view/SystemOutputManager.java b/src/main/java/lotto/view/SystemOutputManager.java new file mode 100755 index 0000000..ca55125 --- /dev/null +++ b/src/main/java/lotto/view/SystemOutputManager.java @@ -0,0 +1,64 @@ +package lotto.view; + +import lotto.model.Lotto; +import lotto.model.enums.Winnings; +import java.text.DecimalFormat; +import java.util.HashMap; +import java.util.List; + +public class SystemOutputManager implements OutputManager{ + @Override + public void outputLottoQuantity(int quantity) { + System.out.println(quantity+"개를 구매했습니다."); + } + + @Override + public void outputLottoNumbers(List lottoList) { + lottoList.forEach(lotto -> + System.out.println(lotto.toString())); + } + + @Override + public void outputWinningDetails(HashMap map) { + System.out.println("당첨 통계\n---"); + for(Winnings w : map.keySet()){ + StringBuilder stringBuilder = new StringBuilder(); + if(w.equals(Winnings.Fail))continue; + stringBuilder.append(w.getWinningMatchCount()); + stringBuilder.append("개 일치"); + if(w.isBonusMatchCount())//w의 보너스 카운트 얻기 true면 아래 코드 실행 + stringBuilder.append(", 보너스 볼 일치"); + stringBuilder.append(" ("); + stringBuilder.append(formatNumberWithCommas(w.getWinningValue())); + stringBuilder.append("원) - "); + stringBuilder.append(map.get(w)); + stringBuilder.append("개"); + System.out.println(stringBuilder); + } + } + + private String formatNumberWithCommas(int number) { + DecimalFormat decimalFormat = new DecimalFormat("#,###"); + return decimalFormat.format(number); + } + + @Override + public void outputRateOfReturn(String rateOfReturn) { + System.out.println("총 수익률은 "+rateOfReturn+"%입니다."); + } + + @Override + public void displayMessage(String message) { + System.out.println(message); + } + + @Override + public void displayWinningNumbersRequest() { + System.out.println("당첨 번호를 입력해 주세요."); + } + + @Override + public void displayBonusNumberRequest() { + System.out.println("보너스 번호를 입력해 주세요."); + } +} diff --git a/src/main/java/lotto/view/UserInputManager.java b/src/main/java/lotto/view/UserInputManager.java new file mode 100755 index 0000000..5ed1a7a --- /dev/null +++ b/src/main/java/lotto/view/UserInputManager.java @@ -0,0 +1,44 @@ +package lotto.view; + +import java.util.*; + +public class UserInputManager implements InputManager { + private final Scanner scanner;// 선언 + + // 생성자에서 Scanner 주입 + public UserInputManager(Scanner scanner) { + this.scanner = scanner; + } + @Override + public int enterPurchaseAmount() { + try{ + StringTokenizer st = new StringTokenizer(scanner.nextLine()); + return Integer.parseInt(st.nextToken()); + } catch (NumberFormatException | InputMismatchException e){ + throw new IllegalArgumentException("[ERROR] 당첨금은 정수일 때 입력할 수 있어요."); + } + } + + @Override + public List enterWinningNumbers() { + List list = new ArrayList<>(); + try{ + StringTokenizer st = new StringTokenizer(scanner.nextLine()); + while(st.hasMoreTokens()) { //hasMoreTokens() : 토큰이 남아있다면 true, 없으면 false 리턴 + list.add(Integer.parseInt(st.nextToken())); + } + }catch (NumberFormatException e){ + throw new IllegalArgumentException("[ERROR] 당첨금은 정수일 때 입력할 수 있어요."); + } + return list; + } + + @Override + public int enterBonusNumber() { + try{ + return Integer.parseInt(scanner.nextLine()); + }catch (NumberFormatException | InputMismatchException e){ + throw new IllegalArgumentException("[ERROR] 당첨금은 정수일 때 입력할 수 있어요."); + } + } +} diff --git a/src/test/java/controller/ControllerTest.java b/src/test/java/controller/ControllerTest.java new file mode 100644 index 0000000..8b62462 --- /dev/null +++ b/src/test/java/controller/ControllerTest.java @@ -0,0 +1,264 @@ +package controller; + +import lotto.controller.LottoController; +import lotto.view.InputManager; +import lotto.view.OutputManager; +import lotto.view.SystemOutputManager; +import lotto.view.UserInputManager; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.Arrays; +import java.util.List; +import java.util.Random; +import java.util.Scanner; + +import static org.mockito.Mockito.when; + +public class ControllerTest { + + @DisplayName("정상적인 입력 가정 시스템 통합 테스트") + @Test + public void runLottoControllerTest(){ + // Given + String inputString = "2000\n" + // 구매금액 + "2 10 18 24 5 6\n" + // 당첨 번호 + "20\n"; // 보너스 + + ByteArrayInputStream in = new ByteArrayInputStream(inputString.getBytes()); + System.setIn(in); + + Random randomNumberMock = Mockito.mock(Random.class); + when(randomNumberMock.nextInt(45)) + .thenReturn(1,33,32,31,30,34) + .thenReturn(1,31,9,17,23,44); + + // When + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + OutputManager outputManager = new SystemOutputManager(); + LottoController lottoController = new LottoController(inputManager, outputManager, randomNumberMock); + + // 출력을 기대하는 값 + List expectedOutput = Arrays.asList( + "구입금액을 입력해 주세요.", + "2개를 구매했습니다.", + "[2, 31, 32, 33, 34, 35]", + "[2, 10, 18, 24, 32, 45]", + "당첨 번호를 입력해 주세요.", + "보너스 번호를 입력해 주세요.", + "당첨 통계", + "---", + "3개 일치 (5,000원) - 0개", + "4개 일치 (50,000원) - 1개", + "5개 일치 (1,500,000원) - 0개", + "5개 일치, 보너스 볼 일치 (30,000,000원) - 0개", + "6개 일치 (2,000,000,000원) - 0개", + "총 수익률은 2500.0%입니다." + ); + + // 표준 출력을 캡처하여 테스트에서 비교 + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + System.setOut(new PrintStream(outContent)); + + // 테스트 실행 + lottoController.runGame(); + + // 표준 출력을 문자열로 변환하여 테스트에서 비교 + String actualOutput = outContent.toString().trim(); + List actualOutputList = Arrays.asList(actualOutput.split("\n")); + + // 출력 비교 + // Then + Assertions.assertThat(actualOutputList) + .isEqualTo(expectedOutput); + } + + @DisplayName("1000으로 나눠떨어지지 않는 입력 가정 시스템 통합 테스트") + @Test + public void given1000RemainPrice_thenRetryEnterPrice(){ + // Given + String inputString = "2004\n" + // 1000으로 나눠떨어지지 않는 구매 금액 + "2000\n"+ // 1000으로 나눠떨어지는 구매 금액 + "2 10 18 24 5 6\n" + // 당첨 번호 + "20\n"; // 보너스 + + ByteArrayInputStream in = new ByteArrayInputStream(inputString.getBytes()); + System.setIn(in); + + Random randomNumberMock = Mockito.mock(Random.class); + when(randomNumberMock.nextInt(45)) + .thenReturn(1,33,32,31,30,34) + .thenReturn(1,31,9,17,23,44); + + // When + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + OutputManager outputManager = new SystemOutputManager(); + LottoController lottoController = new LottoController(inputManager, outputManager, randomNumberMock); + + // 출력을 기대하는 값 + List expectedOutput = Arrays.asList( + "구입금액을 입력해 주세요.", + "[ERROR] 구입 금액은 1000으로 나눠 떨어질 때 입력할 수 있어요.", + "구입금액을 입력해 주세요.", + "2개를 구매했습니다.", + "[2, 31, 32, 33, 34, 35]", + "[2, 10, 18, 24, 32, 45]", + "당첨 번호를 입력해 주세요.", + "보너스 번호를 입력해 주세요.", + "당첨 통계", + "---", + "3개 일치 (5,000원) - 0개", + "4개 일치 (50,000원) - 1개", + "5개 일치 (1,500,000원) - 0개", + "5개 일치, 보너스 볼 일치 (30,000,000원) - 0개", + "6개 일치 (2,000,000,000원) - 0개", + "총 수익률은 2500.0%입니다." + ); + + // 표준 출력을 캡처하여 테스트에서 비교 + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + System.setOut(new PrintStream(outContent)); + + // 테스트 실행 + lottoController.runGame(); + + // 표준 출력을 문자열로 변환하여 테스트에서 비교 + String actualOutput = outContent.toString().trim(); + List actualOutputList = Arrays.asList(actualOutput.split("\n")); + + // 출력 비교 + // Then + Assertions.assertThat(actualOutputList) + .isEqualTo(expectedOutput); + } + + @DisplayName("당첨 번호와 보너스 번호가 중복일 때 가정 시스템 통합 테스트") + @Test + public void givenDuplicateWinningNumbersAndBonusNumber_thenRetryEnterBonus(){ + // Given + String inputString = "2004\n" + // 1000으로 나눠떨어지지 않는 구매 금액 + "2000\n"+ // 1000으로 나눠떨어지는 구매 금액 + "2 10 18 24 5 6\n" + // 당첨 번호 + "2\n"+ // 당첨 번호와 중복된 보너스 + "20\n"; // 보너스 + + ByteArrayInputStream in = new ByteArrayInputStream(inputString.getBytes()); + System.setIn(in); + + Random randomNumberMock = Mockito.mock(Random.class); + when(randomNumberMock.nextInt(45)) + .thenReturn(1,33,32,31,30,34) + .thenReturn(1,31,9,17,23,44); + + // When + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + OutputManager outputManager = new SystemOutputManager(); + LottoController lottoController = new LottoController(inputManager, outputManager, randomNumberMock); + + // 출력을 기대하는 값 + List expectedOutput = Arrays.asList( + "구입금액을 입력해 주세요.", + "[ERROR] 구입 금액은 1000으로 나눠 떨어질 때 입력할 수 있어요.", + "구입금액을 입력해 주세요.", + "2개를 구매했습니다.", + "[2, 31, 32, 33, 34, 35]", + "[2, 10, 18, 24, 32, 45]", + "당첨 번호를 입력해 주세요.", + "보너스 번호를 입력해 주세요.", + "[ERROR] 보너스 번호는 당첨 보호와 중복이 없을 때 입력할 수 있어요.", + "보너스 번호를 입력해 주세요.", + "당첨 통계", + "---", + "3개 일치 (5,000원) - 0개", + "4개 일치 (50,000원) - 1개", + "5개 일치 (1,500,000원) - 0개", + "5개 일치, 보너스 볼 일치 (30,000,000원) - 0개", + "6개 일치 (2,000,000,000원) - 0개", + "총 수익률은 2500.0%입니다." + ); + + // 표준 출력을 캡처하여 테스트에서 비교 + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + System.setOut(new PrintStream(outContent)); + + // 테스트 실행 + lottoController.runGame(); + + // 표준 출력을 문자열로 변환하여 테스트에서 비교 + String actualOutput = outContent.toString().trim(); + List actualOutputList = Arrays.asList(actualOutput.split("\n")); + + // 출력 비교 + // Then + Assertions.assertThat(actualOutputList) + .isEqualTo(expectedOutput); + } + + // 사용자의 입력을 다시 받도록 하는 것이 아니라 시스템이 자동으로 다시 숫자를 생성하는지 테스트 + @DisplayName("로또 생성 시 중복인 값을 받았을 때 가정 시스템 통합 테스트") + @Test + public void givenDuplicateNumbersForLotto_thenRetryCreateNumbers(){ + // Given + String inputString = "2004\n" + // 1000으로 나눠떨어지지 않는 구매 금액 + "2000\n"+ // 1000으로 나눠떨어지는 구매 금액 + "2 10 18 24 5 6\n" + // 당첨 번호 + "2\n"+ // 당첨 번호와 중복된 보너스 + "20\n"; // 보너스 + + ByteArrayInputStream in = new ByteArrayInputStream(inputString.getBytes()); + System.setIn(in); + + Random randomNumberMock = Mockito.mock(Random.class); + when(randomNumberMock.nextInt(45)) + .thenReturn(1,33,32,31,30,34) + .thenReturn(1,31,9,17,23,23,23,44); // 23이 중복으로 생성돼도 무시하고 다음 값을 받는다. + + // When + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + OutputManager outputManager = new SystemOutputManager(); + LottoController lottoController = new LottoController(inputManager, outputManager, randomNumberMock); + + // 출력을 기대하는 값 + List expectedOutput = Arrays.asList( + "구입금액을 입력해 주세요.", + "[ERROR] 구입 금액은 1000으로 나눠 떨어질 때 입력할 수 있어요.", + "구입금액을 입력해 주세요.", + "2개를 구매했습니다.", + "[2, 31, 32, 33, 34, 35]", // 중복된 것은 제외하고 Lotto 생성 + "[2, 10, 18, 24, 32, 45]", + "당첨 번호를 입력해 주세요.", + "보너스 번호를 입력해 주세요.", + "[ERROR] 보너스 번호는 당첨 보호와 중복이 없을 때 입력할 수 있어요.", + "보너스 번호를 입력해 주세요.", + "당첨 통계", + "---", + "3개 일치 (5,000원) - 0개", + "4개 일치 (50,000원) - 1개", + "5개 일치 (1,500,000원) - 0개", + "5개 일치, 보너스 볼 일치 (30,000,000원) - 0개", + "6개 일치 (2,000,000,000원) - 0개", + "총 수익률은 2500.0%입니다." + ); + + // 표준 출력을 캡처하여 테스트에서 비교 + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + System.setOut(new PrintStream(outContent)); + + // 테스트 실행 + lottoController.runGame(); + + // 표준 출력을 문자열로 변환하여 테스트에서 비교 + String actualOutput = outContent.toString().trim(); + List actualOutputList = Arrays.asList(actualOutput.split("\n")); + + // 출력 비교 + // Then + Assertions.assertThat(actualOutputList) + .isEqualTo(expectedOutput); + } +} diff --git a/src/test/java/lotto/ApplicationTest.java b/src/test/java/lotto/ApplicationTest.java old mode 100644 new mode 100755 diff --git a/src/test/java/lotto/LottoTest.java b/src/test/java/lotto/LottoTest.java old mode 100644 new mode 100755 index c1084b1..8c1c47a --- a/src/test/java/lotto/LottoTest.java +++ b/src/test/java/lotto/LottoTest.java @@ -1,16 +1,35 @@ package lotto; import java.util.List; + +import lotto.model.Lotto; +import lotto.model.dto.Money; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; class LottoTest { + + @DisplayName("구매 금액이 1000으로 나눠 떨어지지 않으면 예외를 발생한다.") + @Test + void getMoneyBy1000Remainder() { + Assertions.assertThatThrownBy(() -> Lotto.validateMoney(new Money(1024))) + .isInstanceOf(IllegalArgumentException.class); + } + + @DisplayName("로또 번호가 정렬되어 저장된다.") + @Test + void createLottoBySorted() { + Assertions.assertThat(new Lotto(List.of(45,3,4,5,1,2)).numbers()) + .isEqualTo(List.of(1,2,3,4,5,45)); + } + @DisplayName("로또 번호의 개수가 6개가 넘어가면 예외가 발생한다.") @Test void createLottoByOverSize() { Assertions.assertThatThrownBy(() -> new Lotto(List.of(1, 2, 3, 4, 5, 6, 7))) - .isInstanceOf(IllegalArgumentException.class); + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("[ERROR] 로또 번호는 6개 숫자를 입력할 수 있어요."); } @DisplayName("로또 번호에 중복된 숫자가 있으면 예외가 발생한다.") @@ -22,4 +41,13 @@ void createLottoByDuplicatedNumber() { } // 아래에 추가 테스트 작성 가능 + @DisplayName("로또 번호가 유효 범위 밖에 있으면 예외가 발생한다.") + @Test + void createLottoByOverScope() { + // TODO: 이 테스트가 통과할 수 있게 구현 코드 작성 + Assertions.assertThatThrownBy(() -> new Lotto(List.of(0, 2, 3, 4, 5, 45))) + .isInstanceOf(IllegalArgumentException.class); + Assertions.assertThatThrownBy(() -> new Lotto(List.of(46, 2, 3, 4, 5, 45))) + .isInstanceOf(IllegalArgumentException.class); + } } \ No newline at end of file diff --git a/src/test/java/lotto/MoneyTest.java b/src/test/java/lotto/MoneyTest.java new file mode 100644 index 0000000..87494e8 --- /dev/null +++ b/src/test/java/lotto/MoneyTest.java @@ -0,0 +1,14 @@ +package lotto; + +import lotto.model.dto.Money; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; + +public class MoneyTest { + + @Test + void getMoneyByNegativeAmount() { + Assertions.assertThatThrownBy(() -> new Money(-1)) + .isInstanceOf(IllegalArgumentException.class); + } +} diff --git a/src/test/java/lotto/PrizeNumbersTest.java b/src/test/java/lotto/PrizeNumbersTest.java new file mode 100755 index 0000000..fae613b --- /dev/null +++ b/src/test/java/lotto/PrizeNumbersTest.java @@ -0,0 +1,45 @@ +package lotto; + +import lotto.model.Lotto; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.List; + +public class PrizeNumbersTest { + + @DisplayName("당첨 번호의 개수가 6개가 아니면 예외가 발생한다.") + @Test + void createLottoCompanyByOverSize() { + Assertions.assertThatThrownBy(() -> + Lotto.validateLottoNumbers(List.of(45,17,42,36,1,2,9))) + .isInstanceOf(IllegalArgumentException.class); + Assertions.assertThatThrownBy(() -> + Lotto.validateLottoNumbers(List.of(45,17,42,36,1))) + .isInstanceOf(IllegalArgumentException.class); + } + @DisplayName("당첨 번호가 유효 범위 밖에 있으면 예외가 발생한다") + @Test + void createLottoCompanyByWinningOverScope() { + Assertions.assertThatThrownBy(() -> + Lotto.validateLottoNumbers(List.of(45,17,42,36,1,46))) + .isInstanceOf(IllegalArgumentException.class); + } + + @DisplayName("보너스 번호가 유효 범위 밖에 있으면 예외가 발생한다") + @Test + void createLottoCompanyByBonusOverScope() { + Assertions.assertThatThrownBy(() -> + Lotto.validateBonusNumber(List.of(45,17,42,36,1,6), 0)) + .isInstanceOf(IllegalArgumentException.class); + } + + @DisplayName("당첨 번호와 보너스 번호가 중복되면 예외가 발생한다") + @Test + void createLottoCompanyByOverScope() { + Assertions.assertThatThrownBy(() -> + Lotto.validateBonusNumber(List.of(45,17,42,36,1,46), 46)) + .isInstanceOf(IllegalArgumentException.class); + } +} diff --git a/src/test/java/service/LottoGeneratorTest.java b/src/test/java/service/LottoGeneratorTest.java new file mode 100755 index 0000000..4adaf98 --- /dev/null +++ b/src/test/java/service/LottoGeneratorTest.java @@ -0,0 +1,76 @@ +package service; + +import lotto.model.Lotto; +import lotto.model.service.LottoGenerator; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +import java.util.List; +import java.util.Random; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.when; + +public class LottoGeneratorTest { + + private static Random random; + + @BeforeAll + @Test + static void setRandom(){ + random = new Random(); + } + + @DisplayName("랜덤한 로또 생성을 더미로 만들 수 있는지 테스트. 통합 테스트를 위함") + @Test + public void dumyRandomLottos(){ + // 한 스레드에서 static 모킹은 한번밖에 못하므로 close하지 않으면 여러 테스트 도중 이미 존재하는 mock이라는 에러가 발생한다. + // try-resources 구문을 사용하면 자동으로 메모리 해제한다. + Random randomNumberMock = Mockito .mock(Random.class); + when(randomNumberMock.nextInt(45)) + .thenReturn(1,33,32,31,30,34); + + LottoGenerator lottoGenerator = new LottoGenerator(randomNumberMock); + // When + List lottos = lottoGenerator.createLottos(1); + // Then + Assertions.assertThat(lottos) + .isEqualTo(List.of(new Lotto(List.of(35,34,33,32,31,2)))); + } + + @DisplayName("로또가 정해진 개수만큼 생성되는지 테스트.") + @Test + public void testCreateLottos(){ + LottoGenerator lottoGenerator = new LottoGenerator(random); + List lottos = lottoGenerator.createLottos(10); + assertEquals(10, lottos.size()); + } + + @DisplayName("로또 요소가 1에서 45 사이인지 테스트.") + @Test + public void testLottosScoope() { + // Given + LottoGenerator lottoGenerator = new LottoGenerator(random); + int lottoQuantity = 10; + + // When + List lottos = lottoGenerator.createLottos(lottoQuantity); + + // Then + for (Lotto lotto : lottos) { + assertThat(lotto.numbers()) + .allSatisfy( n -> { + assertThat(n).isGreaterThan(0); + assertThat(n).isLessThan(46); + }); + } + } +} diff --git a/src/test/java/service/LottoResultCalculatorTest.java b/src/test/java/service/LottoResultCalculatorTest.java new file mode 100755 index 0000000..943a155 --- /dev/null +++ b/src/test/java/service/LottoResultCalculatorTest.java @@ -0,0 +1,64 @@ +package service; + +import lotto.model.Lotto; +import lotto.model.dto.Money; +import lotto.model.dto.PrizeNumbers; +import lotto.model.service.LottoResultCalculator; +import lotto.model.enums.Winnings; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LottoResultCalculatorTest { + + @DisplayName("당첨 결과의 정상적인 제공 테스트") + @Test + public void testProvideWinningDetails() { + // Given + LottoResultCalculator lottoResultCalculator = new LottoResultCalculator(); + List customerLottos = List.of( + new Lotto(List.of(1,2,3,4,5,6)), // 1등 + new Lotto(List.of(1,2,3,4,5,45)), // 2등 + new Lotto(List.of(1,2,3,4,5,36)), // 3등 + new Lotto(List.of(1,2,3,4,25,16)), // 4등 + new Lotto(List.of(1,2,3,14,25,16)), // 5등 + new Lotto(List.of(1,2,7,14,25,16)) // Fail + ); + PrizeNumbers prizeNumbers = new PrizeNumbers( + List.of(1,2,3,4,5,6), + 45 + ); + + // When + Map mp = lottoResultCalculator.provideWinningDetails(customerLottos, prizeNumbers); + + // Then + mp.forEach((key, value) -> assertThat(value).isEqualTo(1)); + } + + @DisplayName("당첨 결과에 따라 수익금 계산 테스트") + @Test + public void testCalculateReturn(){ + // Given + LottoResultCalculator lottoResultCalculator = new LottoResultCalculator(); + HashMap lottoResult = new LinkedHashMap<>(); + lottoResult.put(Winnings.First,1); + lottoResult.put(Winnings.Second,1); + lottoResult.put(Winnings.Third,2); + lottoResult.put(Winnings.Fourth,3); + lottoResult.put(Winnings.Fifth,3); + + Money money = new Money(10000); + //When + String result = lottoResultCalculator.calculateReturn(lottoResult, money); + System.out.println(result); + //Then + assertThat(result).isEqualTo("20331650.0"); + } +} diff --git a/src/test/java/view/InputTest.java b/src/test/java/view/InputTest.java new file mode 100644 index 0000000..0cdffcf --- /dev/null +++ b/src/test/java/view/InputTest.java @@ -0,0 +1,62 @@ +package view; + +import lotto.view.InputManager; +import lotto.view.UserInputManager; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import java.io.ByteArrayInputStream; +import java.util.InputMismatchException; +import java.util.Scanner; + +import org.assertj.core.api.Assertions; + +public class InputTest { + + @DisplayName("정수 입력") + @Test + void givenIntegerInput_whenInputManager_thenPass() { + + // Given + ByteArrayInputStream in = new ByteArrayInputStream("10000".getBytes()); + System.setIn(in); + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + + // When + int purchaseAmount = inputManager.enterPurchaseAmount(); + + // Then + Assertions.assertThat(purchaseAmount).isEqualTo(10000); + } + + @DisplayName("실수 입력") + @Test + void givenFloatInput_whenInputManager_thenError() { + + // Given + ByteArrayInputStream in = new ByteArrayInputStream("10000.1".getBytes()); + System.setIn(in); + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + + // When + // Then + Assertions.assertThatThrownBy(inputManager::enterPurchaseAmount) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("[ERROR] 당첨금은 정수일 때 입력할 수 있어요."); + } + + @DisplayName("숫자가 아닌 값 입력") + @Test + void givenStringInput_whenInputManager_thenError() { + + // Given + ByteArrayInputStream in = new ByteArrayInputStream("1000a".getBytes()); + System.setIn(in); + InputManager inputManager = new UserInputManager(new Scanner(System.in)); + + // When + // Then + Assertions.assertThatThrownBy(inputManager::enterPurchaseAmount) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("[ERROR] 당첨금은 정수일 때 입력할 수 있어요."); + } +}