)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"b899e1a9081af62543d2477d1ed532a127680551","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7904ba49_25574aeb","updated":"2023-06-12 07:25:00.000000000","message":"Hi, Michal, thanks for your careful explanation.","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"f62c8ce15b7b3d90c3edd401d4dd7414b94e788b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"361ec2c3_9a2fe8e2","updated":"2023-06-19 12:47:04.000000000","message":"Another +2 please ?","commit_id":"e5f79036b8dc6905fa48e170e6764c3f33f7fccb"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"ae98b98a6d208ba1c057d3afa7b46bc6dbcf95c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6b904d8a_d3cf47f7","updated":"2023-06-19 14:20:14.000000000","message":"recheck mariadb debian fail","commit_id":"e5f79036b8dc6905fa48e170e6764c3f33f7fccb"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"b432e8d508abb5ff5c613cce8bf68423dfb28a4d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6dd66adf_a6e29778","updated":"2023-06-19 17:17:48.000000000","message":"recheck mariadb fail","commit_id":"e5f79036b8dc6905fa48e170e6764c3f33f7fccb"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"87a39ff48a2fd5e2315eb444b3d1f9c09cf22cbc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c4bac7de_3844bd26","updated":"2023-06-19 10:59:22.000000000","message":"wu.chunyang can you please revote +2 ?","commit_id":"e5f79036b8dc6905fa48e170e6764c3f33f7fccb"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"28efc4e047d976f519a73940f765be046921295f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a9830a7d_ccd6c744","updated":"2023-06-22 09:45:13.000000000","message":"recheck Waiting for rabbitmq to start","commit_id":"f1bb97dd8512faa795b2477e6ee79f7b18aebd9e"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"55cdf0bea78f55a937fd47459fb98bac1078d891","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b137792c_4958476c","updated":"2023-06-22 12:08:23.000000000","message":"recheck cephadm failed, not related","commit_id":"f1bb97dd8512faa795b2477e6ee79f7b18aebd9e"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"74fb68b68f07c565ef2c54d7de8077a3c81c72f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d1d3add5_91127cb6","updated":"2023-06-22 11:04:19.000000000","message":"recheck node failure","commit_id":"f1bb97dd8512faa795b2477e6ee79f7b18aebd9e"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"4e2148d9640c7be3a97351755ff34e9fa9b5e8e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b6f52ac0_a1d29ed1","updated":"2023-06-21 16:29:05.000000000","message":"recheck rabbitmq fix merged","commit_id":"f1bb97dd8512faa795b2477e6ee79f7b18aebd9e"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"e2798d797353e75b075d4130cc3cdbc372c9feda","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5624804b_24d33a3a","updated":"2023-06-21 12:27:14.000000000","message":"two +2 , adding +W","commit_id":"f1bb97dd8512faa795b2477e6ee79f7b18aebd9e"}],"ansible/roles/octavia/defaults/main.yml":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"9b2e9c8ebf7fadbbfbe55e45ee780ce11d452486","unresolved":true,"context_lines":[{"line_number":305,"context_line":"    name: \"lb-mgmt-sec-grp\""},{"line_number":306,"context_line":"    enabled: true"},{"line_number":307,"context_line":"    rules:"},{"line_number":308,"context_line":"      - protocol: \"{{ \u0027ipv6-\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027\u0027 }}icmp\""},{"line_number":309,"context_line":"      - protocol: tcp"},{"line_number":310,"context_line":"        src_port: 22"},{"line_number":311,"context_line":"        dst_port: 22"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"eccb80b0_56296789","line":308,"range":{"start_line":308,"start_character":79,"end_line":308,"end_character":81},"updated":"2023-06-12 02:21:05.000000000","message":"what about {{ \u0027ipv6-\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027icmp\u0027 }} ?","commit_id":"af0d25547cfc44a135aaa6582033b11b5868ad03"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"a7a9d0a544f9abecc0f4fef2c129cb5e8216f4c4","unresolved":false,"context_lines":[{"line_number":305,"context_line":"    name: \"lb-mgmt-sec-grp\""},{"line_number":306,"context_line":"    enabled: true"},{"line_number":307,"context_line":"    rules:"},{"line_number":308,"context_line":"      - protocol: \"{{ \u0027ipv6-\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027\u0027 }}icmp\""},{"line_number":309,"context_line":"      - protocol: tcp"},{"line_number":310,"context_line":"        src_port: 22"},{"line_number":311,"context_line":"        dst_port: 22"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"71078ad4_9dd849bb","line":308,"range":{"start_line":308,"start_character":79,"end_line":308,"end_character":81},"in_reply_to":"43b4c6d2_a08ac8e4","updated":"2023-06-12 08:43:54.000000000","message":"Done","commit_id":"af0d25547cfc44a135aaa6582033b11b5868ad03"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"31680f1ae8ecd4ffb762f3038d033ddb51f6cc23","unresolved":true,"context_lines":[{"line_number":305,"context_line":"    name: \"lb-mgmt-sec-grp\""},{"line_number":306,"context_line":"    enabled: true"},{"line_number":307,"context_line":"    rules:"},{"line_number":308,"context_line":"      - protocol: \"{{ \u0027ipv6-\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027\u0027 }}icmp\""},{"line_number":309,"context_line":"      - protocol: tcp"},{"line_number":310,"context_line":"        src_port: 22"},{"line_number":311,"context_line":"        dst_port: 22"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"43b4c6d2_a08ac8e4","line":308,"range":{"start_line":308,"start_character":79,"end_line":308,"end_character":81},"in_reply_to":"c64b516e_14dc1db3","updated":"2023-06-12 07:43:13.000000000","message":"I\u0027d prefer this as more easily readable:\n\nprotocol: \"{{ \u0027ipv6-icmp\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027icmp\u0027 }}\"","commit_id":"af0d25547cfc44a135aaa6582033b11b5868ad03"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"082659986857c6e2d453289d5a49556921bac73f","unresolved":true,"context_lines":[{"line_number":305,"context_line":"    name: \"lb-mgmt-sec-grp\""},{"line_number":306,"context_line":"    enabled: true"},{"line_number":307,"context_line":"    rules:"},{"line_number":308,"context_line":"      - protocol: \"{{ \u0027ipv6-\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027\u0027 }}icmp\""},{"line_number":309,"context_line":"      - protocol: tcp"},{"line_number":310,"context_line":"        src_port: 22"},{"line_number":311,"context_line":"        dst_port: 22"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c64b516e_14dc1db3","line":308,"range":{"start_line":308,"start_character":79,"end_line":308,"end_character":81},"in_reply_to":"eccb80b0_56296789","updated":"2023-06-12 07:15:01.000000000","message":"There is a difference between ipv4 and ipv6 in icmp protocol name. For example while ipv4/ipv6 tcp port 22 can be created via ansible module as below (tcp, port_min, port_max, ethertype): \n\nIPv4 - \n\n- name: Add rules for security groups\n  become: true\n  kolla_toolbox:\n    module_name: os_security_group_rule\n    module_args:\n      .\n      .\n      .\n      .\n      protocol: \"tcp\"   \u003c\u003c\u003c\n      port_range_min: \"22\"\n      port_range_max: \"22\"\n      ethertype: \"IPv4\"  \u003c\u003c\u003c\n      .\n      .\n      .\n      \nFor IPv6 it is not possible to define only protocol: icmp and ethertype: IPv6 because this is generating error and not working, there is need to define explicitly icmp (IPv4) and ipv6-icmp (IPv6). For other protocols it normally works. This was tested by me on local env.\n\nTLDR;\n\nIPv4 - icmp, IPv6 - ipv6-icmp\n\nThere is only one question :\n\n -   protocol: \"{{ \u0027ipv6\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027\u0027 }}icmp\"\n \n or \n \n -  protocol: \"{{ \u0027ipv6-icmp\u0027 if octavia_network_address_family \u003d\u003d \u0027ipv6\u0027 else \u0027icmp\u0027 }}\"\n \n Which do you prefer ?","commit_id":"af0d25547cfc44a135aaa6582033b11b5868ad03"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"31680f1ae8ecd4ffb762f3038d033ddb51f6cc23","unresolved":true,"context_lines":[{"line_number":350,"context_line":"    no_gateway_ip: yes"},{"line_number":351,"context_line":"    enable_dhcp: yes"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"octavia_amp_router:"},{"line_number":354,"context_line":"  name: lb-mgmt-router"},{"line_number":355,"context_line":"  subnet: \"{{ octavia_amp_network[\u0027subnet\u0027][\u0027name\u0027] }}\""},{"line_number":356,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"e76b41b4_e8403fa6","line":353,"updated":"2023-06-12 07:43:13.000000000","message":"Nit: place this after octavia_amp_network_cidr for ordering?","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"a7a9d0a544f9abecc0f4fef2c129cb5e8216f4c4","unresolved":false,"context_lines":[{"line_number":350,"context_line":"    no_gateway_ip: yes"},{"line_number":351,"context_line":"    enable_dhcp: yes"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"octavia_amp_router:"},{"line_number":354,"context_line":"  name: lb-mgmt-router"},{"line_number":355,"context_line":"  subnet: \"{{ octavia_amp_network[\u0027subnet\u0027][\u0027name\u0027] }}\""},{"line_number":356,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3585b9f9_7dc36be7","line":353,"in_reply_to":"e76b41b4_e8403fa6","updated":"2023-06-12 08:43:54.000000000","message":"Done","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"}],"ansible/roles/octavia/tasks/prepare.yml":[{"author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"change_message_id":"9b2e9c8ebf7fadbbfbe55e45ee780ce11d452486","unresolved":true,"context_lines":[{"line_number":147,"context_line":"  become: true"},{"line_number":148,"context_line":"  kolla_toolbox:"},{"line_number":149,"context_line":"    module_name: openstack.cloud.router"},{"line_number":150,"context_line":"    module_args:"},{"line_number":151,"context_line":"      auth: \"{{ octavia_user_auth }}\""},{"line_number":152,"context_line":"      cacert: \"{{ openstack_cacert }}\""},{"line_number":153,"context_line":"      endpoint_type: \"{{ openstack_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0f5a3e30_4128d29e","line":150,"updated":"2023-06-12 02:21:05.000000000","message":"container_engine: \"{{ kolla_container_engine }}\"?\n\nBTW, i am not familiar with IPV6, Is the router used for allocating ipv6 address?","commit_id":"af0d25547cfc44a135aaa6582033b11b5868ad03"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"082659986857c6e2d453289d5a49556921bac73f","unresolved":false,"context_lines":[{"line_number":147,"context_line":"  become: true"},{"line_number":148,"context_line":"  kolla_toolbox:"},{"line_number":149,"context_line":"    module_name: openstack.cloud.router"},{"line_number":150,"context_line":"    module_args:"},{"line_number":151,"context_line":"      auth: \"{{ octavia_user_auth }}\""},{"line_number":152,"context_line":"      cacert: \"{{ openstack_cacert }}\""},{"line_number":153,"context_line":"      endpoint_type: \"{{ openstack_interface }}\""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"182e68f8_6549b00e","line":150,"in_reply_to":"0f5a3e30_4128d29e","updated":"2023-06-12 07:15:01.000000000","message":"Yes, router is on lb-mgmt-net/lb-mgmt-subnet (has interfaces from this network), without gateway to another network, only one end is connected to this network.\n\nThis is needed for IPv6 SLAAC\n\nhttps://www.networkacademy.io/ccna/ipv6/stateless-address-autoconfiguration-slaac\n\nI understand that you are not familiar with ipv6 ...but for octavia it\u0027s very good choice, because you don\u0027t need think about size of ipv4 subnet ... \n\nit\u0027s very unpleasant when you run out of ipv4 addresses for amphoras and you need to somehow reconfigure octavia and migrate all amphoras, this will not happen with ipv6 subnet.\n\nThis approach is also used in ubuntu\u0027s juju charms.","commit_id":"af0d25547cfc44a135aaa6582033b11b5868ad03"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"31680f1ae8ecd4ffb762f3038d033ddb51f6cc23","unresolved":true,"context_lines":[{"line_number":88,"context_line":"      protocol: \"{{ item.1.protocol }}\""},{"line_number":89,"context_line":"      port_range_min: \"{{ item.1.src_port | default(omit) }}\""},{"line_number":90,"context_line":"      port_range_max: \"{{ item.1.dst_port | default(omit) }}\""},{"line_number":91,"context_line":"      ethertype: \"IPv{{ octavia_network_address_family[-1] }}\""},{"line_number":92,"context_line":"  with_subelements:"},{"line_number":93,"context_line":"    - \"{{ octavia_amp_security_groups }}\""},{"line_number":94,"context_line":"    - rules"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"92e91181_6429e3e5","line":91,"updated":"2023-06-12 07:43:13.000000000","message":"This looks so hacky, but I\u0027m not sure what a better solution would be. Maybe adapt the function in kolla_toolbox to accept also the lower case variant? Or even in the ansible collection?","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"70223551ed1045614a8c4fbf0a244287570c63e0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"      protocol: \"{{ item.1.protocol }}\""},{"line_number":89,"context_line":"      port_range_min: \"{{ item.1.src_port | default(omit) }}\""},{"line_number":90,"context_line":"      port_range_max: \"{{ item.1.dst_port | default(omit) }}\""},{"line_number":91,"context_line":"      ethertype: \"IPv{{ octavia_network_address_family[-1] }}\""},{"line_number":92,"context_line":"  with_subelements:"},{"line_number":93,"context_line":"    - \"{{ octavia_amp_security_groups }}\""},{"line_number":94,"context_line":"    - rules"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2b4b513d_cddfa8f0","line":91,"in_reply_to":"68f993da_78f1d1b5","updated":"2023-06-15 10:56:27.000000000","message":"Ack","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"a7a9d0a544f9abecc0f4fef2c129cb5e8216f4c4","unresolved":true,"context_lines":[{"line_number":88,"context_line":"      protocol: \"{{ item.1.protocol }}\""},{"line_number":89,"context_line":"      port_range_min: \"{{ item.1.src_port | default(omit) }}\""},{"line_number":90,"context_line":"      port_range_max: \"{{ item.1.dst_port | default(omit) }}\""},{"line_number":91,"context_line":"      ethertype: \"IPv{{ octavia_network_address_family[-1] }}\""},{"line_number":92,"context_line":"  with_subelements:"},{"line_number":93,"context_line":"    - \"{{ octavia_amp_security_groups }}\""},{"line_number":94,"context_line":"    - rules"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"68f993da_78f1d1b5","line":91,"in_reply_to":"92e91181_6429e3e5","updated":"2023-06-12 08:43:54.000000000","message":"Well, I was wondering how to deal with this and I\u0027ve chosen this approach. Openstack cloud collection, module os_security_group_rule only accept IPv4/IPv6, ipv4/ipv6 will generate error and will fail. Kolla-address.py accept both variants because it\u0027s handled in code : \n\n    address_family \u003d host.get(network_name + \u0027_address_family\u0027)\n    if address_family is None:\n        raise FilterError(\"Address family undefined \"\n                          \"for network \u0027{network_name}\u0027 \"\n                          \"(set \u0027{network_name}_address_family\u0027)\"\n                          .format(network_name\u003dnetwork_name))\n    address_family \u003d address_family.lower()\n    if address_family not in [\u0027ipv4\u0027, \u0027ipv6\u0027]:\n    .\n    .\n    .\n    .\n    .\n\nSo, we can replace all occurences of ipv4/ipv6 string to IPv4/IPv6 in kolla-ansible code and by default it will work, but we will not cover user overrides ...so upstream openstack cloud collections will still fail.\n\nSo, there are two solutions:\n\n1, Fix os_security_group_rule module in openstack cloud collections upstream\n2, Use the last character from all possible strings - IPv4, IPv6, ipv4, ipv6  and \n   generate always IPv4/IPv6 for openstack cloud collections os_security_group_rule \n   module as it is now.\n   \nI think we should merge as it is now and send openstack cloud collection fix in parallel, i don\u0027t see another option, do you ?","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"31680f1ae8ecd4ffb762f3038d033ddb51f6cc23","unresolved":true,"context_lines":[{"line_number":143,"context_line":"  run_once: True"},{"line_number":144,"context_line":"  delegate_to: \"{{ groups[\u0027octavia-api\u0027][0] }}\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"- name: Create loadbalancer router for IPv6 SLAAC"},{"line_number":147,"context_line":"  become: true"},{"line_number":148,"context_line":"  kolla_toolbox:"},{"line_number":149,"context_line":"    container_engine: \"{{ kolla_container_engine }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"a9cba1bd_e5088a75","line":146,"updated":"2023-06-12 07:43:13.000000000","message":"If you really only want this for SLAAC, you need to add a check for octavia_amp_network[\u0027subnet\u0027][\u0027ipv6_ra_mode\u0027] to the when:\n\nOtherwise drop the \"SLAAC\" from the name here. I actually think dhcpv6_stateful is a better ra_mode in most circumstances, not sure whether it would work without a router. There was also some discussion in neutron about having RAs getting generated without a router in isolated networks, but I don\u0027t remember the outcome.\n\nMaybe we want to have an overridable flag for this that just defaults to the below when: conditions?","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"2e5cfbda36acffd10a8b307bbd00f77e1c1125f8","unresolved":false,"context_lines":[{"line_number":143,"context_line":"  run_once: True"},{"line_number":144,"context_line":"  delegate_to: \"{{ groups[\u0027octavia-api\u0027][0] }}\""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"- name: Create loadbalancer router for IPv6 SLAAC"},{"line_number":147,"context_line":"  become: true"},{"line_number":148,"context_line":"  kolla_toolbox:"},{"line_number":149,"context_line":"    container_engine: \"{{ kolla_container_engine }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"74f72d31_4ef34f86","line":146,"in_reply_to":"a9cba1bd_e5088a75","updated":"2023-06-12 08:47:33.000000000","message":"SLAAC removed, i think the router should be created always when octavia ipv6 is used to support all modes, don\u0027t need to propose new variable as octavia_network_address_family already exist and you can switch if it is ipv4/ipv6 no router needed/router needed.","commit_id":"33b8654f6f3fb4cc293020780f98e99b176657a0"}]}
