)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"18551179d6eb04093852894a48c5ce4523e494a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d343efd4_90f6a686","updated":"2022-10-08 22:57:06.000000000","message":"Thanks for the patch.\nI never dig in the PAuth feature before, not sure if my comment is relevant.","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f0747755_42e25aa3","updated":"2022-10-09 14:45:32.000000000","message":"Thanks for the answer.\nWe don\u0027t have a way to query GDB for its version or to detect it, so we cannot implement any adaptive behavior. Adding an OpenOCD command is the easy way to go.","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"37ee15ca_e431fae0","updated":"2022-10-11 12:13:18.000000000","message":"Thanks for reviewing","commit_id":"d8f9a3ac17f3893251fac0f02f9ba3eae08f392e"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"05699c1dea9bbe827a40e594b70e7f1c30c57941","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"97a44fb9_b8b3d7f3","updated":"2022-10-13 20:59:24.000000000","message":"Thanks!","commit_id":"d8f9a3ac17f3893251fac0f02f9ba3eae08f392e"}],"doc/openocd.texi":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":true,"context_lines":[{"line_number":10295,"context_line":"the target, the exception catch must be disabled again with @command{$target_name catch_exc off}."},{"line_number":10296,"context_line":"Issuing the command without options prints the current configuration."},{"line_number":10297,"context_line":"@end deffn"},{"line_number":10298,"context_line":""},{"line_number":10299,"context_line":"@section EnSilica eSi-RISC Architecture"},{"line_number":10300,"context_line":""},{"line_number":10301,"context_line":"eSi-RISC is a highly configurable microprocessor architecture for embedded systems"}],"source_content_type":"text/x-texinfo","patch_set":2,"id":"a379369e_7ee61739","line":10298,"updated":"2022-10-09 14:45:32.000000000","message":"the command \u0027pauth\u0027 should be documented here:\n @deffn {Config Command} {$target_name pauth} [@option{off}|@option{on}]\n description\n @end deffn","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[{"line_number":10295,"context_line":"the target, the exception catch must be disabled again with @command{$target_name catch_exc off}."},{"line_number":10296,"context_line":"Issuing the command without options prints the current configuration."},{"line_number":10297,"context_line":"@end deffn"},{"line_number":10298,"context_line":""},{"line_number":10299,"context_line":"@section EnSilica eSi-RISC Architecture"},{"line_number":10300,"context_line":""},{"line_number":10301,"context_line":"eSi-RISC is a highly configurable microprocessor architecture for embedded systems"}],"source_content_type":"text/x-texinfo","patch_set":2,"id":"1de3b4d2_ca3eb9f2","line":10298,"in_reply_to":"a379369e_7ee61739","updated":"2022-10-11 12:13:18.000000000","message":"Done","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"}],"src/target/armv8.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"18551179d6eb04093852894a48c5ce4523e494a7","unresolved":true,"context_lines":[{"line_number":114,"context_line":"\treturn \"UNRECOGNIZED\";"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"static int armv8_get_pauth_mask(struct armv8_common *armv8, uint64_t *mask);"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"static int armv8_read_reg(struct armv8_common *armv8, int regnum, uint64_t *regval)"},{"line_number":120,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"c062f9ac_b059deff","line":117,"updated":"2022-10-08 22:57:06.000000000","message":"can you please move the new function here, so we avoid this function prototype?","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\treturn \"UNRECOGNIZED\";"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"static int armv8_get_pauth_mask(struct armv8_common *armv8, uint64_t *mask);"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"static int armv8_read_reg(struct armv8_common *armv8, int regnum, uint64_t *regval)"},{"line_number":120,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"f73991ad_1547f37f","line":117,"in_reply_to":"6f188726_4b4c07bc","updated":"2022-10-09 14:45:32.000000000","message":"Ooops, sorry, I missed the extra dependencies.\nThanks for the reordering of the function, I was not expecting so much extra work from your side.","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"76f330349658ebaa47399d6f83799ee9a78ad7ca","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\treturn \"UNRECOGNIZED\";"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"static int armv8_get_pauth_mask(struct armv8_common *armv8, uint64_t *mask);"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"static int armv8_read_reg(struct armv8_common *armv8, int regnum, uint64_t *regval)"},{"line_number":120,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"6f188726_4b4c07bc","line":117,"in_reply_to":"c062f9ac_b059deff","updated":"2022-10-09 11:56:08.000000000","message":"`armv8_get_pauth_mask()` has dependencies like `armv8_read_ttbcr()`. Moved these functions here.","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[{"line_number":114,"context_line":"\treturn \"UNRECOGNIZED\";"},{"line_number":115,"context_line":"}"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"static int armv8_get_pauth_mask(struct armv8_common *armv8, uint64_t *mask);"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"static int armv8_read_reg(struct armv8_common *armv8, int regnum, uint64_t *regval)"},{"line_number":120,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"6146b226_f45c6ea5","line":117,"in_reply_to":"f73991ad_1547f37f","updated":"2022-10-11 12:13:18.000000000","message":"No problem :)","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"18551179d6eb04093852894a48c5ce4523e494a7","unresolved":true,"context_lines":[{"line_number":1121,"context_line":"\t\tcommand_print(CMD, \"Unknown option: %s\", CMD_ARGV[0]);"},{"line_number":1122,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1123,"context_line":"\t}"},{"line_number":1124,"context_line":"\tarmv8-\u003eenable_pauth \u003d n-\u003evalue;"},{"line_number":1125,"context_line":"\treturn ERROR_OK;"},{"line_number":1126,"context_line":"}"},{"line_number":1127,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"0d92535d_1f5757ec","line":1124,"updated":"2022-10-08 22:57:06.000000000","message":"why we need a config command to set armv8-\u003eenable_pauth?\nIsn\u0027t it an architectural feature?\nCan this flag be probed in aarch64_examine(), as specified in ARM DDI 0487 ?\n\u003e Pointer authentication is implemented if the value of at least one\n\u003e of ID_AA64ISAR1_EL1.{APA, API, GPA, GPI} are not 0b0000.","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"76f330349658ebaa47399d6f83799ee9a78ad7ca","unresolved":true,"context_lines":[{"line_number":1121,"context_line":"\t\tcommand_print(CMD, \"Unknown option: %s\", CMD_ARGV[0]);"},{"line_number":1122,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1123,"context_line":"\t}"},{"line_number":1124,"context_line":"\tarmv8-\u003eenable_pauth \u003d n-\u003evalue;"},{"line_number":1125,"context_line":"\treturn ERROR_OK;"},{"line_number":1126,"context_line":"}"},{"line_number":1127,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"9bac8a43_0a654f72","line":1124,"in_reply_to":"0d92535d_1f5757ec","updated":"2022-10-09 11:56:08.000000000","message":"This is to avoid issues in the current release of GDB when users use arm cpus which implements pauth features but the users do not use pauth features.\n\nGDB asks OpenOCD for the list of supported registers at the initialization of connection with OpenOCD.\nThe current release of GDB has a bug and GDB crashes if OpenOCD returns the pauth related registers.\nGDB crashes even if the target does not execute pauth related instructions like `paciasp` because GDB crashes at the initialization stage.\nThis issue has been fixed but not yet released.\nPeople who want to use pauth features can build the latest GDB.\nHowever, I think there are people who use arm cpus which have pauth features but do not enable pauth features. In such a case, they probably do not want to build the latest GDB.\nThis is the reason why I added the command and disabled the pauth by default. We can remove this command in the future.\n\nDo you have any suggestions for this issue?\n\n\nNote that the current GDB does not remove the pauth signature of EL1 correctly.\nI sent an email to GDB mailing list. They said they are working on it now and it will be fixed soon.\nhttps://sourceware.org/pipermail/gdb-patches/2022-October/192305.html","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"\t\tcommand_print(CMD, \"Unknown option: %s\", CMD_ARGV[0]);"},{"line_number":1122,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1123,"context_line":"\t}"},{"line_number":1124,"context_line":"\tarmv8-\u003eenable_pauth \u003d n-\u003evalue;"},{"line_number":1125,"context_line":"\treturn ERROR_OK;"},{"line_number":1126,"context_line":"}"},{"line_number":1127,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"53edade7_cb8c41f5","line":1124,"in_reply_to":"63cb46dd_e38a2517","updated":"2022-10-11 12:13:18.000000000","message":"The bug that causes GDB to crash is fixed\nhttps://sourceware.org/git/?p\u003dbinutils-gdb.git;a\u003dcommit;h\u003d1ba3a3222039eb2576d29c9fd3af444f59fa51d2\nIt should be released in the next version (12.2 or 13.1).\n\nFor EL1 issue, they said they have an upcoming patch. Hopefully, it will be fixed in the next version.","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":false,"context_lines":[{"line_number":1121,"context_line":"\t\tcommand_print(CMD, \"Unknown option: %s\", CMD_ARGV[0]);"},{"line_number":1122,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1123,"context_line":"\t}"},{"line_number":1124,"context_line":"\tarmv8-\u003eenable_pauth \u003d n-\u003evalue;"},{"line_number":1125,"context_line":"\treturn ERROR_OK;"},{"line_number":1126,"context_line":"}"},{"line_number":1127,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":1,"id":"63cb46dd_e38a2517","line":1124,"in_reply_to":"9bac8a43_0a654f72","updated":"2022-10-09 14:45:32.000000000","message":"Clear. But this should be better explained in the command\u0027s help or in the documentation.\nDo you expect this to be fixed in GDB 12.2 or 13.x?\nMaybe it\u0027s fair enough to state \"broken till gdb 12.1, going to be fixed\", so no user try to enable it on a wrong gdb version.","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"18551179d6eb04093852894a48c5ce4523e494a7","unresolved":true,"context_lines":[{"line_number":1696,"context_line":"\t\t\tLOG_ERROR(\"unable to allocate reg type list\");"},{"line_number":1697,"context_line":""},{"line_number":1698,"context_line":"\t\tif (i \u003d\u003d ARMV8_PAUTH_CMASK || i \u003d\u003d ARMV8_PAUTH_DMASK)"},{"line_number":1699,"context_line":"\t\t\treg_list[i].hidden \u003d (int)!armv8-\u003eenable_pauth;"},{"line_number":1700,"context_line":"\t}"},{"line_number":1701,"context_line":""},{"line_number":1702,"context_line":"\tarm-\u003ecpsr \u003d reg_list + ARMV8_XPSR;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"87faa96a_c7fa01fb","line":1699,"updated":"2022-10-08 22:57:06.000000000","message":"why the cast to \u0027int\u0027?\nstruct reg::hidden is of type \u0027bool\u0027!","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"76f330349658ebaa47399d6f83799ee9a78ad7ca","unresolved":false,"context_lines":[{"line_number":1696,"context_line":"\t\t\tLOG_ERROR(\"unable to allocate reg type list\");"},{"line_number":1697,"context_line":""},{"line_number":1698,"context_line":"\t\tif (i \u003d\u003d ARMV8_PAUTH_CMASK || i \u003d\u003d ARMV8_PAUTH_DMASK)"},{"line_number":1699,"context_line":"\t\t\treg_list[i].hidden \u003d (int)!armv8-\u003eenable_pauth;"},{"line_number":1700,"context_line":"\t}"},{"line_number":1701,"context_line":""},{"line_number":1702,"context_line":"\tarm-\u003ecpsr \u003d reg_list + ARMV8_XPSR;"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"da944a3c_702e3397","line":1699,"in_reply_to":"87faa96a_c7fa01fb","updated":"2022-10-09 11:56:08.000000000","message":"Done","commit_id":"c4aa946fce0f1b2a6c38777178e24bb42a086212"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":true,"context_lines":[{"line_number":182,"context_line":"\treturn retval;"},{"line_number":183,"context_line":"}"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"static __attribute__((unused)) int armv8_read_ttbcr(struct target *target)"},{"line_number":186,"context_line":"{"},{"line_number":187,"context_line":"\tstruct armv8_common *armv8 \u003d target_to_armv8(target);"},{"line_number":188,"context_line":"\tstruct arm_dpm *dpm \u003d armv8-\u003earm.dpm;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"d30d5b56_687e9608","line":185,"updated":"2022-10-09 14:45:32.000000000","message":"this function is now in use. Please drop the attribute \"unused\"","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\treturn retval;"},{"line_number":183,"context_line":"}"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"static __attribute__((unused)) int armv8_read_ttbcr(struct target *target)"},{"line_number":186,"context_line":"{"},{"line_number":187,"context_line":"\tstruct armv8_common *armv8 \u003d target_to_armv8(target);"},{"line_number":188,"context_line":"\tstruct arm_dpm *dpm \u003d armv8-\u003earm.dpm;"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"673eed7b_eb6d4bda","line":185,"in_reply_to":"d30d5b56_687e9608","updated":"2022-10-11 12:13:18.000000000","message":"Done","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":true,"context_lines":[{"line_number":1118,"context_line":"\tif (!n-\u003ename) {"},{"line_number":1119,"context_line":"\t\tcommand_print(CMD, \"Unknown option: %s\", CMD_ARGV[0]);"},{"line_number":1120,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1121,"context_line":"\t}"},{"line_number":1122,"context_line":"\tarmv8-\u003eenable_pauth \u003d n-\u003evalue;"},{"line_number":1123,"context_line":"\treturn ERROR_OK;"},{"line_number":1124,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"a054bc24_0deb237f","line":1121,"updated":"2022-10-09 14:45:32.000000000","message":"You can simplify the command implementation using existing helper handle_command_parse_bool.\n COMMAND_HANDLER(armv8_pauth_command)\n {\n   struct target *target \u003d get_current_target(CMD_CTX);\n   struct armv8_common *armv8 \u003d target_to_armv8(target);\n   return CALL_COMMAND_HANDLER(handle_command_parse_bool, \u0026armv8-\u003eenable_pauth,\n     \"pauth feature\");\n }\n\nthis makes the command print the current value of armv8-\u003eenable_pauth when no argument is passed. So the syntax in help should report\n .usage \u003d \"[on|off]\",\n\nin doc I have already suggested the use of square brackets for the optional argument.","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"\tif (!n-\u003ename) {"},{"line_number":1119,"context_line":"\t\tcommand_print(CMD, \"Unknown option: %s\", CMD_ARGV[0]);"},{"line_number":1120,"context_line":"\t\treturn ERROR_FAIL;"},{"line_number":1121,"context_line":"\t}"},{"line_number":1122,"context_line":"\tarmv8-\u003eenable_pauth \u003d n-\u003evalue;"},{"line_number":1123,"context_line":"\treturn ERROR_OK;"},{"line_number":1124,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"4cd36474_c115d201","line":1121,"in_reply_to":"a054bc24_0deb237f","updated":"2022-10-11 12:13:18.000000000","message":"Done","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"3197ed396daaff4b88d12c41c89c97b2eaa48d9c","unresolved":true,"context_lines":[{"line_number":1796,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":1797,"context_line":"\t\t.help \u003d \"enable/disable providing 8-bytes mask to \""},{"line_number":1798,"context_line":"\t\t\t\"remove signature bits added by pointer authentication.\""},{"line_number":1799,"context_line":"\t\t\t\"Current release of GDB has issues. \""},{"line_number":1800,"context_line":"\t\t\t\"Consider using the head of GDB source tree to use \""},{"line_number":1801,"context_line":"\t\t\t\"the pauth feature.\","},{"line_number":1802,"context_line":"\t\t.usage \u003d \"\u003con|off\u003e\","}],"source_content_type":"text/x-csrc","patch_set":2,"id":"426db664_ce03975d","line":1799,"updated":"2022-10-09 14:45:32.000000000","message":"In one year nobody will remember which was the current release. Put here version 12.1","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"},{"author":{"_account_id":1002050,"name":"Koudai Iwahori","email":"koudai@google.com","username":"koudai"},"change_message_id":"234f3c5281f677a2bc92177bcbfa279b134bdc37","unresolved":false,"context_lines":[{"line_number":1796,"context_line":"\t\t.mode \u003d COMMAND_CONFIG,"},{"line_number":1797,"context_line":"\t\t.help \u003d \"enable/disable providing 8-bytes mask to \""},{"line_number":1798,"context_line":"\t\t\t\"remove signature bits added by pointer authentication.\""},{"line_number":1799,"context_line":"\t\t\t\"Current release of GDB has issues. \""},{"line_number":1800,"context_line":"\t\t\t\"Consider using the head of GDB source tree to use \""},{"line_number":1801,"context_line":"\t\t\t\"the pauth feature.\","},{"line_number":1802,"context_line":"\t\t.usage \u003d \"\u003con|off\u003e\","}],"source_content_type":"text/x-csrc","patch_set":2,"id":"9238cd35_90d12c53","line":1799,"in_reply_to":"426db664_ce03975d","updated":"2022-10-11 12:13:18.000000000","message":"Done","commit_id":"c068e035dc6e6082e5154bffab450b1defb0d78d"}]}
