Bläddra i källkod

add:添加行为记录可视化热度图

wuzilong 1 år sedan
förälder
incheckning
272904c198

+ 3674 - 0
src/assets/behavior_records.json

@@ -0,0 +1,3674 @@
+[
+    {
+        "type": "cursor_move",
+        "retain": 0,
+        "insert": " ",
+        "startStamp": 0.0,
+        "endStamp": 0.0,
+        "pauseTime": 0.0
+    },
+    {
+        "type": "insert",
+        "retain": 0,
+        "insert": "I",
+        "startStamp": 120743.0,
+        "endStamp": 120893.0,
+        "pauseTime": 120743.0
+    },
+    {
+        "type": "insert",
+        "retain": 1,
+        "insert": "n",
+        "startStamp": 121085.0,
+        "endStamp": 121168.0,
+        "pauseTime": 342.0
+    },
+    {
+        "type": "insert",
+        "retain": 2,
+        "insert": " ",
+        "startStamp": 121501.0,
+        "endStamp": 121605.0,
+        "pauseTime": 416.0
+    },
+    {
+        "type": "insert",
+        "retain": 3,
+        "insert": "m",
+        "startStamp": 121636.0,
+        "endStamp": 121731.0,
+        "pauseTime": 135.0
+    },
+    {
+        "type": "insert",
+        "retain": 4,
+        "insert": "y",
+        "startStamp": 121856.0,
+        "endStamp": 121913.0,
+        "pauseTime": 220.0
+    },
+    {
+        "type": "insert",
+        "retain": 5,
+        "insert": " ",
+        "startStamp": 122095.0,
+        "endStamp": 122179.0,
+        "pauseTime": 239.0
+    },
+    {
+        "type": "insert",
+        "retain": 6,
+        "insert": "o",
+        "startStamp": 123897.0,
+        "endStamp": 123973.0,
+        "pauseTime": 1802.0
+    },
+    {
+        "type": "insert",
+        "retain": 7,
+        "insert": "p",
+        "startStamp": 124071.0,
+        "endStamp": 124135.0,
+        "pauseTime": 174.0
+    },
+    {
+        "type": "insert",
+        "retain": 8,
+        "insert": "i",
+        "startStamp": 124512.0,
+        "endStamp": 124603.0,
+        "pauseTime": 441.0
+    },
+    {
+        "type": "insert",
+        "retain": 9,
+        "insert": "n",
+        "startStamp": 124738.0,
+        "endStamp": 124872.0,
+        "pauseTime": 226.0
+    },
+    {
+        "type": "insert",
+        "retain": 10,
+        "insert": "o",
+        "startStamp": 125629.0,
+        "endStamp": 125702.0,
+        "pauseTime": 891.0
+    },
+    {
+        "type": "insert",
+        "retain": 11,
+        "insert": "i",
+        "startStamp": 125911.0,
+        "endStamp": 125999.0,
+        "pauseTime": 282.0
+    },
+    {
+        "type": "insert",
+        "retain": 12,
+        "insert": "n",
+        "startStamp": 126087.0,
+        "endStamp": 126181.0,
+        "pauseTime": 176.0
+    },
+    {
+        "type": "insert",
+        "retain": 13,
+        "insert": ",",
+        "startStamp": 127403.0,
+        "endStamp": 127475.0,
+        "pauseTime": 1316.0
+    },
+    {
+        "type": "insert",
+        "retain": 14,
+        "insert": " ",
+        "startStamp": 127551.0,
+        "endStamp": 127620.0,
+        "pauseTime": 148.0
+    },
+    {
+        "type": "insert",
+        "retain": 15,
+        "insert": "s",
+        "startStamp": 127841.0,
+        "endStamp": 127930.0,
+        "pauseTime": 290.0
+    },
+    {
+        "type": "insert",
+        "retain": 16,
+        "insert": "t",
+        "startStamp": 128055.0,
+        "endStamp": 128122.0,
+        "pauseTime": 214.0
+    },
+    {
+        "type": "insert",
+        "retain": 17,
+        "insert": "u",
+        "startStamp": 128216.0,
+        "endStamp": 128272.0,
+        "pauseTime": 161.0
+    },
+    {
+        "type": "insert",
+        "retain": 18,
+        "insert": "d",
+        "startStamp": 128463.0,
+        "endStamp": 128542.0,
+        "pauseTime": 247.0
+    },
+    {
+        "type": "insert",
+        "retain": 19,
+        "insert": "e",
+        "startStamp": 128593.0,
+        "endStamp": 128684.0,
+        "pauseTime": 130.0
+    },
+    {
+        "type": "insert",
+        "retain": 20,
+        "insert": "n",
+        "startStamp": 128747.0,
+        "endStamp": 128814.0,
+        "pauseTime": 154.0
+    },
+    {
+        "type": "insert",
+        "retain": 21,
+        "insert": "t",
+        "startStamp": 128830.0,
+        "endStamp": 128951.0,
+        "pauseTime": 83.0
+    },
+    {
+        "type": "insert",
+        "retain": 22,
+        "insert": "s",
+        "startStamp": 129040.0,
+        "endStamp": 129155.0,
+        "pauseTime": 210.0
+    },
+    {
+        "type": "insert",
+        "retain": 23,
+        "insert": " ",
+        "startStamp": 129599.0,
+        "endStamp": 129689.0,
+        "pauseTime": 559.0
+    },
+    {
+        "type": "insert",
+        "retain": 24,
+        "insert": "s",
+        "startStamp": 129887.0,
+        "endStamp": 129976.0,
+        "pauseTime": 288.0
+    },
+    {
+        "type": "insert",
+        "retain": 25,
+        "insert": "h",
+        "startStamp": 129998.0,
+        "endStamp": 130086.0,
+        "pauseTime": 111.0
+    },
+    {
+        "type": "insert",
+        "retain": 26,
+        "insert": "u",
+        "startStamp": 130330.0,
+        "endStamp": 130397.0,
+        "pauseTime": 332.0
+    },
+    {
+        "type": "delete",
+        "retain": 26,
+        "insert": " ",
+        "startStamp": 130770.0,
+        "endStamp": 130816.0,
+        "pauseTime": 440.0
+    },
+    {
+        "type": "insert",
+        "retain": 26,
+        "insert": "o",
+        "startStamp": 130987.0,
+        "endStamp": 131053.0,
+        "pauseTime": 217.0
+    },
+    {
+        "type": "insert",
+        "retain": 27,
+        "insert": "u",
+        "startStamp": 131165.0,
+        "endStamp": 131223.0,
+        "pauseTime": 178.0
+    },
+    {
+        "type": "insert",
+        "retain": 28,
+        "insert": "l",
+        "startStamp": 131337.0,
+        "endStamp": 131413.0,
+        "pauseTime": 172.0
+    },
+    {
+        "type": "insert",
+        "retain": 29,
+        "insert": "d",
+        "startStamp": 131525.0,
+        "endStamp": 131583.0,
+        "pauseTime": 188.0
+    },
+    {
+        "type": "insert",
+        "retain": 30,
+        "insert": " ",
+        "startStamp": 132057.0,
+        "endStamp": 132138.0,
+        "pauseTime": 532.0
+    },
+    {
+        "type": "insert",
+        "retain": 31,
+        "insert": "n",
+        "startStamp": 132294.0,
+        "endStamp": 132390.0,
+        "pauseTime": 237.0
+    },
+    {
+        "type": "insert",
+        "retain": 32,
+        "insert": "o",
+        "startStamp": 132446.0,
+        "endStamp": 132502.0,
+        "pauseTime": 152.0
+    },
+    {
+        "type": "insert",
+        "retain": 33,
+        "insert": "t",
+        "startStamp": 132567.0,
+        "endStamp": 132660.0,
+        "pauseTime": 121.0
+    },
+    {
+        "type": "insert",
+        "retain": 34,
+        "insert": " ",
+        "startStamp": 132720.0,
+        "endStamp": 132793.0,
+        "pauseTime": 153.0
+    },
+    {
+        "type": "insert",
+        "retain": 35,
+        "insert": "u",
+        "startStamp": 132889.0,
+        "endStamp": 132942.0,
+        "pauseTime": 169.0
+    },
+    {
+        "type": "insert",
+        "retain": 36,
+        "insert": "s",
+        "startStamp": 132959.0,
+        "endStamp": 133042.0,
+        "pauseTime": 70.0
+    },
+    {
+        "type": "insert",
+        "retain": 37,
+        "insert": "e",
+        "startStamp": 133062.0,
+        "endStamp": 133143.0,
+        "pauseTime": 103.0
+    },
+    {
+        "type": "insert",
+        "retain": 38,
+        "insert": " ",
+        "startStamp": 133763.0,
+        "endStamp": 133846.0,
+        "pauseTime": 701.0
+    },
+    {
+        "type": "insert",
+        "retain": 39,
+        "insert": "s",
+        "startStamp": 134464.0,
+        "endStamp": 134560.0,
+        "pauseTime": 701.0
+    },
+    {
+        "type": "insert",
+        "retain": 40,
+        "insert": "m",
+        "startStamp": 134728.0,
+        "endStamp": 134825.0,
+        "pauseTime": 264.0
+    },
+    {
+        "type": "insert",
+        "retain": 41,
+        "insert": "a",
+        "startStamp": 134847.0,
+        "endStamp": 134911.0,
+        "pauseTime": 119.0
+    },
+    {
+        "type": "insert",
+        "retain": 42,
+        "insert": "r",
+        "startStamp": 135067.0,
+        "endStamp": 135160.0,
+        "pauseTime": 220.0
+    },
+    {
+        "type": "insert",
+        "retain": 43,
+        "insert": "t",
+        "startStamp": 135286.0,
+        "endStamp": 135351.0,
+        "pauseTime": 219.0
+    },
+    {
+        "type": "insert",
+        "retain": 44,
+        "insert": "p",
+        "startStamp": 136002.0,
+        "endStamp": 136088.0,
+        "pauseTime": 716.0
+    },
+    {
+        "type": "insert",
+        "retain": 45,
+        "insert": "h",
+        "startStamp": 136294.0,
+        "endStamp": 136369.0,
+        "pauseTime": 292.0
+    },
+    {
+        "type": "insert",
+        "retain": 46,
+        "insert": "o",
+        "startStamp": 136479.0,
+        "endStamp": 136543.0,
+        "pauseTime": 185.0
+    },
+    {
+        "type": "insert",
+        "retain": 47,
+        "insert": "n",
+        "startStamp": 136615.0,
+        "endStamp": 136693.0,
+        "pauseTime": 136.0
+    },
+    {
+        "type": "insert",
+        "retain": 48,
+        "insert": "e",
+        "startStamp": 136717.0,
+        "endStamp": 136774.0,
+        "pauseTime": 102.0
+    },
+    {
+        "type": "insert",
+        "retain": 49,
+        "insert": " ",
+        "startStamp": 137603.0,
+        "endStamp": 137690.0,
+        "pauseTime": 886.0
+    },
+    {
+        "type": "insert",
+        "retain": 50,
+        "insert": "i",
+        "startStamp": 138448.0,
+        "endStamp": 138519.0,
+        "pauseTime": 845.0
+    },
+    {
+        "type": "insert",
+        "retain": 51,
+        "insert": "n",
+        "startStamp": 138590.0,
+        "endStamp": 138665.0,
+        "pauseTime": 142.0
+    },
+    {
+        "type": "insert",
+        "retain": 52,
+        "insert": " ",
+        "startStamp": 138727.0,
+        "endStamp": 138831.0,
+        "pauseTime": 137.0
+    },
+    {
+        "type": "insert",
+        "retain": 53,
+        "insert": "c",
+        "startStamp": 138903.0,
+        "endStamp": 139010.0,
+        "pauseTime": 176.0
+    },
+    {
+        "type": "insert",
+        "retain": 54,
+        "insert": "l",
+        "startStamp": 139030.0,
+        "endStamp": 139087.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 55,
+        "insert": "a",
+        "startStamp": 139094.0,
+        "endStamp": 139152.0,
+        "pauseTime": 64.0
+    },
+    {
+        "type": "insert",
+        "retain": 56,
+        "insert": "s",
+        "startStamp": 139316.0,
+        "endStamp": 139375.0,
+        "pauseTime": 222.0
+    },
+    {
+        "type": "insert",
+        "retain": 57,
+        "insert": "s",
+        "startStamp": 139455.0,
+        "endStamp": 139526.0,
+        "pauseTime": 139.0
+    },
+    {
+        "type": "insert",
+        "retain": 58,
+        "insert": ".",
+        "startStamp": 139650.0,
+        "endStamp": 139727.0,
+        "pauseTime": 195.0
+    },
+    {
+        "type": "insert",
+        "retain": 59,
+        "insert": "W",
+        "startStamp": 0.0,
+        "endStamp": 0.0,
+        "pauseTime": 0.0
+    },
+    {
+        "type": "insert",
+        "retain": 60,
+        "insert": "h",
+        "startStamp": 140612.0,
+        "endStamp": 140679.0,
+        "pauseTime": 962.0
+    },
+    {
+        "type": "insert",
+        "retain": 61,
+        "insert": "i",
+        "startStamp": 140703.0,
+        "endStamp": 140774.0,
+        "pauseTime": 91.0
+    },
+    {
+        "type": "insert",
+        "retain": 62,
+        "insert": "l",
+        "startStamp": 140864.0,
+        "endStamp": 140931.0,
+        "pauseTime": 161.0
+    },
+    {
+        "type": "insert",
+        "retain": 63,
+        "insert": "e",
+        "startStamp": 140963.0,
+        "endStamp": 141026.0,
+        "pauseTime": 99.0
+    },
+    {
+        "type": "insert",
+        "retain": 64,
+        "insert": " ",
+        "startStamp": 141894.0,
+        "endStamp": 142014.0,
+        "pauseTime": 931.0
+    },
+    {
+        "type": "insert",
+        "retain": 65,
+        "insert": "p",
+        "startStamp": 142567.0,
+        "endStamp": 142623.0,
+        "pauseTime": 673.0
+    },
+    {
+        "type": "insert",
+        "retain": 66,
+        "insert": "h",
+        "startStamp": 142954.0,
+        "endStamp": 143027.0,
+        "pauseTime": 387.0
+    },
+    {
+        "type": "insert",
+        "retain": 67,
+        "insert": "o",
+        "startStamp": 143127.0,
+        "endStamp": 143198.0,
+        "pauseTime": 173.0
+    },
+    {
+        "type": "insert",
+        "retain": 68,
+        "insert": "n",
+        "startStamp": 143312.0,
+        "endStamp": 143387.0,
+        "pauseTime": 185.0
+    },
+    {
+        "type": "insert",
+        "retain": 69,
+        "insert": "e",
+        "startStamp": 143420.0,
+        "endStamp": 143479.0,
+        "pauseTime": 108.0
+    },
+    {
+        "type": "insert",
+        "retain": 70,
+        "insert": "s",
+        "startStamp": 143586.0,
+        "endStamp": 143647.0,
+        "pauseTime": 166.0
+    },
+    {
+        "type": "insert",
+        "retain": 71,
+        "insert": " ",
+        "startStamp": 144364.0,
+        "endStamp": 144477.0,
+        "pauseTime": 778.0
+    },
+    {
+        "type": "insert",
+        "retain": 72,
+        "insert": "c",
+        "startStamp": 144601.0,
+        "endStamp": 144679.0,
+        "pauseTime": 237.0
+    },
+    {
+        "type": "insert",
+        "retain": 73,
+        "insert": "a",
+        "startStamp": 144667.0,
+        "endStamp": 144767.0,
+        "pauseTime": 66.0
+    },
+    {
+        "type": "insert",
+        "retain": 74,
+        "insert": "n",
+        "startStamp": 144784.0,
+        "endStamp": 144850.0,
+        "pauseTime": 117.0
+    },
+    {
+        "type": "insert",
+        "retain": 75,
+        "insert": " ",
+        "startStamp": 144886.0,
+        "endStamp": 144953.0,
+        "pauseTime": 102.0
+    },
+    {
+        "type": "insert",
+        "retain": 76,
+        "insert": "b",
+        "startStamp": 145014.0,
+        "endStamp": 145087.0,
+        "pauseTime": 128.0
+    },
+    {
+        "type": "insert",
+        "retain": 77,
+        "insert": "e",
+        "startStamp": 145130.0,
+        "endStamp": 145209.0,
+        "pauseTime": 116.0
+    },
+    {
+        "type": "insert",
+        "retain": 78,
+        "insert": " ",
+        "startStamp": 145274.0,
+        "endStamp": 145372.0,
+        "pauseTime": 144.0
+    },
+    {
+        "type": "insert",
+        "retain": 79,
+        "insert": "u",
+        "startStamp": 145509.0,
+        "endStamp": 145558.0,
+        "pauseTime": 235.0
+    },
+    {
+        "type": "insert",
+        "retain": 80,
+        "insert": "s",
+        "startStamp": 145615.0,
+        "endStamp": 145703.0,
+        "pauseTime": 106.0
+    },
+    {
+        "type": "insert",
+        "retain": 81,
+        "insert": "e",
+        "startStamp": 145671.0,
+        "endStamp": 145774.0,
+        "pauseTime": 56.0
+    },
+    {
+        "type": "insert",
+        "retain": 82,
+        "insert": "f",
+        "startStamp": 146018.0,
+        "endStamp": 146086.0,
+        "pauseTime": 347.0
+    },
+    {
+        "type": "insert",
+        "retain": 83,
+        "insert": "i",
+        "startStamp": 146297.0,
+        "endStamp": 146367.0,
+        "pauseTime": 279.0
+    },
+    {
+        "type": "insert",
+        "retain": 84,
+        "insert": "l",
+        "startStamp": 146491.0,
+        "endStamp": 146544.0,
+        "pauseTime": 194.0
+    },
+    {
+        "type": "delete",
+        "retain": 84,
+        "insert": " ",
+        "startStamp": 146861.0,
+        "endStamp": 146911.0,
+        "pauseTime": 370.0
+    },
+    {
+        "type": "delete",
+        "retain": 83,
+        "insert": " ",
+        "startStamp": 146976.0,
+        "endStamp": 147051.0,
+        "pauseTime": 115.0
+    },
+    {
+        "type": "insert",
+        "retain": 83,
+        "insert": "u",
+        "startStamp": 147263.0,
+        "endStamp": 147326.0,
+        "pauseTime": 287.0
+    },
+    {
+        "type": "insert",
+        "retain": 84,
+        "insert": "l",
+        "startStamp": 147374.0,
+        "endStamp": 147430.0,
+        "pauseTime": 111.0
+    },
+    {
+        "type": "insert",
+        "retain": 85,
+        "insert": " ",
+        "startStamp": 148527.0,
+        "endStamp": 148632.0,
+        "pauseTime": 1153.0
+    },
+    {
+        "type": "insert",
+        "retain": 86,
+        "insert": " ",
+        "startStamp": 148978.0,
+        "endStamp": 149032.0,
+        "pauseTime": 451.0
+    },
+    {
+        "type": "delete",
+        "retain": 86,
+        "insert": " ",
+        "startStamp": 149407.0,
+        "endStamp": 149487.0,
+        "pauseTime": 429.0
+    },
+    {
+        "type": "insert",
+        "retain": 86,
+        "insert": "f",
+        "startStamp": 149571.0,
+        "endStamp": 149637.0,
+        "pauseTime": 164.0
+    },
+    {
+        "type": "insert",
+        "retain": 87,
+        "insert": "o",
+        "startStamp": 149902.0,
+        "endStamp": 149976.0,
+        "pauseTime": 331.0
+    },
+    {
+        "type": "insert",
+        "retain": 88,
+        "insert": "r",
+        "startStamp": 149998.0,
+        "endStamp": 150072.0,
+        "pauseTime": 96.0
+    },
+    {
+        "type": "insert",
+        "retain": 89,
+        "insert": " ",
+        "startStamp": 150626.0,
+        "endStamp": 150718.0,
+        "pauseTime": 628.0
+    },
+    {
+        "type": "insert",
+        "retain": 90,
+        "insert": "r",
+        "startStamp": 150911.0,
+        "endStamp": 151020.0,
+        "pauseTime": 285.0
+    },
+    {
+        "type": "insert",
+        "retain": 91,
+        "insert": "e",
+        "startStamp": 151003.0,
+        "endStamp": 151070.0,
+        "pauseTime": 92.0
+    },
+    {
+        "type": "insert",
+        "retain": 92,
+        "insert": "s",
+        "startStamp": 151508.0,
+        "endStamp": 151592.0,
+        "pauseTime": 505.0
+    },
+    {
+        "type": "insert",
+        "retain": 93,
+        "insert": "e",
+        "startStamp": 152080.0,
+        "endStamp": 152162.0,
+        "pauseTime": 572.0
+    },
+    {
+        "type": "insert",
+        "retain": 94,
+        "insert": "a",
+        "startStamp": 152250.0,
+        "endStamp": 152344.0,
+        "pauseTime": 170.0
+    },
+    {
+        "type": "insert",
+        "retain": 95,
+        "insert": "c",
+        "startStamp": 152583.0,
+        "endStamp": 152646.0,
+        "pauseTime": 333.0
+    },
+    {
+        "type": "delete",
+        "retain": 95,
+        "insert": " ",
+        "startStamp": 152884.0,
+        "endStamp": 152947.0,
+        "pauseTime": 301.0
+    },
+    {
+        "type": "insert",
+        "retain": 95,
+        "insert": "r",
+        "startStamp": 152971.0,
+        "endStamp": 153045.0,
+        "pauseTime": 87.0
+    },
+    {
+        "type": "insert",
+        "retain": 96,
+        "insert": "c",
+        "startStamp": 153244.0,
+        "endStamp": 153310.0,
+        "pauseTime": 273.0
+    },
+    {
+        "type": "insert",
+        "retain": 97,
+        "insert": "h",
+        "startStamp": 153340.0,
+        "endStamp": 153408.0,
+        "pauseTime": 96.0
+    },
+    {
+        "type": "insert",
+        "retain": 98,
+        "insert": ",",
+        "startStamp": 155281.0,
+        "endStamp": 155334.0,
+        "pauseTime": 1941.0
+    },
+    {
+        "type": "insert",
+        "retain": 99,
+        "insert": " ",
+        "startStamp": 155365.0,
+        "endStamp": 155422.0,
+        "pauseTime": 84.0
+    },
+    {
+        "type": "insert",
+        "retain": 100,
+        "insert": "t",
+        "startStamp": 155607.0,
+        "endStamp": 155662.0,
+        "pauseTime": 242.0
+    },
+    {
+        "type": "insert",
+        "retain": 101,
+        "insert": "h",
+        "startStamp": 155678.0,
+        "endStamp": 155742.0,
+        "pauseTime": 71.0
+    },
+    {
+        "type": "insert",
+        "retain": 102,
+        "insert": "e",
+        "startStamp": 157315.0,
+        "endStamp": 157391.0,
+        "pauseTime": 1637.0
+    },
+    {
+        "type": "insert",
+        "retain": 103,
+        "insert": "y",
+        "startStamp": 157492.0,
+        "endStamp": 157543.0,
+        "pauseTime": 177.0
+    },
+    {
+        "type": "insert",
+        "retain": 104,
+        "insert": " ",
+        "startStamp": 157706.0,
+        "endStamp": 157776.0,
+        "pauseTime": 214.0
+    },
+    {
+        "type": "insert",
+        "retain": 105,
+        "insert": "o",
+        "startStamp": 158364.0,
+        "endStamp": 158428.0,
+        "pauseTime": 658.0
+    },
+    {
+        "type": "insert",
+        "retain": 106,
+        "insert": "f",
+        "startStamp": 159055.0,
+        "endStamp": 159142.0,
+        "pauseTime": 691.0
+    },
+    {
+        "type": "insert",
+        "retain": 107,
+        "insert": "w",
+        "startStamp": 159191.0,
+        "endStamp": 159284.0,
+        "pauseTime": 136.0
+    },
+    {
+        "type": "insert",
+        "retain": 108,
+        "insert": "n",
+        "startStamp": 159357.0,
+        "endStamp": 159447.0,
+        "pauseTime": 166.0
+    },
+    {
+        "type": "delete",
+        "retain": 108,
+        "insert": " ",
+        "startStamp": 159720.0,
+        "endStamp": 159768.0,
+        "pauseTime": 363.0
+    },
+    {
+        "type": "delete",
+        "retain": 107,
+        "insert": " ",
+        "startStamp": 159841.0,
+        "endStamp": 159885.0,
+        "pauseTime": 121.0
+    },
+    {
+        "type": "delete",
+        "retain": 106,
+        "insert": " ",
+        "startStamp": 159960.0,
+        "endStamp": 160014.0,
+        "pauseTime": 119.0
+    },
+    {
+        "type": "insert",
+        "retain": 106,
+        "insert": "o",
+        "startStamp": 160938.0,
+        "endStamp": 161019.0,
+        "pauseTime": 978.0
+    },
+    {
+        "type": "insert",
+        "retain": 107,
+        "insert": "f",
+        "startStamp": 161147.0,
+        "endStamp": 161174.0,
+        "pauseTime": 209.0
+    },
+    {
+        "type": "delete",
+        "retain": 107,
+        "insert": " ",
+        "startStamp": 161367.0,
+        "endStamp": 161423.0,
+        "pauseTime": 220.0
+    },
+    {
+        "type": "delete",
+        "retain": 106,
+        "insert": " ",
+        "startStamp": 161497.0,
+        "endStamp": 161561.0,
+        "pauseTime": 130.0
+    },
+    {
+        "type": "insert",
+        "retain": 106,
+        "insert": "f",
+        "startStamp": 161606.0,
+        "endStamp": 161661.0,
+        "pauseTime": 109.0
+    },
+    {
+        "type": "insert",
+        "retain": 107,
+        "insert": "t",
+        "startStamp": 162336.0,
+        "endStamp": 162427.0,
+        "pauseTime": 730.0
+    },
+    {
+        "type": "insert",
+        "retain": 108,
+        "insert": "e",
+        "startStamp": 162430.0,
+        "endStamp": 162494.0,
+        "pauseTime": 94.0
+    },
+    {
+        "type": "insert",
+        "retain": 109,
+        "insert": "n",
+        "startStamp": 162486.0,
+        "endStamp": 162550.0,
+        "pauseTime": 56.0
+    },
+    {
+        "type": "insert",
+        "retain": 110,
+        "insert": " ",
+        "startStamp": 164671.0,
+        "endStamp": 164761.0,
+        "pauseTime": 2185.0
+    },
+    {
+        "type": "insert",
+        "retain": 111,
+        "insert": "d",
+        "startStamp": 165056.0,
+        "endStamp": 165136.0,
+        "pauseTime": 385.0
+    },
+    {
+        "type": "insert",
+        "retain": 112,
+        "insert": "i",
+        "startStamp": 165182.0,
+        "endStamp": 165260.0,
+        "pauseTime": 126.0
+    },
+    {
+        "type": "insert",
+        "retain": 113,
+        "insert": "s",
+        "startStamp": 165303.0,
+        "endStamp": 165384.0,
+        "pauseTime": 121.0
+    },
+    {
+        "type": "insert",
+        "retain": 114,
+        "insert": "t",
+        "startStamp": 167205.0,
+        "endStamp": 167293.0,
+        "pauseTime": 1902.0
+    },
+    {
+        "type": "insert",
+        "retain": 115,
+        "insert": "r",
+        "startStamp": 167380.0,
+        "endStamp": 167447.0,
+        "pauseTime": 175.0
+    },
+    {
+        "type": "insert",
+        "retain": 116,
+        "insert": "a",
+        "startStamp": 167472.0,
+        "endStamp": 167576.0,
+        "pauseTime": 92.0
+    },
+    {
+        "type": "insert",
+        "retain": 117,
+        "insert": "c",
+        "startStamp": 167695.0,
+        "endStamp": 167771.0,
+        "pauseTime": 223.0
+    },
+    {
+        "type": "insert",
+        "retain": 118,
+        "insert": "t",
+        "startStamp": 167929.0,
+        "endStamp": 168007.0,
+        "pauseTime": 234.0
+    },
+    {
+        "type": "insert",
+        "retain": 119,
+        "insert": " ",
+        "startStamp": 168804.0,
+        "endStamp": 168909.0,
+        "pauseTime": 875.0
+    },
+    {
+        "type": "insert",
+        "retain": 120,
+        "insert": "l",
+        "startStamp": 169106.0,
+        "endStamp": 169192.0,
+        "pauseTime": 302.0
+    },
+    {
+        "type": "insert",
+        "retain": 121,
+        "insert": "e",
+        "startStamp": 169235.0,
+        "endStamp": 169320.0,
+        "pauseTime": 129.0
+    },
+    {
+        "type": "insert",
+        "retain": 122,
+        "insert": "a",
+        "startStamp": 169447.0,
+        "endStamp": 169535.0,
+        "pauseTime": 212.0
+    },
+    {
+        "type": "insert",
+        "retain": 123,
+        "insert": "r",
+        "startStamp": 169691.0,
+        "endStamp": 169784.0,
+        "pauseTime": 244.0
+    },
+    {
+        "type": "insert",
+        "retain": 124,
+        "insert": "n",
+        "startStamp": 169885.0,
+        "endStamp": 169966.0,
+        "pauseTime": 194.0
+    },
+    {
+        "type": "insert",
+        "retain": 125,
+        "insert": "e",
+        "startStamp": 170124.0,
+        "endStamp": 170253.0,
+        "pauseTime": 239.0
+    },
+    {
+        "type": "insert",
+        "retain": 126,
+        "insert": "r",
+        "startStamp": 170233.0,
+        "endStamp": 170316.0,
+        "pauseTime": 109.0
+    },
+    {
+        "type": "insert",
+        "retain": 127,
+        "insert": "s",
+        "startStamp": 170377.0,
+        "endStamp": 170476.0,
+        "pauseTime": 144.0
+    },
+    {
+        "type": "insert",
+        "retain": 128,
+        "insert": " ",
+        "startStamp": 171039.0,
+        "endStamp": 171118.0,
+        "pauseTime": 662.0
+    },
+    {
+        "type": "insert",
+        "retain": 129,
+        "insert": "f",
+        "startStamp": 172059.0,
+        "endStamp": 172116.0,
+        "pauseTime": 1020.0
+    },
+    {
+        "type": "insert",
+        "retain": 130,
+        "insert": "r",
+        "startStamp": 172229.0,
+        "endStamp": 172270.0,
+        "pauseTime": 170.0
+    },
+    {
+        "type": "insert",
+        "retain": 131,
+        "insert": "o",
+        "startStamp": 172286.0,
+        "endStamp": 172363.0,
+        "pauseTime": 57.0
+    },
+    {
+        "type": "insert",
+        "retain": 132,
+        "insert": "m",
+        "startStamp": 172450.0,
+        "endStamp": 172480.0,
+        "pauseTime": 164.0
+    },
+    {
+        "type": "insert",
+        "retain": 133,
+        "insert": " ",
+        "startStamp": 172483.0,
+        "endStamp": 172553.0,
+        "pauseTime": 33.0
+    },
+    {
+        "type": "insert",
+        "retain": 134,
+        "insert": "l",
+        "startStamp": 173790.0,
+        "endStamp": 173854.0,
+        "pauseTime": 1307.0
+    },
+    {
+        "type": "insert",
+        "retain": 135,
+        "insert": "i",
+        "startStamp": 173940.0,
+        "endStamp": 173992.0,
+        "pauseTime": 150.0
+    },
+    {
+        "type": "insert",
+        "retain": 136,
+        "insert": "s",
+        "startStamp": 174030.0,
+        "endStamp": 174103.0,
+        "pauseTime": 90.0
+    },
+    {
+        "type": "insert",
+        "retain": 137,
+        "insert": "t",
+        "startStamp": 174804.0,
+        "endStamp": 174879.0,
+        "pauseTime": 774.0
+    },
+    {
+        "type": "insert",
+        "retain": 138,
+        "insert": "e",
+        "startStamp": 175013.0,
+        "endStamp": 175079.0,
+        "pauseTime": 209.0
+    },
+    {
+        "type": "insert",
+        "retain": 139,
+        "insert": "n",
+        "startStamp": 175209.0,
+        "endStamp": 175289.0,
+        "pauseTime": 196.0
+    },
+    {
+        "type": "insert",
+        "retain": 140,
+        "insert": "i",
+        "startStamp": 179087.0,
+        "endStamp": 179162.0,
+        "pauseTime": 3878.0
+    },
+    {
+        "type": "insert",
+        "retain": 141,
+        "insert": "n",
+        "startStamp": 179244.0,
+        "endStamp": 179326.0,
+        "pauseTime": 157.0
+    },
+    {
+        "type": "insert",
+        "retain": 142,
+        "insert": "g",
+        "startStamp": 179373.0,
+        "endStamp": 179457.0,
+        "pauseTime": 129.0
+    },
+    {
+        "type": "insert",
+        "retain": 143,
+        "insert": " ",
+        "startStamp": 179515.0,
+        "endStamp": 179567.0,
+        "pauseTime": 142.0
+    },
+    {
+        "type": "insert",
+        "retain": 144,
+        "insert": "t",
+        "startStamp": 179676.0,
+        "endStamp": 179768.0,
+        "pauseTime": 161.0
+    },
+    {
+        "type": "insert",
+        "retain": 145,
+        "insert": "i",
+        "startStamp": 179818.0,
+        "endStamp": 179871.0,
+        "pauseTime": 142.0
+    },
+    {
+        "type": "insert",
+        "retain": 146,
+        "insert": " ",
+        "startStamp": 179926.0,
+        "endStamp": 179998.0,
+        "pauseTime": 108.0
+    },
+    {
+        "type": "delete",
+        "retain": 146,
+        "insert": " ",
+        "startStamp": 180702.0,
+        "endStamp": 180751.0,
+        "pauseTime": 776.0
+    },
+    {
+        "type": "delete",
+        "retain": 145,
+        "insert": " ",
+        "startStamp": 180831.0,
+        "endStamp": 180863.0,
+        "pauseTime": 129.0
+    },
+    {
+        "type": "insert",
+        "retain": 145,
+        "insert": "o",
+        "startStamp": 181046.0,
+        "endStamp": 181111.0,
+        "pauseTime": 215.0
+    },
+    {
+        "type": "insert",
+        "retain": 146,
+        "insert": "t",
+        "startStamp": 181270.0,
+        "endStamp": 181342.0,
+        "pauseTime": 224.0
+    },
+    {
+        "type": "insert",
+        "retain": 147,
+        "insert": " ",
+        "startStamp": 181491.0,
+        "endStamp": 181554.0,
+        "pauseTime": 221.0
+    },
+    {
+        "type": "delete",
+        "retain": 147,
+        "insert": " ",
+        "startStamp": 181990.0,
+        "endStamp": 182039.0,
+        "pauseTime": 499.0
+    },
+    {
+        "type": "delete",
+        "retain": 146,
+        "insert": " ",
+        "startStamp": 182117.0,
+        "endStamp": 182182.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 146,
+        "insert": " ",
+        "startStamp": 182263.0,
+        "endStamp": 182326.0,
+        "pauseTime": 146.0
+    },
+    {
+        "type": "insert",
+        "retain": 147,
+        "insert": "t",
+        "startStamp": 183112.0,
+        "endStamp": 183151.0,
+        "pauseTime": 849.0
+    },
+    {
+        "type": "insert",
+        "retain": 148,
+        "insert": "e",
+        "startStamp": 183510.0,
+        "endStamp": 183604.0,
+        "pauseTime": 398.0
+    },
+    {
+        "type": "insert",
+        "retain": 149,
+        "insert": "a",
+        "startStamp": 183626.0,
+        "endStamp": 183714.0,
+        "pauseTime": 116.0
+    },
+    {
+        "type": "insert",
+        "retain": 150,
+        "insert": "h",
+        "startStamp": 184738.0,
+        "endStamp": 184795.0,
+        "pauseTime": 1112.0
+    },
+    {
+        "type": "delete",
+        "retain": 150,
+        "insert": " ",
+        "startStamp": 185083.0,
+        "endStamp": 185128.0,
+        "pauseTime": 345.0
+    },
+    {
+        "type": "insert",
+        "retain": 150,
+        "insert": "c",
+        "startStamp": 185167.0,
+        "endStamp": 185247.0,
+        "pauseTime": 84.0
+    },
+    {
+        "type": "insert",
+        "retain": 151,
+        "insert": "h",
+        "startStamp": 185355.0,
+        "endStamp": 185413.0,
+        "pauseTime": 188.0
+    },
+    {
+        "type": "insert",
+        "retain": 152,
+        "insert": "e",
+        "startStamp": 185430.0,
+        "endStamp": 185527.0,
+        "pauseTime": 75.0
+    },
+    {
+        "type": "insert",
+        "retain": 153,
+        "insert": "r",
+        "startStamp": 185834.0,
+        "endStamp": 185904.0,
+        "pauseTime": 404.0
+    },
+    {
+        "type": "insert",
+        "retain": 154,
+        "insert": "s",
+        "startStamp": 186678.0,
+        "endStamp": 186771.0,
+        "pauseTime": 844.0
+    },
+    {
+        "type": "insert",
+        "retain": 155,
+        "insert": " ",
+        "startStamp": 186947.0,
+        "endStamp": 187025.0,
+        "pauseTime": 269.0
+    },
+    {
+        "type": "insert",
+        "retain": 156,
+        "insert": "o",
+        "startStamp": 187202.0,
+        "endStamp": 187284.0,
+        "pauseTime": 255.0
+    },
+    {
+        "type": "insert",
+        "retain": 157,
+        "insert": "r",
+        "startStamp": 187362.0,
+        "endStamp": 187460.0,
+        "pauseTime": 160.0
+    },
+    {
+        "type": "insert",
+        "retain": 158,
+        "insert": " ",
+        "startStamp": 188033.0,
+        "endStamp": 188118.0,
+        "pauseTime": 671.0
+    },
+    {
+        "type": "insert",
+        "retain": 159,
+        "insert": "p",
+        "startStamp": 188333.0,
+        "endStamp": 188417.0,
+        "pauseTime": 300.0
+    },
+    {
+        "type": "insert",
+        "retain": 160,
+        "insert": "i",
+        "startStamp": 188545.0,
+        "endStamp": 188614.0,
+        "pauseTime": 212.0
+    },
+    {
+        "type": "delete",
+        "retain": 160,
+        "insert": " ",
+        "startStamp": 189653.0,
+        "endStamp": 189718.0,
+        "pauseTime": 1108.0
+    },
+    {
+        "type": "insert",
+        "retain": 160,
+        "insert": "a",
+        "startStamp": 189780.0,
+        "endStamp": 189840.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 161,
+        "insert": "r",
+        "startStamp": 190385.0,
+        "endStamp": 190465.0,
+        "pauseTime": 605.0
+    },
+    {
+        "type": "insert",
+        "retain": 162,
+        "insert": "i",
+        "startStamp": 190666.0,
+        "endStamp": 190719.0,
+        "pauseTime": 281.0
+    },
+    {
+        "type": "delete",
+        "retain": 162,
+        "insert": " ",
+        "startStamp": 191068.0,
+        "endStamp": 191101.0,
+        "pauseTime": 402.0
+    },
+    {
+        "type": "insert",
+        "retain": 162,
+        "insert": "t",
+        "startStamp": 191169.0,
+        "endStamp": 191230.0,
+        "pauseTime": 101.0
+    },
+    {
+        "type": "insert",
+        "retain": 163,
+        "insert": "i",
+        "startStamp": 191317.0,
+        "endStamp": 191376.0,
+        "pauseTime": 148.0
+    },
+    {
+        "type": "insert",
+        "retain": 164,
+        "insert": "c",
+        "startStamp": 193026.0,
+        "endStamp": 193119.0,
+        "pauseTime": 1709.0
+    },
+    {
+        "type": "insert",
+        "retain": 165,
+        "insert": "i",
+        "startStamp": 193211.0,
+        "endStamp": 193266.0,
+        "pauseTime": 185.0
+    },
+    {
+        "type": "insert",
+        "retain": 166,
+        "insert": "p",
+        "startStamp": 193418.0,
+        "endStamp": 193487.0,
+        "pauseTime": 207.0
+    },
+    {
+        "type": "insert",
+        "retain": 167,
+        "insert": "a",
+        "startStamp": 193581.0,
+        "endStamp": 193664.0,
+        "pauseTime": 163.0
+    },
+    {
+        "type": "insert",
+        "retain": 168,
+        "insert": "t",
+        "startStamp": 194236.0,
+        "endStamp": 194293.0,
+        "pauseTime": 655.0
+    },
+    {
+        "type": "insert",
+        "retain": 169,
+        "insert": "i",
+        "startStamp": 194279.0,
+        "endStamp": 194344.0,
+        "pauseTime": 43.0
+    },
+    {
+        "type": "insert",
+        "retain": 170,
+        "insert": "n",
+        "startStamp": 194418.0,
+        "endStamp": 194503.0,
+        "pauseTime": 139.0
+    },
+    {
+        "type": "insert",
+        "retain": 171,
+        "insert": "g",
+        "startStamp": 194519.0,
+        "endStamp": 194591.0,
+        "pauseTime": 101.0
+    },
+    {
+        "type": "insert",
+        "retain": 172,
+        "insert": " ",
+        "startStamp": 195481.0,
+        "endStamp": 195550.0,
+        "pauseTime": 962.0
+    },
+    {
+        "type": "insert",
+        "retain": 173,
+        "insert": "i",
+        "startStamp": 195607.0,
+        "endStamp": 195678.0,
+        "pauseTime": 126.0
+    },
+    {
+        "type": "insert",
+        "retain": 174,
+        "insert": "n",
+        "startStamp": 195746.0,
+        "endStamp": 195817.0,
+        "pauseTime": 139.0
+    },
+    {
+        "type": "insert",
+        "retain": 175,
+        "insert": " ",
+        "startStamp": 195831.0,
+        "endStamp": 195930.0,
+        "pauseTime": 85.0
+    },
+    {
+        "type": "insert",
+        "retain": 176,
+        "insert": "d",
+        "startStamp": 196676.0,
+        "endStamp": 196734.0,
+        "pauseTime": 845.0
+    },
+    {
+        "type": "insert",
+        "retain": 177,
+        "insert": "i",
+        "startStamp": 196776.0,
+        "endStamp": 196830.0,
+        "pauseTime": 100.0
+    },
+    {
+        "type": "insert",
+        "retain": 178,
+        "insert": "s",
+        "startStamp": 196879.0,
+        "endStamp": 196959.0,
+        "pauseTime": 103.0
+    },
+    {
+        "type": "insert",
+        "retain": 179,
+        "insert": "c",
+        "startStamp": 197089.0,
+        "endStamp": 197155.0,
+        "pauseTime": 210.0
+    },
+    {
+        "type": "insert",
+        "retain": 180,
+        "insert": "u",
+        "startStamp": 197223.0,
+        "endStamp": 197278.0,
+        "pauseTime": 134.0
+    },
+    {
+        "type": "insert",
+        "retain": 181,
+        "insert": "s",
+        "startStamp": 197337.0,
+        "endStamp": 197439.0,
+        "pauseTime": 114.0
+    },
+    {
+        "type": "insert",
+        "retain": 182,
+        "insert": "s",
+        "startStamp": 197735.0,
+        "endStamp": 197806.0,
+        "pauseTime": 398.0
+    },
+    {
+        "type": "insert",
+        "retain": 183,
+        "insert": "i",
+        "startStamp": 198048.0,
+        "endStamp": 198127.0,
+        "pauseTime": 313.0
+    },
+    {
+        "type": "insert",
+        "retain": 184,
+        "insert": "o",
+        "startStamp": 198185.0,
+        "endStamp": 198295.0,
+        "pauseTime": 137.0
+    },
+    {
+        "type": "insert",
+        "retain": 185,
+        "insert": "n",
+        "startStamp": 198363.0,
+        "endStamp": 198479.0,
+        "pauseTime": 178.0
+    },
+    {
+        "type": "insert",
+        "retain": 186,
+        "insert": "s",
+        "startStamp": 198520.0,
+        "endStamp": 198590.0,
+        "pauseTime": 157.0
+    },
+    {
+        "type": "insert",
+        "retain": 187,
+        "insert": ".",
+        "startStamp": 199400.0,
+        "endStamp": 199447.0,
+        "pauseTime": 880.0
+    },
+    {
+        "type": "insert",
+        "retain": 188,
+        "insert": " ",
+        "startStamp": 199518.0,
+        "endStamp": 199582.0,
+        "pauseTime": 118.0
+    },
+    {
+        "type": "insert",
+        "retain": 189,
+        "insert": "M",
+        "startStamp": 0.0,
+        "endStamp": 0.0,
+        "pauseTime": 0.0
+    },
+    {
+        "type": "insert",
+        "retain": 190,
+        "insert": "a",
+        "startStamp": 199905.0,
+        "endStamp": 199974.0,
+        "pauseTime": 387.0
+    },
+    {
+        "type": "insert",
+        "retain": 191,
+        "insert": "n",
+        "startStamp": 200029.0,
+        "endStamp": 200118.0,
+        "pauseTime": 124.0
+    },
+    {
+        "type": "insert",
+        "retain": 192,
+        "insert": "t",
+        "startStamp": 200207.0,
+        "endStamp": 200256.0,
+        "pauseTime": 178.0
+    },
+    {
+        "type": "delete",
+        "retain": 192,
+        "insert": " ",
+        "startStamp": 200555.0,
+        "endStamp": 200614.0,
+        "pauseTime": 348.0
+    },
+    {
+        "type": "insert",
+        "retain": 192,
+        "insert": "y",
+        "startStamp": 200901.0,
+        "endStamp": 200958.0,
+        "pauseTime": 346.0
+    },
+    {
+        "type": "insert",
+        "retain": 193,
+        "insert": " ",
+        "startStamp": 201664.0,
+        "endStamp": 201726.0,
+        "pauseTime": 763.0
+    },
+    {
+        "type": "insert",
+        "retain": 194,
+        "insert": "s",
+        "startStamp": 201839.0,
+        "endStamp": 201954.0,
+        "pauseTime": 175.0
+    },
+    {
+        "type": "insert",
+        "retain": 195,
+        "insert": "t",
+        "startStamp": 202422.0,
+        "endStamp": 202486.0,
+        "pauseTime": 583.0
+    },
+    {
+        "type": "insert",
+        "retain": 196,
+        "insert": "u",
+        "startStamp": 202549.0,
+        "endStamp": 202619.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 197,
+        "insert": "d",
+        "startStamp": 202818.0,
+        "endStamp": 202922.0,
+        "pauseTime": 269.0
+    },
+    {
+        "type": "insert",
+        "retain": 198,
+        "insert": "e",
+        "startStamp": 203014.0,
+        "endStamp": 203091.0,
+        "pauseTime": 196.0
+    },
+    {
+        "type": "insert",
+        "retain": 199,
+        "insert": "n",
+        "startStamp": 203141.0,
+        "endStamp": 203211.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 200,
+        "insert": "t",
+        "startStamp": 203234.0,
+        "endStamp": 203294.0,
+        "pauseTime": 93.0
+    },
+    {
+        "type": "insert",
+        "retain": 201,
+        "insert": "s",
+        "startStamp": 204605.0,
+        "endStamp": 204670.0,
+        "pauseTime": 1371.0
+    },
+    {
+        "type": "insert",
+        "retain": 202,
+        "insert": " ",
+        "startStamp": 204770.0,
+        "endStamp": 204833.0,
+        "pauseTime": 165.0
+    },
+    {
+        "type": "insert",
+        "retain": 203,
+        "insert": "c",
+        "startStamp": 205008.0,
+        "endStamp": 205108.0,
+        "pauseTime": 238.0
+    },
+    {
+        "type": "insert",
+        "retain": 204,
+        "insert": "h",
+        "startStamp": 205137.0,
+        "endStamp": 205182.0,
+        "pauseTime": 129.0
+    },
+    {
+        "type": "insert",
+        "retain": 205,
+        "insert": "e",
+        "startStamp": 205261.0,
+        "endStamp": 205342.0,
+        "pauseTime": 124.0
+    },
+    {
+        "type": "insert",
+        "retain": 206,
+        "insert": "c",
+        "startStamp": 205455.0,
+        "endStamp": 205573.0,
+        "pauseTime": 194.0
+    },
+    {
+        "type": "insert",
+        "retain": 207,
+        "insert": "k",
+        "startStamp": 206183.0,
+        "endStamp": 206260.0,
+        "pauseTime": 728.0
+    },
+    {
+        "type": "insert",
+        "retain": 208,
+        "insert": " ",
+        "startStamp": 207119.0,
+        "endStamp": 207190.0,
+        "pauseTime": 936.0
+    },
+    {
+        "type": "insert",
+        "retain": 209,
+        "insert": "s",
+        "startStamp": 207410.0,
+        "endStamp": 207487.0,
+        "pauseTime": 291.0
+    },
+    {
+        "type": "insert",
+        "retain": 210,
+        "insert": "o",
+        "startStamp": 207488.0,
+        "endStamp": 207559.0,
+        "pauseTime": 78.0
+    },
+    {
+        "type": "insert",
+        "retain": 211,
+        "insert": "c",
+        "startStamp": 207715.0,
+        "endStamp": 207775.0,
+        "pauseTime": 227.0
+    },
+    {
+        "type": "insert",
+        "retain": 212,
+        "insert": "i",
+        "startStamp": 207798.0,
+        "endStamp": 207871.0,
+        "pauseTime": 83.0
+    },
+    {
+        "type": "insert",
+        "retain": 213,
+        "insert": "a",
+        "startStamp": 208030.0,
+        "endStamp": 208110.0,
+        "pauseTime": 232.0
+    },
+    {
+        "type": "insert",
+        "retain": 214,
+        "insert": "l",
+        "startStamp": 208144.0,
+        "endStamp": 208217.0,
+        "pauseTime": 114.0
+    },
+    {
+        "type": "insert",
+        "retain": 215,
+        "insert": " ",
+        "startStamp": 208522.0,
+        "endStamp": 208578.0,
+        "pauseTime": 378.0
+    },
+    {
+        "type": "insert",
+        "retain": 216,
+        "insert": "m",
+        "startStamp": 208735.0,
+        "endStamp": 208795.0,
+        "pauseTime": 213.0
+    },
+    {
+        "type": "insert",
+        "retain": 217,
+        "insert": "e",
+        "startStamp": 208831.0,
+        "endStamp": 208907.0,
+        "pauseTime": 96.0
+    },
+    {
+        "type": "insert",
+        "retain": 218,
+        "insert": "d",
+        "startStamp": 209008.0,
+        "endStamp": 209085.0,
+        "pauseTime": 177.0
+    },
+    {
+        "type": "insert",
+        "retain": 219,
+        "insert": "i",
+        "startStamp": 209115.0,
+        "endStamp": 209194.0,
+        "pauseTime": 107.0
+    },
+    {
+        "type": "insert",
+        "retain": 220,
+        "insert": "a",
+        "startStamp": 209250.0,
+        "endStamp": 209342.0,
+        "pauseTime": 135.0
+    },
+    {
+        "type": "insert",
+        "retain": 221,
+        "insert": " ",
+        "startStamp": 209513.0,
+        "endStamp": 209585.0,
+        "pauseTime": 263.0
+    },
+    {
+        "type": "insert",
+        "retain": 222,
+        "insert": "o",
+        "startStamp": 209962.0,
+        "endStamp": 210054.0,
+        "pauseTime": 449.0
+    },
+    {
+        "type": "insert",
+        "retain": 223,
+        "insert": "r",
+        "startStamp": 210217.0,
+        "endStamp": 210343.0,
+        "pauseTime": 255.0
+    },
+    {
+        "type": "insert",
+        "retain": 224,
+        "insert": " ",
+        "startStamp": 210582.0,
+        "endStamp": 210663.0,
+        "pauseTime": 365.0
+    },
+    {
+        "type": "insert",
+        "retain": 225,
+        "insert": "p",
+        "startStamp": 212057.0,
+        "endStamp": 212118.0,
+        "pauseTime": 1475.0
+    },
+    {
+        "type": "insert",
+        "retain": 226,
+        "insert": "l",
+        "startStamp": 212230.0,
+        "endStamp": 212301.0,
+        "pauseTime": 173.0
+    },
+    {
+        "type": "insert",
+        "retain": 227,
+        "insert": "a",
+        "startStamp": 212350.0,
+        "endStamp": 212398.0,
+        "pauseTime": 120.0
+    },
+    {
+        "type": "insert",
+        "retain": 228,
+        "insert": "y",
+        "startStamp": 213053.0,
+        "endStamp": 213126.0,
+        "pauseTime": 703.0
+    },
+    {
+        "type": "insert",
+        "retain": 229,
+        "insert": " ",
+        "startStamp": 213262.0,
+        "endStamp": 213326.0,
+        "pauseTime": 209.0
+    },
+    {
+        "type": "insert",
+        "retain": 230,
+        "insert": "g",
+        "startStamp": 213743.0,
+        "endStamp": 213825.0,
+        "pauseTime": 481.0
+    },
+    {
+        "type": "insert",
+        "retain": 231,
+        "insert": "a",
+        "startStamp": 213839.0,
+        "endStamp": 213910.0,
+        "pauseTime": 96.0
+    },
+    {
+        "type": "insert",
+        "retain": 232,
+        "insert": "m",
+        "startStamp": 213950.0,
+        "endStamp": 214027.0,
+        "pauseTime": 111.0
+    },
+    {
+        "type": "insert",
+        "retain": 233,
+        "insert": "e",
+        "startStamp": 214087.0,
+        "endStamp": 214159.0,
+        "pauseTime": 137.0
+    },
+    {
+        "type": "insert",
+        "retain": 234,
+        "insert": "s",
+        "startStamp": 214258.0,
+        "endStamp": 214392.0,
+        "pauseTime": 171.0
+    },
+    {
+        "type": "insert",
+        "retain": 235,
+        "insert": " ",
+        "startStamp": 214445.0,
+        "endStamp": 214559.0,
+        "pauseTime": 187.0
+    },
+    {
+        "type": "insert",
+        "retain": 236,
+        "insert": "i",
+        "startStamp": 214863.0,
+        "endStamp": 214934.0,
+        "pauseTime": 418.0
+    },
+    {
+        "type": "insert",
+        "retain": 237,
+        "insert": "n",
+        "startStamp": 215151.0,
+        "endStamp": 215224.0,
+        "pauseTime": 288.0
+    },
+    {
+        "type": "insert",
+        "retain": 238,
+        "insert": "s",
+        "startStamp": 215338.0,
+        "endStamp": 215447.0,
+        "pauseTime": 187.0
+    },
+    {
+        "type": "insert",
+        "retain": 239,
+        "insert": "t",
+        "startStamp": 215747.0,
+        "endStamp": 215824.0,
+        "pauseTime": 409.0
+    },
+    {
+        "type": "insert",
+        "retain": 240,
+        "insert": "r",
+        "startStamp": 216078.0,
+        "endStamp": 216143.0,
+        "pauseTime": 331.0
+    },
+    {
+        "type": "insert",
+        "retain": 241,
+        "insert": "a",
+        "startStamp": 216399.0,
+        "endStamp": 216504.0,
+        "pauseTime": 321.0
+    },
+    {
+        "type": "insert",
+        "retain": 242,
+        "insert": "f",
+        "startStamp": 216729.0,
+        "endStamp": 216816.0,
+        "pauseTime": 330.0
+    },
+    {
+        "type": "insert",
+        "retain": 243,
+        "insert": " ",
+        "startStamp": 217055.0,
+        "endStamp": 217126.0,
+        "pauseTime": 326.0
+    },
+    {
+        "type": "insert",
+        "retain": 244,
+        "insert": "o",
+        "startStamp": 217226.0,
+        "endStamp": 217335.0,
+        "pauseTime": 171.0
+    },
+    {
+        "type": "insert",
+        "retain": 245,
+        "insert": "g",
+        "startStamp": 217355.0,
+        "endStamp": 217423.0,
+        "pauseTime": 129.0
+    },
+    {
+        "type": "delete",
+        "retain": 245,
+        "insert": " ",
+        "startStamp": 217653.0,
+        "endStamp": 217710.0,
+        "pauseTime": 298.0
+    },
+    {
+        "type": "delete",
+        "retain": 244,
+        "insert": " ",
+        "startStamp": 217782.0,
+        "endStamp": 217848.0,
+        "pauseTime": 129.0
+    },
+    {
+        "type": "delete",
+        "retain": 243,
+        "insert": " ",
+        "startStamp": 217920.0,
+        "endStamp": 217987.0,
+        "pauseTime": 138.0
+    },
+    {
+        "type": "delete",
+        "retain": 242,
+        "insert": " ",
+        "startStamp": 218063.0,
+        "endStamp": 218115.0,
+        "pauseTime": 143.0
+    },
+    {
+        "type": "delete",
+        "retain": 241,
+        "insert": " ",
+        "startStamp": 218495.0,
+        "endStamp": 218631.0,
+        "pauseTime": 432.0
+    },
+    {
+        "type": "delete",
+        "retain": 240,
+        "insert": " ",
+        "startStamp": 218687.0,
+        "endStamp": 218747.0,
+        "pauseTime": 192.0
+    },
+    {
+        "type": "insert",
+        "retain": 240,
+        "insert": "e",
+        "startStamp": 218774.0,
+        "endStamp": 218864.0,
+        "pauseTime": 87.0
+    },
+    {
+        "type": "insert",
+        "retain": 241,
+        "insert": "a",
+        "startStamp": 218865.0,
+        "endStamp": 218972.0,
+        "pauseTime": 91.0
+    },
+    {
+        "type": "insert",
+        "retain": 242,
+        "insert": "d",
+        "startStamp": 219047.0,
+        "endStamp": 219120.0,
+        "pauseTime": 182.0
+    },
+    {
+        "type": "insert",
+        "retain": 243,
+        "insert": " ",
+        "startStamp": 219248.0,
+        "endStamp": 219330.0,
+        "pauseTime": 201.0
+    },
+    {
+        "type": "insert",
+        "retain": 244,
+        "insert": "o",
+        "startStamp": 219721.0,
+        "endStamp": 219805.0,
+        "pauseTime": 473.0
+    },
+    {
+        "type": "insert",
+        "retain": 245,
+        "insert": "f",
+        "startStamp": 219800.0,
+        "endStamp": 219910.0,
+        "pauseTime": 79.0
+    },
+    {
+        "type": "delete",
+        "retain": 245,
+        "insert": " ",
+        "startStamp": 220566.0,
+        "endStamp": 220624.0,
+        "pauseTime": 766.0
+    },
+    {
+        "type": "insert",
+        "retain": 245,
+        "insert": "f",
+        "startStamp": 221285.0,
+        "endStamp": 221365.0,
+        "pauseTime": 719.0
+    },
+    {
+        "type": "insert",
+        "retain": 246,
+        "insert": " ",
+        "startStamp": 221458.0,
+        "endStamp": 221526.0,
+        "pauseTime": 173.0
+    },
+    {
+        "type": "insert",
+        "retain": 247,
+        "insert": "f",
+        "startStamp": 222690.0,
+        "endStamp": 222751.0,
+        "pauseTime": 1232.0
+    },
+    {
+        "type": "insert",
+        "retain": 248,
+        "insert": "o",
+        "startStamp": 222788.0,
+        "endStamp": 222862.0,
+        "pauseTime": 98.0
+    },
+    {
+        "type": "insert",
+        "retain": 249,
+        "insert": "c",
+        "startStamp": 222948.0,
+        "endStamp": 223006.0,
+        "pauseTime": 160.0
+    },
+    {
+        "type": "insert",
+        "retain": 250,
+        "insert": "u",
+        "startStamp": 223079.0,
+        "endStamp": 223169.0,
+        "pauseTime": 131.0
+    },
+    {
+        "type": "insert",
+        "retain": 251,
+        "insert": "n",
+        "startStamp": 223310.0,
+        "endStamp": 223394.0,
+        "pauseTime": 231.0
+    },
+    {
+        "type": "delete",
+        "retain": 251,
+        "insert": " ",
+        "startStamp": 223693.0,
+        "endStamp": 223755.0,
+        "pauseTime": 383.0
+    },
+    {
+        "type": "insert",
+        "retain": 251,
+        "insert": "s",
+        "startStamp": 224339.0,
+        "endStamp": 224431.0,
+        "pauseTime": 646.0
+    },
+    {
+        "type": "insert",
+        "retain": 252,
+        "insert": "i",
+        "startStamp": 225513.0,
+        "endStamp": 225655.0,
+        "pauseTime": 1174.0
+    },
+    {
+        "type": "insert",
+        "retain": 253,
+        "insert": "n",
+        "startStamp": 225744.0,
+        "endStamp": 225855.0,
+        "pauseTime": 231.0
+    },
+    {
+        "type": "insert",
+        "retain": 254,
+        "insert": "g",
+        "startStamp": 225861.0,
+        "endStamp": 225927.0,
+        "pauseTime": 117.0
+    },
+    {
+        "type": "insert",
+        "retain": 255,
+        "insert": " ",
+        "startStamp": 225975.0,
+        "endStamp": 226054.0,
+        "pauseTime": 114.0
+    },
+    {
+        "type": "insert",
+        "retain": 256,
+        "insert": "o",
+        "startStamp": 226201.0,
+        "endStamp": 226262.0,
+        "pauseTime": 226.0
+    },
+    {
+        "type": "insert",
+        "retain": 257,
+        "insert": "n",
+        "startStamp": 226363.0,
+        "endStamp": 226432.0,
+        "pauseTime": 162.0
+    },
+    {
+        "type": "insert",
+        "retain": 258,
+        "insert": " ",
+        "startStamp": 226438.0,
+        "endStamp": 226518.0,
+        "pauseTime": 75.0
+    },
+    {
+        "type": "insert",
+        "retain": 259,
+        "insert": "l",
+        "startStamp": 226640.0,
+        "endStamp": 226711.0,
+        "pauseTime": 202.0
+    },
+    {
+        "type": "insert",
+        "retain": 260,
+        "insert": "e",
+        "startStamp": 226716.0,
+        "endStamp": 226797.0,
+        "pauseTime": 76.0
+    },
+    {
+        "type": "insert",
+        "retain": 261,
+        "insert": "a",
+        "startStamp": 226918.0,
+        "endStamp": 227049.0,
+        "pauseTime": 202.0
+    },
+    {
+        "type": "insert",
+        "retain": 262,
+        "insert": "s",
+        "startStamp": 229324.0,
+        "endStamp": 229408.0,
+        "pauseTime": 2406.0
+    },
+    {
+        "type": "insert",
+        "retain": 263,
+        "insert": "s",
+        "startStamp": 231978.0,
+        "endStamp": 232080.0,
+        "pauseTime": 2654.0
+    },
+    {
+        "type": "insert",
+        "retain": 264,
+        "insert": "o",
+        "startStamp": 232302.0,
+        "endStamp": 232398.0,
+        "pauseTime": 324.0
+    },
+    {
+        "type": "insert",
+        "retain": 265,
+        "insert": "n",
+        "startStamp": 232546.0,
+        "endStamp": 232643.0,
+        "pauseTime": 244.0
+    },
+    {
+        "type": "insert",
+        "retain": 266,
+        "insert": "s",
+        "startStamp": 233255.0,
+        "endStamp": 233327.0,
+        "pauseTime": 709.0
+    },
+    {
+        "type": "insert",
+        "retain": 267,
+        "insert": ".",
+        "startStamp": 234251.0,
+        "endStamp": 234335.0,
+        "pauseTime": 996.0
+    },
+    {
+        "type": "insert",
+        "retain": 268,
+        "insert": "\n",
+        "startStamp": 237311.0,
+        "endStamp": 237400.0,
+        "pauseTime": 3060.0
+    },
+    {
+        "type": "insert",
+        "retain": 269,
+        "insert": "F",
+        "startStamp": 0.0,
+        "endStamp": 0.0,
+        "pauseTime": 0.0
+    },
+    {
+        "type": "insert",
+        "retain": 270,
+        "insert": "r",
+        "startStamp": 238599.0,
+        "endStamp": 238709.0,
+        "pauseTime": 1288.0
+    },
+    {
+        "type": "delete",
+        "retain": 270,
+        "insert": " ",
+        "startStamp": 239480.0,
+        "endStamp": 239526.0,
+        "pauseTime": 881.0
+    },
+    {
+        "type": "insert",
+        "retain": 270,
+        "insert": "o",
+        "startStamp": 239791.0,
+        "endStamp": 239869.0,
+        "pauseTime": 311.0
+    },
+    {
+        "type": "insert",
+        "retain": 271,
+        "insert": "r",
+        "startStamp": 239881.0,
+        "endStamp": 239950.0,
+        "pauseTime": 90.0
+    },
+    {
+        "type": "insert",
+        "retain": 272,
+        "insert": " ",
+        "startStamp": 242776.0,
+        "endStamp": 242875.0,
+        "pauseTime": 2895.0
+    },
+    {
+        "type": "insert",
+        "retain": 273,
+        "insert": "e",
+        "startStamp": 243073.0,
+        "endStamp": 243169.0,
+        "pauseTime": 297.0
+    },
+    {
+        "type": "insert",
+        "retain": 274,
+        "insert": "x",
+        "startStamp": 243480.0,
+        "endStamp": 243568.0,
+        "pauseTime": 407.0
+    },
+    {
+        "type": "insert",
+        "retain": 275,
+        "insert": "a",
+        "startStamp": 243831.0,
+        "endStamp": 243930.0,
+        "pauseTime": 351.0
+    },
+    {
+        "type": "insert",
+        "retain": 276,
+        "insert": "m",
+        "startStamp": 243982.0,
+        "endStamp": 244058.0,
+        "pauseTime": 151.0
+    },
+    {
+        "type": "insert",
+        "retain": 277,
+        "insert": "p",
+        "startStamp": 244263.0,
+        "endStamp": 244345.0,
+        "pauseTime": 281.0
+    },
+    {
+        "type": "insert",
+        "retain": 278,
+        "insert": "l",
+        "startStamp": 244463.0,
+        "endStamp": 244541.0,
+        "pauseTime": 200.0
+    },
+    {
+        "type": "insert",
+        "retain": 279,
+        "insert": "e",
+        "startStamp": 244590.0,
+        "endStamp": 244654.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 280,
+        "insert": "s",
+        "startStamp": 244726.0,
+        "endStamp": 244808.0,
+        "pauseTime": 136.0
+    },
+    {
+        "type": "delete",
+        "retain": 280,
+        "insert": " ",
+        "startStamp": 246047.0,
+        "endStamp": 246103.0,
+        "pauseTime": 1321.0
+    },
+    {
+        "type": "insert",
+        "retain": 280,
+        "insert": ",",
+        "startStamp": 246963.0,
+        "endStamp": 247032.0,
+        "pauseTime": 916.0
+    },
+    {
+        "type": "insert",
+        "retain": 281,
+        "insert": " ",
+        "startStamp": 247447.0,
+        "endStamp": 247518.0,
+        "pauseTime": 484.0
+    },
+    {
+        "type": "insert",
+        "retain": 282,
+        "insert": "a",
+        "startStamp": 249723.0,
+        "endStamp": 249791.0,
+        "pauseTime": 2276.0
+    },
+    {
+        "type": "insert",
+        "retain": 283,
+        "insert": " ",
+        "startStamp": 250025.0,
+        "endStamp": 250087.0,
+        "pauseTime": 302.0
+    },
+    {
+        "type": "insert",
+        "retain": 284,
+        "insert": "c",
+        "startStamp": 250382.0,
+        "endStamp": 250446.0,
+        "pauseTime": 357.0
+    },
+    {
+        "type": "insert",
+        "retain": 285,
+        "insert": "l",
+        "startStamp": 250691.0,
+        "endStamp": 250784.0,
+        "pauseTime": 309.0
+    },
+    {
+        "type": "insert",
+        "retain": 286,
+        "insert": "a",
+        "startStamp": 250854.0,
+        "endStamp": 250927.0,
+        "pauseTime": 163.0
+    },
+    {
+        "type": "insert",
+        "retain": 287,
+        "insert": "s",
+        "startStamp": 251047.0,
+        "endStamp": 251111.0,
+        "pauseTime": 193.0
+    },
+    {
+        "type": "insert",
+        "retain": 288,
+        "insert": "s",
+        "startStamp": 251185.0,
+        "endStamp": 251254.0,
+        "pauseTime": 138.0
+    },
+    {
+        "type": "insert",
+        "retain": 289,
+        "insert": "m",
+        "startStamp": 256504.0,
+        "endStamp": 256552.0,
+        "pauseTime": 5319.0
+    },
+    {
+        "type": "insert",
+        "retain": 290,
+        "insert": "a",
+        "startStamp": 256583.0,
+        "endStamp": 256714.0,
+        "pauseTime": 79.0
+    },
+    {
+        "type": "insert",
+        "retain": 291,
+        "insert": "t",
+        "startStamp": 256961.0,
+        "endStamp": 257053.0,
+        "pauseTime": 378.0
+    },
+    {
+        "type": "insert",
+        "retain": 292,
+        "insert": "e",
+        "startStamp": 257054.0,
+        "endStamp": 257132.0,
+        "pauseTime": 93.0
+    },
+    {
+        "type": "insert",
+        "retain": 293,
+        "insert": " ",
+        "startStamp": 257178.0,
+        "endStamp": 257259.0,
+        "pauseTime": 124.0
+    },
+    {
+        "type": "insert",
+        "retain": 294,
+        "insert": "o",
+        "startStamp": 257337.0,
+        "endStamp": 257392.0,
+        "pauseTime": 159.0
+    },
+    {
+        "type": "insert",
+        "retain": 295,
+        "insert": "f",
+        "startStamp": 257455.0,
+        "endStamp": 257520.0,
+        "pauseTime": 118.0
+    },
+    {
+        "type": "insert",
+        "retain": 296,
+        "insert": " ",
+        "startStamp": 257650.0,
+        "endStamp": 257687.0,
+        "pauseTime": 195.0
+    },
+    {
+        "type": "insert",
+        "retain": 297,
+        "insert": "m",
+        "startStamp": 258912.0,
+        "endStamp": 258995.0,
+        "pauseTime": 1262.0
+    },
+    {
+        "type": "insert",
+        "retain": 298,
+        "insert": "i",
+        "startStamp": 259087.0,
+        "endStamp": 259149.0,
+        "pauseTime": 175.0
+    },
+    {
+        "type": "insert",
+        "retain": 299,
+        "insert": "a",
+        "startStamp": 259163.0,
+        "endStamp": 259231.0,
+        "pauseTime": 76.0
+    },
+    {
+        "type": "insert",
+        "retain": 300,
+        "insert": "n",
+        "startStamp": 259335.0,
+        "endStamp": 259414.0,
+        "pauseTime": 172.0
+    },
+    {
+        "type": "delete",
+        "retain": 300,
+        "insert": " ",
+        "startStamp": 260017.0,
+        "endStamp": 260088.0,
+        "pauseTime": 682.0
+    },
+    {
+        "type": "delete",
+        "retain": 299,
+        "insert": " ",
+        "startStamp": 260171.0,
+        "endStamp": 260224.0,
+        "pauseTime": 154.0
+    },
+    {
+        "type": "delete",
+        "retain": 298,
+        "insert": " ",
+        "startStamp": 260310.0,
+        "endStamp": 260375.0,
+        "pauseTime": 139.0
+    },
+    {
+        "type": "insert",
+        "retain": 298,
+        "insert": "i",
+        "startStamp": 260846.0,
+        "endStamp": 260919.0,
+        "pauseTime": 536.0
+    },
+    {
+        "type": "insert",
+        "retain": 299,
+        "insert": "e",
+        "startStamp": 261145.0,
+        "endStamp": 261228.0,
+        "pauseTime": 299.0
+    },
+    {
+        "type": "insert",
+        "retain": 300,
+        "insert": "n",
+        "startStamp": 261380.0,
+        "endStamp": 261453.0,
+        "pauseTime": 235.0
+    },
+    {
+        "type": "delete",
+        "retain": 300,
+        "insert": " ",
+        "startStamp": 262323.0,
+        "endStamp": 262367.0,
+        "pauseTime": 943.0
+    },
+    {
+        "type": "delete",
+        "retain": 299,
+        "insert": " ",
+        "startStamp": 262446.0,
+        "endStamp": 262511.0,
+        "pauseTime": 123.0
+    },
+    {
+        "type": "insert",
+        "retain": 299,
+        "insert": "n",
+        "startStamp": 262682.0,
+        "endStamp": 262743.0,
+        "pauseTime": 236.0
+    },
+    {
+        "type": "insert",
+        "retain": 300,
+        "insert": "e",
+        "startStamp": 262710.0,
+        "endStamp": 262775.0,
+        "pauseTime": 28.0
+    },
+    {
+        "type": "insert",
+        "retain": 301,
+        "insert": " ",
+        "startStamp": 263967.0,
+        "endStamp": 264064.0,
+        "pauseTime": 1257.0
+    },
+    {
+        "type": "insert",
+        "retain": 302,
+        "insert": "f",
+        "startStamp": 264645.0,
+        "endStamp": 264722.0,
+        "pauseTime": 678.0
+    },
+    {
+        "type": "insert",
+        "retain": 303,
+        "insert": "a",
+        "startStamp": 264839.0,
+        "endStamp": 264910.0,
+        "pauseTime": 194.0
+    },
+    {
+        "type": "insert",
+        "retain": 304,
+        "insert": "i",
+        "startStamp": 264927.0,
+        "endStamp": 264967.0,
+        "pauseTime": 88.0
+    },
+    {
+        "type": "insert",
+        "retain": 305,
+        "insert": "l",
+        "startStamp": 265054.0,
+        "endStamp": 265121.0,
+        "pauseTime": 127.0
+    },
+    {
+        "type": "insert",
+        "retain": 306,
+        "insert": "s",
+        "startStamp": 265159.0,
+        "endStamp": 265207.0,
+        "pauseTime": 105.0
+    },
+    {
+        "type": "delete",
+        "retain": 306,
+        "insert": " ",
+        "startStamp": 265462.0,
+        "endStamp": 265503.0,
+        "pauseTime": 303.0
+    },
+    {
+        "type": "insert",
+        "retain": 306,
+        "insert": "e",
+        "startStamp": 265543.0,
+        "endStamp": 265576.0,
+        "pauseTime": 81.0
+    },
+    {
+        "type": "insert",
+        "retain": 307,
+        "insert": "d",
+        "startStamp": 265673.0,
+        "endStamp": 265736.0,
+        "pauseTime": 130.0
+    },
+    {
+        "type": "insert",
+        "retain": 308,
+        "insert": " ",
+        "startStamp": 266506.0,
+        "endStamp": 266632.0,
+        "pauseTime": 833.0
+    },
+    {
+        "type": "insert",
+        "retain": 309,
+        "insert": "a",
+        "startStamp": 266760.0,
+        "endStamp": 266840.0,
+        "pauseTime": 254.0
+    },
+    {
+        "type": "insert",
+        "retain": 310,
+        "insert": "n",
+        "startStamp": 266888.0,
+        "endStamp": 266967.0,
+        "pauseTime": 128.0
+    },
+    {
+        "type": "insert",
+        "retain": 311,
+        "insert": " ",
+        "startStamp": 266998.0,
+        "endStamp": 267099.0,
+        "pauseTime": 110.0
+    },
+    {
+        "type": "insert",
+        "retain": 312,
+        "insert": "e",
+        "startStamp": 267349.0,
+        "endStamp": 267407.0,
+        "pauseTime": 351.0
+    },
+    {
+        "type": "insert",
+        "retain": 313,
+        "insert": "x",
+        "startStamp": 267566.0,
+        "endStamp": 267644.0,
+        "pauseTime": 217.0
+    },
+    {
+        "type": "insert",
+        "retain": 314,
+        "insert": "c",
+        "startStamp": 267740.0,
+        "endStamp": 267775.0,
+        "pauseTime": 174.0
+    },
+    {
+        "type": "delete",
+        "retain": 314,
+        "insert": " ",
+        "startStamp": 268060.0,
+        "endStamp": 268105.0,
+        "pauseTime": 320.0
+    },
+    {
+        "type": "insert",
+        "retain": 314,
+        "insert": "a",
+        "startStamp": 268127.0,
+        "endStamp": 268208.0,
+        "pauseTime": 67.0
+    },
+    {
+        "type": "insert",
+        "retain": 315,
+        "insert": "m",
+        "startStamp": 268274.0,
+        "endStamp": 268351.0,
+        "pauseTime": 147.0
+    },
+    {
+        "type": "insert",
+        "retain": 316,
+        "insert": " ",
+        "startStamp": 269475.0,
+        "endStamp": 269575.0,
+        "pauseTime": 1201.0
+    },
+    {
+        "type": "insert",
+        "retain": 317,
+        "insert": "b",
+        "startStamp": 269871.0,
+        "endStamp": 269919.0,
+        "pauseTime": 396.0
+    },
+    {
+        "type": "insert",
+        "retain": 318,
+        "insert": "e",
+        "startStamp": 270207.0,
+        "endStamp": 270273.0,
+        "pauseTime": 336.0
+    },
+    {
+        "type": "insert",
+        "retain": 319,
+        "insert": "c",
+        "startStamp": 270477.0,
+        "endStamp": 270511.0,
+        "pauseTime": 270.0
+    },
+    {
+        "type": "insert",
+        "retain": 320,
+        "insert": "a",
+        "startStamp": 270574.0,
+        "endStamp": 270655.0,
+        "pauseTime": 97.0
+    },
+    {
+        "type": "insert",
+        "retain": 321,
+        "insert": "u",
+        "startStamp": 271057.0,
+        "endStamp": 271120.0,
+        "pauseTime": 483.0
+    },
+    {
+        "type": "insert",
+        "retain": 322,
+        "insert": "s",
+        "startStamp": 271366.0,
+        "endStamp": 271431.0,
+        "pauseTime": 309.0
+    },
+    {
+        "type": "insert",
+        "retain": 323,
+        "insert": "e",
+        "startStamp": 271471.0,
+        "endStamp": 271555.0,
+        "pauseTime": 105.0
+    },
+    {
+        "type": "insert",
+        "retain": 324,
+        "insert": " ",
+        "startStamp": 274029.0,
+        "endStamp": 274162.0,
+        "pauseTime": 2558.0
+    },
+    {
+        "type": "insert",
+        "retain": 325,
+        "insert": "h",
+        "startStamp": 274449.0,
+        "endStamp": 274528.0,
+        "pauseTime": 420.0
+    },
+    {
+        "type": "insert",
+        "retain": 326,
+        "insert": "e",
+        "startStamp": 274536.0,
+        "endStamp": 274622.0,
+        "pauseTime": 87.0
+    },
+    {
+        "type": "insert",
+        "retain": 327,
+        "insert": " ",
+        "startStamp": 274655.0,
+        "endStamp": 274734.0,
+        "pauseTime": 119.0
+    },
+    {
+        "type": "insert",
+        "retain": 328,
+        "insert": "s",
+        "startStamp": 274846.0,
+        "endStamp": 274943.0,
+        "pauseTime": 191.0
+    },
+    {
+        "type": "insert",
+        "retain": 329,
+        "insert": "p",
+        "startStamp": 275015.0,
+        "endStamp": 275080.0,
+        "pauseTime": 169.0
+    },
+    {
+        "type": "insert",
+        "retain": 330,
+        "insert": "e",
+        "startStamp": 275123.0,
+        "endStamp": 275208.0,
+        "pauseTime": 108.0
+    },
+    {
+        "type": "insert",
+        "retain": 331,
+        "insert": "n",
+        "startStamp": 275264.0,
+        "endStamp": 275350.0,
+        "pauseTime": 141.0
+    },
+    {
+        "type": "insert",
+        "retain": 332,
+        "insert": "t",
+        "startStamp": 275355.0,
+        "endStamp": 275464.0,
+        "pauseTime": 91.0
+    },
+    {
+        "type": "insert",
+        "retain": 333,
+        "insert": " ",
+        "startStamp": 279442.0,
+        "endStamp": 279544.0,
+        "pauseTime": 4087.0
+    },
+    {
+        "type": "insert",
+        "retain": 334,
+        "insert": "t",
+        "startStamp": 279664.0,
+        "endStamp": 279745.0,
+        "pauseTime": 222.0
+    },
+    {
+        "type": "insert",
+        "retain": 335,
+        "insert": "o",
+        "startStamp": 279790.0,
+        "endStamp": 279837.0,
+        "pauseTime": 126.0
+    },
+    {
+        "type": "insert",
+        "retain": 336,
+        "insert": "o",
+        "startStamp": 279915.0,
+        "endStamp": 279967.0,
+        "pauseTime": 125.0
+    },
+    {
+        "type": "insert",
+        "retain": 337,
+        "insert": " ",
+        "startStamp": 280041.0,
+        "endStamp": 280103.0,
+        "pauseTime": 126.0
+    },
+    {
+        "type": "insert",
+        "retain": 338,
+        "insert": "m",
+        "startStamp": 280200.0,
+        "endStamp": 280294.0,
+        "pauseTime": 159.0
+    },
+    {
+        "type": "insert",
+        "retain": 339,
+        "insert": "a",
+        "startStamp": 280394.0,
+        "endStamp": 280487.0,
+        "pauseTime": 194.0
+    },
+    {
+        "type": "delete",
+        "retain": 339,
+        "insert": " ",
+        "startStamp": 280961.0,
+        "endStamp": 281023.0,
+        "pauseTime": 567.0
+    },
+    {
+        "type": "insert",
+        "retain": 339,
+        "insert": "y",
+        "startStamp": 281344.0,
+        "endStamp": 281410.0,
+        "pauseTime": 383.0
+    },
+    {
+        "type": "delete",
+        "retain": 339,
+        "insert": " ",
+        "startStamp": 281675.0,
+        "endStamp": 281715.0,
+        "pauseTime": 331.0
+    },
+    {
+        "type": "insert",
+        "retain": 339,
+        "insert": "u",
+        "startStamp": 281905.0,
+        "endStamp": 281980.0,
+        "pauseTime": 230.0
+    },
+    {
+        "type": "insert",
+        "retain": 340,
+        "insert": "c",
+        "startStamp": 281985.0,
+        "endStamp": 282048.0,
+        "pauseTime": 80.0
+    },
+    {
+        "type": "insert",
+        "retain": 341,
+        "insert": "h",
+        "startStamp": 282103.0,
+        "endStamp": 282185.0,
+        "pauseTime": 118.0
+    },
+    {
+        "type": "insert",
+        "retain": 342,
+        "insert": " ",
+        "startStamp": 282120.0,
+        "endStamp": 282199.0,
+        "pauseTime": 17.0
+    },
+    {
+        "type": "insert",
+        "retain": 343,
+        "insert": "t",
+        "startStamp": 282505.0,
+        "endStamp": 282592.0,
+        "pauseTime": 385.0
+    },
+    {
+        "type": "insert",
+        "retain": 344,
+        "insert": "i",
+        "startStamp": 282599.0,
+        "endStamp": 282671.0,
+        "pauseTime": 94.0
+    },
+    {
+        "type": "insert",
+        "retain": 345,
+        "insert": "m",
+        "startStamp": 282763.0,
+        "endStamp": 282871.0,
+        "pauseTime": 164.0
+    },
+    {
+        "type": "insert",
+        "retain": 346,
+        "insert": "e",
+        "startStamp": 282880.0,
+        "endStamp": 282961.0,
+        "pauseTime": 117.0
+    },
+    {
+        "type": "insert",
+        "retain": 347,
+        "insert": " ",
+        "startStamp": 283623.0,
+        "endStamp": 283744.0,
+        "pauseTime": 743.0
+    },
+    {
+        "type": "insert",
+        "retain": 348,
+        "insert": "i",
+        "startStamp": 284225.0,
+        "endStamp": 284251.0,
+        "pauseTime": 602.0
+    },
+    {
+        "type": "delete",
+        "retain": 348,
+        "insert": " ",
+        "startStamp": 284670.0,
+        "endStamp": 284727.0,
+        "pauseTime": 445.0
+    },
+    {
+        "type": "insert",
+        "retain": 348,
+        "insert": "o",
+        "startStamp": 284881.0,
+        "endStamp": 284964.0,
+        "pauseTime": 211.0
+    },
+    {
+        "type": "insert",
+        "retain": 349,
+        "insert": "n",
+        "startStamp": 285054.0,
+        "endStamp": 285122.0,
+        "pauseTime": 173.0
+    },
+    {
+        "type": "insert",
+        "retain": 350,
+        "insert": " ",
+        "startStamp": 285168.0,
+        "endStamp": 285232.0,
+        "pauseTime": 114.0
+    },
+    {
+        "type": "insert",
+        "retain": 351,
+        "insert": "h",
+        "startStamp": 285508.0,
+        "endStamp": 285576.0,
+        "pauseTime": 340.0
+    },
+    {
+        "type": "insert",
+        "retain": 352,
+        "insert": "e",
+        "startStamp": 285591.0,
+        "endStamp": 285664.0,
+        "pauseTime": 83.0
+    },
+    {
+        "type": "delete",
+        "retain": 352,
+        "insert": " ",
+        "startStamp": 285935.0,
+        "endStamp": 285988.0,
+        "pauseTime": 344.0
+    },
+    {
+        "type": "insert",
+        "retain": 352,
+        "insert": "i",
+        "startStamp": 286158.0,
+        "endStamp": 286236.0,
+        "pauseTime": 223.0
+    },
+    {
+        "type": "insert",
+        "retain": 353,
+        "insert": "s",
+        "startStamp": 286248.0,
+        "endStamp": 286318.0,
+        "pauseTime": 90.0
+    },
+    {
+        "type": "insert",
+        "retain": 354,
+        "insert": " ",
+        "startStamp": 286402.0,
+        "endStamp": 286467.0,
+        "pauseTime": 154.0
+    },
+    {
+        "type": "insert",
+        "retain": 355,
+        "insert": "p",
+        "startStamp": 286604.0,
+        "endStamp": 286687.0,
+        "pauseTime": 202.0
+    },
+    {
+        "type": "insert",
+        "retain": 356,
+        "insert": "h",
+        "startStamp": 286817.0,
+        "endStamp": 286872.0,
+        "pauseTime": 213.0
+    },
+    {
+        "type": "insert",
+        "retain": 357,
+        "insert": "o",
+        "startStamp": 287458.0,
+        "endStamp": 287526.0,
+        "pauseTime": 641.0
+    },
+    {
+        "type": "insert",
+        "retain": 358,
+        "insert": "n",
+        "startStamp": 287612.0,
+        "endStamp": 287681.0,
+        "pauseTime": 154.0
+    },
+    {
+        "type": "insert",
+        "retain": 359,
+        "insert": "e",
+        "startStamp": 287692.0,
+        "endStamp": 287752.0,
+        "pauseTime": 80.0
+    },
+    {
+        "type": "insert",
+        "retain": 360,
+        "insert": " ",
+        "startStamp": 288935.0,
+        "endStamp": 289041.0,
+        "pauseTime": 1243.0
+    },
+    {
+        "type": "insert",
+        "retain": 361,
+        "insert": "d",
+        "startStamp": 289846.0,
+        "endStamp": 289919.0,
+        "pauseTime": 911.0
+    },
+    {
+        "type": "insert",
+        "retain": 362,
+        "insert": "u",
+        "startStamp": 289960.0,
+        "endStamp": 290017.0,
+        "pauseTime": 114.0
+    },
+    {
+        "type": "insert",
+        "retain": 363,
+        "insert": "r",
+        "startStamp": 290088.0,
+        "endStamp": 290150.0,
+        "pauseTime": 128.0
+    },
+    {
+        "type": "insert",
+        "retain": 364,
+        "insert": "i",
+        "startStamp": 290167.0,
+        "endStamp": 290225.0,
+        "pauseTime": 79.0
+    },
+    {
+        "type": "insert",
+        "retain": 365,
+        "insert": "n",
+        "startStamp": 290313.0,
+        "endStamp": 290373.0,
+        "pauseTime": 146.0
+    },
+    {
+        "type": "insert",
+        "retain": 366,
+        "insert": "g",
+        "startStamp": 290384.0,
+        "endStamp": 290431.0,
+        "pauseTime": 71.0
+    },
+    {
+        "type": "insert",
+        "retain": 367,
+        "insert": " ",
+        "startStamp": 290587.0,
+        "endStamp": 290632.0,
+        "pauseTime": 203.0
+    },
+    {
+        "type": "insert",
+        "retain": 368,
+        "insert": "p",
+        "startStamp": 292353.0,
+        "endStamp": 292384.0,
+        "pauseTime": 1766.0
+    },
+    {
+        "type": "delete",
+        "retain": 368,
+        "insert": " ",
+        "startStamp": 292644.0,
+        "endStamp": 292686.0,
+        "pauseTime": 291.0
+    },
+    {
+        "type": "insert",
+        "retain": 368,
+        "insert": "l",
+        "startStamp": 292853.0,
+        "endStamp": 292913.0,
+        "pauseTime": 209.0
+    },
+    {
+        "type": "insert",
+        "retain": 369,
+        "insert": "e",
+        "startStamp": 292934.0,
+        "endStamp": 293002.0,
+        "pauseTime": 81.0
+    },
+    {
+        "type": "insert",
+        "retain": 370,
+        "insert": "c",
+        "startStamp": 293108.0,
+        "endStamp": 293176.0,
+        "pauseTime": 174.0
+    },
+    {
+        "type": "insert",
+        "retain": 371,
+        "insert": "t",
+        "startStamp": 293262.0,
+        "endStamp": 293329.0,
+        "pauseTime": 154.0
+    },
+    {
+        "type": "insert",
+        "retain": 372,
+        "insert": "u",
+        "startStamp": 293495.0,
+        "endStamp": 293575.0,
+        "pauseTime": 233.0
+    },
+    {
+        "type": "insert",
+        "retain": 373,
+        "insert": "r",
+        "startStamp": 295719.0,
+        "endStamp": 295816.0,
+        "pauseTime": 2224.0
+    },
+    {
+        "type": "insert",
+        "retain": 374,
+        "insert": "e",
+        "startStamp": 295808.0,
+        "endStamp": 295880.0,
+        "pauseTime": 89.0
+    },
+    {
+        "type": "insert",
+        "retain": 375,
+        "insert": "s",
+        "startStamp": 295997.0,
+        "endStamp": 296067.0,
+        "pauseTime": 189.0
+    },
+    {
+        "type": "insert",
+        "retain": 376,
+        "insert": ".",
+        "startStamp": 297946.0,
+        "endStamp": 298006.0,
+        "pauseTime": 1949.0
+    },
+    {
+        "type": "copy",
+        "retain": 377,
+        "insert": "Schools should encourage face-to-face learning and provide technology only when necessary. By limiting phone use, students can improve concentration and academic performance. ",
+        "startStamp": 305145.0,
+        "endStamp": 305249.0,
+        "pauseTime": 7199.0
+    }
+]

+ 5 - 0
src/router/index.ts

@@ -46,6 +46,11 @@ const router = createRouter({
           name: "profile",
           component: () => import('@/views/Profile.vue')
         },
+        {
+          path: "HeatMap",
+          name: 'HeatMap',
+          component: () => import("../views/HeatMapPage/HeatMap.vue"),
+        },
         {
           path: 'courseSquare',
           name: 'courseSquare',

+ 18 - 0
src/views/CorrectPage/CorrectPage.vue

@@ -47,6 +47,12 @@
             <a :href="scope.row.recordFileUrl" target="_blank">{{ scope.row.recordFileUrl }}</a>
           </template>
         </el-table-column>
+        <!-- update: 行为记录可视化热度图 -->
+        <el-table-column label="热度图">
+          <template #default="scope">
+            <el-button @click="openHeatmap(scope.row)">查看</el-button>
+          </template>
+        </el-table-column>
         <el-table-column prop="time" label="时间"></el-table-column>
         <el-table-column prop="studentId" label="学生 ID"></el-table-column>
       </el-table>
@@ -136,6 +142,18 @@ const getBehaviorRecords = () => {
       })
 }
 
+const openHeatmap = (row: any) => {
+  const { id, assignmentId, studentId } = row;
+  router.push({
+    name: 'HeatMap',
+    // params: {
+    //   id,
+    //   assignmentId,
+    //   studentId
+    // }
+  })
+};
+
 const downloadAllFiles = () => {
   fileList.forEach((item) => {
     const link = document.createElement('a');

+ 292 - 0
src/views/HeatMapPage/HeatMap.vue

@@ -0,0 +1,292 @@
+<template>
+  <div id="HeatMap">
+    <div class="container">
+      <!-- 文本和热度图显示区域 -->
+      <div class="text-container">
+        <div
+            v-for="(line, lineIndex) in formattedLines"
+            :key="lineIndex"
+            class="text-line"
+        >
+          <!-- 显示文本行 -->
+          <span
+              v-for="(char, charIndex) in line.chars"
+              :key="charIndex"
+              class="char"
+          >
+            {{ char }}
+          </span>
+          <!-- 显示热度图 -->
+          <div
+              class="heatmap"
+              :style="{ width: `${line.width}px` }"
+          >
+            <div
+                v-for="(item, itemIndex) in line.pauses"
+                :key="itemIndex"
+                class="heatmap-rect"
+                :style="{
+                backgroundColor: getColor(item.totalPauseTime),
+                left: `${item.position}px`,
+                width: `${heatmapRectWidth}px`,
+                height: `${heatmapRectHeight}px`
+              }"
+                @mouseover="showTooltip(item.totalPauseTime, $event)"
+                @mouseout="hideTooltip"
+            />
+          </div>
+        </div>
+      </div>
+
+      <!-- 颜色图例 -->
+      <div class="legend">
+        <div
+            v-for="(item, index) in colorLegend"
+            :key="index"
+            class="legend-item"
+        >
+          <div
+              class="legend-color"
+              :style="{ backgroundColor: item.color }"
+          />
+          <span>{{ item.label }}</span>
+        </div>
+      </div>
+
+      <!-- 提示框 -->
+      <div
+          v-if="tooltipVisible"
+          class="tooltip"
+          :style="{ left: `${tooltipX}px`, top: `${tooltipY}px` }"
+      >
+        totalPauseTime = {{ tooltipText }}ms
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import {ref, computed} from 'vue'
+// 引入行为记录数据
+import actionData from '@/assets/behavior_records.json'
+
+// 响应式数据 - 控制UI元素尺寸
+const charWidth = ref(12) // 普通字符宽度(像素)
+const spaceWidth = ref(8) // 空格字符宽度(像素)
+const heatmapRectWidth = ref(8) // 热度图矩形宽度(像素)
+const heatmapRectHeight = ref(12) // 热度图矩形高度(像素)
+const heatmapOffset = ref(5) // 热度图与文本的垂直偏移(像素)
+const lineHeight = ref(30) // 文本行高(像素)
+
+// 提示框相关数据
+const tooltipVisible = ref(false)
+const tooltipText = ref('')
+const tooltipX = ref(0)
+const tooltipY = ref(0)
+
+// 定义停顿时间与颜色的映射关系
+const colorLegend = ref([
+  {time: 500, color: '#FFF6CC', label: '≤500ms'},
+  {time: 1000, color: '#FFD699', label: '500-1000ms'},
+  {time: 1500, color: '#FFA64D', label: '1000-1500ms'},
+  {time: 2000, color: '#FF7519', label: '1500-2000ms'},
+  {time: Infinity, color: '#CC2900', label: '≥2000ms'}
+])
+
+// 计算属性 - 处理原始数据并格式化为多行显示
+const formattedLines = computed(() => {
+  // 计算每行最大宽度(适应窗口大小)
+  const maxLineWidth = Math.min(1000, window.innerWidth - 40)
+  // 使用Map存储每个位置的字符、第一次操作的startStamp、最后一次操作的startStamp和保留位置
+  const positionMap = new Map()
+  let lastStartStamp = 0;
+
+  // 处理原始数据,合并相同位置的记录
+  actionData.forEach(item => {
+    // 只处理 insert、delete、copy 类型的数据条目
+    if (['insert', 'delete', 'copy'].includes(item.type)) {
+      const {retain, insert, startStamp} = item
+      // 删除操作显示为空格
+      const char = item.type === 'delete' ? ' ' : insert
+
+      if (positionMap.has(retain)) {
+        // 已有记录,更新字符和最后一次操作的startStamp
+        const record = positionMap.get(retain)
+        record.char = char
+        record.lastStartStamp = startStamp
+      } else {
+        // 新增记录
+        positionMap.set(retain, {
+          char,
+          firstStartStamp: lastStartStamp,
+          lastStartStamp: startStamp,
+          retain
+        })
+      }
+      lastStartStamp = startStamp;
+    }
+  })
+
+  // 计算每个位置的totalPauseTime
+  positionMap.forEach(record => {
+    record.totalPauseTime = record.lastStartStamp - record.firstStartStamp
+  })
+
+  // 将Map转换为数组并按位置排序
+  const finalPositions = Array.from(positionMap.values()).sort((a, b) => a.retain - b.retain)
+  const lines = []
+  // 当前行对象,存储字符、停顿信息和宽度
+  let currentLine = {chars: [], pauses: [], width: 0, retainOffset: 0}
+
+  // 处理每个字符,生成多行显示
+  finalPositions.forEach(item => {
+    // 处理单个字符的函数
+    const processCharacter = (char, isFirstChar = false) => {
+      // 计算字符宽度(空格和普通字符不同)
+      const charWidthVal = char === ' ' ? spaceWidth.value : charWidth.value
+      const nextLineWidth = currentLine.width + charWidthVal
+
+      // 如果添加字符后超过最大宽度且当前行已有内容,则换行
+      if (nextLineWidth > maxLineWidth && currentLine.chars.length > 0) {
+        lines.push(currentLine)
+        // 创建新行,计算保留位置偏移量
+        currentLine = {
+          chars: [],
+          pauses: [],
+          width: 0,
+          retainOffset: lines.reduce((sum, line) => sum + line.chars.length, 0)
+        }
+      }
+
+      // 添加字符到当前行
+      currentLine.chars.push(char)
+      currentLine.width += charWidthVal
+
+      // 如果停顿时间超过500ms且是字符的第一个字符,则记录停顿
+      if (item.totalPauseTime > 500 && isFirstChar) {
+        // 计算热度图矩形位置(字符中心偏左一点)
+        const position = currentLine.chars.length * charWidth.value - (charWidth.value / 1.2)
+        currentLine.pauses.push({
+          retain: item.retain,
+          totalPauseTime: item.totalPauseTime,
+          position
+        })
+      }
+    }
+
+    // 处理多字符插入(如复制粘贴的文本)
+    if (item.char.length > 1) {
+      item.char.split('').forEach((char, index) => {
+        // 只对第一个字符标记停顿
+        processCharacter(char, index === 0)
+      })
+    } else {
+      // 处理单字符插入
+      processCharacter(item.char, true)
+    }
+  })
+
+  // 添加最后一行(如果有内容)
+  if (currentLine.chars.length > 0) {
+    lines.push(currentLine)
+  }
+
+  return lines
+})
+
+// 根据停顿时间获取对应的颜色
+const getColor = (pauseTime) => {
+  // 查找第一个满足 pauseTime <= item.time 的颜色项
+  const legend = colorLegend.value.find(item => pauseTime <= item.time)
+  // 返回找到的颜色,或默认最深的颜色
+  return legend?.color || colorLegend.value[colorLegend.value.length - 1].color
+}
+
+// 显示提示框
+const showTooltip = (totalPauseTime, event) => {
+  tooltipVisible.value = true
+  tooltipText.value = totalPauseTime
+  tooltipX.value = event.clientX + 10
+  tooltipY.value = event.clientY + 10
+}
+
+// 隐藏提示框
+const hideTooltip = () => {
+  tooltipVisible.value = false
+}
+</script>
+
+<style scoped>
+#HeatMap {
+  display: flex;
+  justify-content: center; /* 水平居中 */
+  align-items: center;      /* 垂直居中 */
+  height: 90vh;            /* 占满整个视口高度 */
+  width: 100%;              /* 占满整个宽度 */
+}
+
+.container {
+  max-width: 1000px;
+  margin: 0 auto;
+  padding: 20px;
+  font-family: Arial, sans-serif;
+}
+
+.text-container {
+  position: relative;
+  margin-bottom: 30px;
+}
+
+.text-line {
+  position: relative;
+  margin-bottom: 25px;
+  white-space: nowrap;
+}
+
+.char {
+  display: inline-block;
+  width: v-bind('charWidth + "px"');
+  text-align: center;
+}
+
+.heatmap {
+  position: absolute;
+  bottom: -20px;
+  left: 0;
+  height: v-bind('heatmapRectHeight + "px"');
+}
+
+.heatmap-rect {
+  position: absolute;
+  border-radius: 2px;
+  cursor: pointer;
+}
+
+.legend {
+  display: flex;
+  gap: 15px;
+  margin-top: 50px;
+}
+
+.legend-item {
+  display: flex;
+  align-items: center;
+  gap: 5px;
+}
+
+.legend-color {
+  width: 20px;
+  height: 20px;
+  border-radius: 2px;
+}
+
+.tooltip {
+  position: absolute;
+  background-color: rgba(0, 0, 0, 0.8);
+  color: white;
+  padding: 5px;
+  border-radius: 3px;
+  font-size: 12px;
+  z-index: 10;
+}
+</style>