How can I merge two NAV350 LiDAR units for slam?

Hello, I want to merge two NAV350 units for autonomous robot navigation. The IP and port of the NAV350s mounted on the robot are as follows.
<Front_Nav350>
IP: <IP_ADDRESS>
Port:2112
<Rear_Nav350>
IP: <IP_ADDRESS>
Port:2112

I successfully received each set of scan data using the roslaunch sick_scan_xd sick_nav_350.launch command, and I was also able to receive them simultaneously with some modifications to the code. However, when trying to merge them using the sick_multiscan.launch command, an error occurred and it failed.
[ INFO] [1715830988.130380150]: CustomPointCloudConfiguration(cloud_unstructured_segments): coordinate_notation = 0
[ INFO] [1715830988.130390728]: CustomPointCloudConfiguration(cloud_unstructured_segments): update_method = 1
[ INFO] [1715830988.130401701]: CustomPointCloudConfiguration(cloud_unstructured_segments): fields_enabled = i,x,y,z
[ INFO] [1715830988.130410534]: CustomPointCloudConfiguration(cloud_unstructured_segments): echos_enabled = 0,1,2
[ INFO] [1715830988.130422068]: CustomPointCloudConfiguration(cloud_unstructured_segments): layers_enabled = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
[ INFO] [1715830988.130433732]: CustomPointCloudConfiguration(cloud_unstructured_segments): reflector_enabled = 0,1
[ INFO] [1715830988.130442253]: CustomPointCloudConfiguration(cloud_unstructured_segments): infringed_enabled = 0,1
[ INFO] [1715830988.130462819]: CustomPointCloudConfiguration(cloud_unstructured_segments): range_filter = (0.050,999.000,1)
[ INFO] [1715830988.130886374]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): publish = 1
[ INFO] [1715830988.130899825]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): topic = /cloud_unstructured_fullframe
[ INFO] [1715830988.130911883]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): frameid = world
[ INFO] [1715830988.130921131]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): coordinate_notation = 0
[ INFO] [1715830988.130928769]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): update_method = 0
[ INFO] [1715830988.130939754]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): fields_enabled = i,x,y,z
[ INFO] [1715830988.130948515]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): echos_enabled = 0,1,2
[ INFO] [1715830988.130958907]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): layers_enabled = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
[ INFO] [1715830988.130967100]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): reflector_enabled = 0,1
[ INFO] [1715830988.130974971]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): infringed_enabled = 0,1
[ INFO] [1715830988.130986573]: CustomPointCloudConfiguration(cloud_unstructured_fullframe): range_filter = (0.050,999.000,1)
[ INFO] [1715830988.131389000]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): publish = 1
[ INFO] [1715830988.131403066]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): topic = /cloud_polar_unstructured_segments
[ INFO] [1715830988.131409937]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): frameid = world
[ INFO] [1715830988.131421478]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): coordinate_notation = 1
[ INFO] [1715830988.131428212]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): update_method = 1
[ INFO] [1715830988.131438438]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): fields_enabled = azimuth,elevation,i,range
[ INFO] [1715830988.131446936]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): echos_enabled = 0,1,2
[ INFO] [1715830988.131457318]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): layers_enabled = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
[ INFO] [1715830988.131467818]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): reflector_enabled = 0,1
[ INFO] [1715830988.131475874]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): infringed_enabled = 0,1
[ INFO] [1715830988.131487752]: CustomPointCloudConfiguration(cloud_polar_unstructured_segments): range_filter = (0.050,999.000,1)
[ INFO] [1715830988.131879975]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): publish = 1
[ INFO] [1715830988.131893893]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): topic = /cloud_polar_unstructured_fullframe
[ INFO] [1715830988.131900788]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): frameid = world
[ INFO] [1715830988.131912280]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): coordinate_notation = 1
[ INFO] [1715830988.131919527]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): update_method = 0
[ INFO] [1715830988.131928562]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): fields_enabled = azimuth,elevation,i,range
[ INFO] [1715830988.131937308]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): echos_enabled = 0,1,2
[ INFO] [1715830988.131947817]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): layers_enabled = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
[ INFO] [1715830988.131956916]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): reflector_enabled = 0,1
[ INFO] [1715830988.131965331]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): infringed_enabled = 0,1
[ INFO] [1715830988.131976802]: CustomPointCloudConfiguration(cloud_polar_unstructured_fullframe): range_filter = (0.050,999.000,1)
[ INFO] [1715830988.132363303]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): publish = 1
[ INFO] [1715830988.132379386]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): topic = /cloud_all_fields_fullframe
[ INFO] [1715830988.132387792]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): frameid = world
[ INFO] [1715830988.132397073]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): coordinate_notation = 3
[ INFO] [1715830988.132404488]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): update_method = 0
[ INFO] [1715830988.132414768]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): fields_enabled = azimuth,echo,elevation,i,layer,range,reflector,x,y,z
[ INFO] [1715830988.132424087]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): echos_enabled = 0,1,2
[ INFO] [1715830988.132434923]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): layers_enabled = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
[ INFO] [1715830988.132443312]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): reflector_enabled = 0,1
[ INFO] [1715830988.132451475]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): infringed_enabled = 0,1
[ INFO] [1715830988.132463134]: CustomPointCloudConfiguration(cloud_all_fields_fullframe): range_filter = (0.000,999.000,0)
[ INFO] [1715830988.132760131]: MsgPackThreads: Start msgpack converter, udp receiver and msgpack exporter, receiving from :2115
[ INFO] [1715830988.132790843]: MsgPackThreads: udp receiver for imu data started, receiving from :7503
[ INFO] [1715830988.132819340]: MsgPackThreads: initializing sopas tcp (<IP_ADDRESS>:2112, timeout:5, binary:0)
[ INFO] [1715830988.146704160]: use_generation_timestamp:=0, using lidar send timestamp instead of generation timestamp for software pll converted message timestamp.
[ INFO] [1715830988.147666975]: Publishing on topic "/sick_multiscan/scan", qos=10
[ INFO] [1715830988.148198571]: SickCloudTransform: add_transform_xyz_rpy = (0,0,0,0,0,0)
[ INFO] [1715830988.148215247]: SickCloudTransform: azimuth_offset = 0 [deg]
[ INFO] [1715830988.148228953]: SickCloudTransform: additional 3x3 rotation matrix = { (1,0,0), (0,1,0), (0,0,1) }
[ INFO] [1715830988.148240389]: SickCloudTransform: apply 3x3 rotation = false
[ INFO] [1715830988.148251528]: SickCloudTransform: additional translation = (0,0,0)
[ INFO] [1715830988.148263750]: SickCloudTransform: check_dynamic_updates = false
[ INFO] [1715830988.148279642]: MsgPackThreads: initializing device
[ INFO] [1715830988.148308687]: sick_scan_xd: Tcp::open: connecting to <IP_ADDRESS>:2112 ...
[ INFO] [1715830988.148898414]: sick_scan_xd Tcp::open: connected to <IP_ADDRESS>:2112
[ INFO] [1715830988.148909636]: MsgPackThreads: initializing services
[ INFO] [1715830988.148936505]: SickThread TcpRecvThread started.
[ INFO] [1715830988.149302307]: SickScanServices: service "/multiScan/ColaMsg" created ("/multiScan/ColaMsg")
[ INFO] [1715830988.149521003]: SickScanServices: service "/multiScan/ECRChangeArr" created ("/multiScan/ECRChangeArr")
[ INFO] [1715830988.149737298]: SickScanServices: service "/multiScan/GetContaminationResult" created ("/multiScan/GetContaminationResult")
[ INFO] [1715830988.149948872]: SickScanServices: service "/multiScan/LIDoutputstate" created ("/multiScan/LIDoutputstate")
[ INFO] [1715830988.150170919]: SickScanServices: service "/multiScan/SCdevicestate" created ("/multiScan/SCdevicestate")
[ INFO] [1715830988.150379300]: SickScanServices: service "/multiScan/SCreboot" created ("/multiScan/SCreboot")
[ INFO] [1715830988.150586441]: SickScanServices: service "/multiScan/SCsoftreset" created ("/multiScan/SCsoftreset")
[ INFO] [1715830988.150852350]: SickScanServices: service "/multiScan/SickScanExit" created ("/multiScan/SickScanExit")
[ INFO] [1715830988.150869859]: MsgPackThreads: ros services initialized
[ INFO] [1715830988.150879959]: SickScanServices: Sending request "sMN SetAccessMode 3 client"
[ INFO] [1715830988.150916109]: Sending  : <STX>sMN SetAccessMode 3 client<ETX>
[ WARN] [1715830993.151190600]: Timeout during waiting for new datagram
[ INFO] [1715830993.151275141]: sendSOPASCommand: no full reply available for read after 5000 ms
[ INFO] [1715830993.151320001]: Receiving: <STX><ETX>
[ INFO] [1715830993.151353115]: SOPAS Communication -Error unexpected Sopas answer for request <STX>sMN SetAccessMode 3 client<ETX>

[ERROR] [1715830993.151463656]: ## ERROR SickScanServices::sendSopasAndCheckAnswer: error sending sopas command "sMN SetAccessMode 3 client"
[ERROR] [1715830993.151500024]: ## ERROR SickScanServices::sendSopasAndCheckAnswer failed on sending command"sMN SetAccessMode 3 client"
[ INFO] [1715830993.151527396]: SickScanServices: Sending request "sWN FREchoFilter 2"
[ INFO] [1715830993.151572517]: Sending  : <STX>sWN FREchoFilter 2<ETX>
[ WARN] [1715830998.151762570]: Timeout during waiting for new datagram
[ INFO] [1715830998.151855299]: sendSOPASCommand: no full reply available for read after 5000 ms
[ INFO] [1715830998.151944163]: Receiving: <STX><ETX>
[ INFO] [1715830998.151974983]: SOPAS Communication -Error unexpected Sopas answer for request <STX>sWN FREchoFilter 2<ETX>

[ERROR] [1715830998.152004443]: ## ERROR SickScanServices::sendSopasAndCheckAnswer: error sending sopas command "sWN FREchoFilter 2"
[ERROR] [1715830998.152035176]: ## ERROR SickScanServices::sendSopasCmdCheckResponse() failed on sending command"sWN FREchoFilter 2"
[ERROR] [1715830998.152080954]: ## ERROR SickScanServices::writeMultiScanFiltersettings(): sendSopasCmdCheckResponse("sWN FREchoFilter 2") failed.
[ INFO] [1715830998.152119758]: SickScanServices: Sending request "sMN SetAccessMode 3 client"
[ INFO] [1715830998.152164521]: Sending  : <STX>sMN SetAccessMode 3 client<ETX>
[ WARN] [1715831003.152443159]: Timeout during waiting for new datagram
[ INFO] [1715831003.152553042]: sendSOPASCommand: no full reply available for read after 5000 ms
[ INFO] [1715831003.152596126]: Receiving: <STX><ETX>
[ INFO] [1715831003.152620606]: SOPAS Communication -Error unexpected Sopas answer for request <STX>sMN SetAccessMode 3 client<ETX>

[ERROR] [1715831003.152661672]: ## ERROR SickScanServices::sendSopasAndCheckAnswer: error sending sopas command "sMN SetAccessMode 3 client"
[ERROR] [1715831003.152684428]: ## ERROR SickScanServices::sendSopasAndCheckAnswer failed on sending command"sMN SetAccessMode 3 client"
[ INFO] [1715831003.152708420]: SickScanServices: Sending request "sRN FREchoFilter"
[ INFO] [1715831003.152746370]: Sending  : <STX>sRN FREchoFilter<ETX>
[ WARN] [1715831008.153025612]: Timeout during waiting for new datagram
[ INFO] [1715831008.153099980]: sendSOPASCommand: no full reply available for read after 5000 ms
[ INFO] [1715831008.153143964]: Receiving: <STX><ETX>
[ INFO] [1715831008.153169625]: SOPAS Communication -Error unexpected Sopas answer for request <STX>sRN FREchoFilter<ETX>

[ERROR] [1715831008.153202599]: ## ERROR SickScanServices::sendSopasAndCheckAnswer: error sending sopas command "sRN FREchoFilter"
[ERROR] [1715831008.153241276]: ## ERROR SickScanServices::queryMultiScanFiltersettings(): sendSopasAndCheckAnswer("sRN FREchoFilter") failed or unexpected response: "", expected: "sRA FREchoFilter"
[ INFO] [1715831008.153271816]: SickScanServices: Sending request "sMN SetAccessMode 3 client"
[ INFO] [1715831008.153303254]: Sending  : <STX>sMN SetAccessMode 3 client<ETX>
[ WARN] [1715831013.153493007]: Timeout during waiting for new datagram
[ INFO] [1715831013.153582093]: sendSOPASCommand: no full reply available for read after 5000 ms
[ INFO] [1715831013.153622428]: Receiving: <STX><ETX>
[ INFO] [1715831013.153646422]: SOPAS Communication -Error unexpected Sopas answer for request <STX>sMN SetAccessMode 3 client<ETX>

[ERROR] [1715831013.153695404]: ## ERROR SickScanServices::sendSopasAndCheckAnswer: error sending sopas command "sMN SetAccessMode 3 client"
[ERROR] [1715831013.153731186]: ## ERROR SickScanServices::sendSopasAndCheckAnswer failed on sending command"sMN SetAccessMode 3 client"
[ INFO] [1715831013.153781994]: SickScanServices: Sending request "sWN ScanDataEthSettings 1 +192 +168 +127 +32 +2115"
[ INFO] [1715831013.153837928]: Sending  : <STX>sWN ScanDataEthSettings 1 +192 +168 +127 +32 +2115<ETX>
[ WARN] [1715831018.154010654]: Timeout during waiting for new datagram
[ INFO] [1715831018.154083398]: sendSOPASCommand: no full reply available for read after 5000 ms
[ INFO] [1715831018.154129887]: Receiving: <STX><ETX>
[ INFO] [1715831018.154161829]: SOPAS Communication -Error unexpected Sopas answer for request <STX>sWN ScanDataEthSettings 1 +192 +168 +127 +32 +2115<ETX>

[ERROR] [1715831018.154214427]: ## ERROR SickScanServices::sendSopasAndCheckAnswer: error sending sopas command "sWN ScanDataEthSettings 1 +192 +168 +127 +32 +2115"
[ERROR] [1715831018.154246352]: ## ERROR SickScanServices::sendSopasCmdCheckResponse() failed on sending command"sWN ScanDataEthSettings 1 +192 +168 +127 +32 +2115"
[ERROR] [1715831018.154277623]: ## ERROR SickScanServices::sendMultiScanStartCmd(): sendSopasCmdCheckResponse("sWN ScanDataEthSettings 1") failed.

The sick_multiscan.launch settings for the code are as follows.
<launch>

    <!-- Launch multiScan -->
    <!-- env name="ROSCONSOLE_CONFIG_FILE" value="/tmp/rosconsole_loglevel_warn.conf" / -->
    <arg name="hostname" default="<IP_ADDRESS>"/>                                    <!-- IP address of sensor -->
    <arg name="udp_receiver_ip" default="<IP_ADDRESS>"/>                                        <!-- UDP destination IP address (ip address of udp receiver) -->
    <arg name="nodename" default="multiScan"/>
    <arg name="publish_frame_id" default="world" />                                 <!-- frame id of ros Laserscan messages, default: "world_<layer-id>" -->
    <arg name="publish_laserscan_segment_topic" default="scan_segment" />           <!-- topic of ros Laserscan segment messages -->
    <arg name="publish_laserscan_fullframe_topic" default="scan_fullframe" />       <!-- topic of ros Laserscan fullframe messages -->
    <arg name="imu_topic" default="imu" />                                          <!-- topic of ros IMU messages -->
    <arg name="add_transform_xyz_rpy" default="0,0,0,0,0,0"/>
    <arg name="add_transform_check_dynamic_updates" default="false"/>               <!-- Note: dynamical updates of parameter add_transform_xyz_rpy can decrease the performance and is therefor deactivated by default -->
    <arg name="laserscan_layer_filter" default="0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0" /> <!-- Configuration of laserscan messages (ROS only), default: laserscan messages for layer 6 activated (hires layer, elevation -0.07 deg) -->
    <arg name="scandataformat" default="2"/>                                        <!-- ScanDataFormat: 1 for msgpack or 2 for compact scandata, default: 2 -->
    <arg name="host_LFPangleRangeFilter" default="0 -180.0 +179.0 -90.0 +90.0 1" /> <!-- Optionally set LFPangleRangeFilter to "<enabled> <azimuth_start> <azimuth_stop> <elevation_start> <elevation_stop> <beam_increment>" with azimuth and elevation given in degree -->
    <arg name="host_set_LFPangleRangeFilter" default="False" />                     <!-- If true, LFPangleRangeFilter is set at startup (default: false) -->
    <arg name="host_LFPlayerFilter" default="0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" />  <!-- Optionaly set LFPlayerFilter to "<enabled> <layer0-enabled> <layer1-enabled> <layer2-enabled> ... <layer15-enabled>" with 1 for enabled and 0 for disabled -->
    <arg name="host_set_LFPlayerFilter" default="False" />                          <!-- If true, LFPlayerFilter is set at startup (default: false) -->
    <arg name="custom_pointclouds" default="cloud_unstructured_segments cloud_unstructured_fullframe cloud_polar_unstructured_segments cloud_polar_unstructured_fullframe cloud_all_fields_fullframe"/> <!-- Default pointclouds: segmented and fullframe pointclouds, with all layers and echos in both cartesian and polar coordinates -->
    <node name="$(arg nodename)" pkg="sick_scan_xd" type="sick_generic_caller" respawn="false" output="screen" required="true">
        <param name="scanner_type" type="string" value="sick_multiscan"/>

        <!-- network settings: -->
        <param name="hostname" type="string" value="$(arg hostname)" />                     <!-- IP address of multiScan136 to post start and stop commands, f.e. "<IP_ADDRESS>" (default) -->
        <param name="udp_receiver_ip" type="string" value="$(arg udp_receiver_ip)" />       <!-- UDP destination IP address (ip address of udp receiver), f.e. "<IP_ADDRESS>" -->

        <!-- sick_multiscan basic settings: -->
        <param name="udp_sender" type="string" value="" />                                  <!-- Use "" (default) to receive msgpacks from any udp sender, use "<IP_ADDRESS>" to restrict to localhost (loopback device), or use the ip-address of a multiScan lidar or multiScan136 emulator -->
        <param name="udp_port" type="int" value="2115" />                                   <!-- default udp port for multiScan136 resp. multiScan136 emulator is 2115 -->
        <param name="segment_count" type="int" value="12" />                                <!-- number of expected segments in 360 degree, multiScan136: 12 segments, 30 degree per segment -->
        <param name="publish_frame_id" type="string" value="$(arg publish_frame_id)" />     <!-- frame id of ros Laserscan messages, default: "world_<layer-id>" -->
        <param name="publish_laserscan_segment_topic" type="string" value="$(arg publish_laserscan_segment_topic)" />           <!-- topic of ros Laserscan segment messages -->
        <param name="publish_laserscan_fullframe_topic" type="string" value="$(arg publish_laserscan_fullframe_topic)" />       <!-- topic of ros Laserscan fullframe messages -->
        <param name="udp_input_fifolength" type="int" value="20" />                         <!-- max. udp input fifo length(-1: unlimited, default: 20 for buffering 1 second at 20 Hz), elements will be removed from front if number of elements exceeds the fifo_length -->
        <param name="msgpack_output_fifolength" type="int" value="20" />                    <!-- max. msgpack output fifo length(-1: unlimited, default: 20 for buffering 1 second at 20 Hz), elements will be removed from front if number of elements exceeds the fifo_length -->
        <param name="verbose_level" type="int" value="1" />                                 <!-- verbose_level <= 0: quiet mode, verbose_level == 1: print statistics, verbose_level == 2: print details incl. msgpack data, default: 1 -->
        <param name="measure_timing" type="bool" value="True" />                            <!-- measure_timing == true: duration and latency of msgpack conversion and export is measured, default: true -->
        <param name="export_csv" type="bool" value="False" />                               <!-- export msgpack data to csv file, default: false -->
        <param name="export_udp_msg" type="bool" value="False" />                           <!-- true : export binary udpand msgpack data to file(*.udp and* .msg), default: false -->
        <param name="logfolder" type="string" value="" />                                   <!-- output folder for logfiles, default: "" (no logging) -->
        <!-- param name="send_udp_start" type="bool" value="False" / -->                    <!-- Send udp start string to multiScan136 (obsolete, will be removed in future release) -->
        <!-- param name="send_udp_start_string" type="string" value="magicalActivate" / --> <!-- udp string to start multiScan136 (obsolete, will be removed in future release) -->
        <!-- param name="send_udp_start_port" type="int" value="2115" / -->                 <!-- IP port of multiScan136 to post start and stop commands (obsolete, will be removed in future release) -->
        <param name="udp_timeout_ms" type="int" value="60000" />                            <!-- Timeout for udp messages in milliseconds, default: 60*1000 -->
        <param name="scandataformat" type="int" value="$(arg scandataformat)" />            <!-- ScanDataFormat: 1 for msgpack or 2 for compact scandata, default: 1 -->
        <param name="imu_enable" type="bool" value="True"/>                                 <!-- Enable inertial measurement unit IMU, compact format only -->
        <param name="imu_udp_port" type="int" value="7503"/>                                <!-- udp port for multiScan imu data (if imu_enable is true) -->
        <param name="imu_latency_microsec" type="int" value="0"/>                           <!-- imu latency in microseconds -->
        <param name="imu_topic" type="string" value="$(arg imu_topic)"/>                    <!-- topic of ros IMU messages -->

        <!-- Apply an additional transform to the cartesian pointcloud, default: "0,0,0,0,0,0" (i.e. no transform) -->
        <!-- Note: add_transform_xyz_rpy is specified by 6D pose x, y, z, roll, pitch, yaw in [m] resp. [rad] -->
        <!-- It transforms a 3D point in cloud coordinates to 3D point in user defined world coordinates: -->
        <!-- add_transform_xyz_rpy := T[world,cloud] with parent "world" and child "cloud", i.e. P_world = T[world,cloud] * P_cloud -->
        <!-- The additional transform applies to cartesian lidar pointclouds and visualization marker (fields) -->
        <!-- It is NOT applied to polar pointclouds, radarscans, ldmrs objects or other messages -->
        <param name="add_transform_xyz_rpy" type="string" value="$(arg add_transform_xyz_rpy)" />
        <param name="add_transform_check_dynamic_updates" type="bool" value="$(arg add_transform_check_dynamic_updates)" />

        <!-- SOPAS settings: -->
        <param name="sopas_tcp_port" type="string" value="2112" />                          <!-- TCP port for SOPAS commands, default port: 2111 -->
        <param name="start_sopas_service" type="bool" value="True" />                       <!-- True: sopas services for CoLa-commands are started (ROS only), default: true -->
        <param name="send_sopas_start_stop_cmd" type="bool" value="True" />                 <!-- True: multiScan136 start and stop command sequence ("sWN ScanDataEnable 0/1" etc.) are sent after driver start and stop, default: true -->
        <param name="sopas_cola_binary" type="bool" value="False" />                        <!-- False: SOPAS uses CoLa-A (ascii, default, recommended), CoLa-B (true, binary) currently experimental -->
        <param name="sopas_timeout_ms" type="int" value="5000" />                           <!-- Timeout for SOPAS response in milliseconds, default: 5000 -->
        <param name="client_authorization_pw" type="string" value="client" />             <!-- Default password for client authorization -->

        <!-- multiScan filter settings -->
        <!-- Note: Setting host_LFPangleRangeFilter requires firmware version 1.2.2 or higher -->
        <param name="host_read_filtersettings" type="bool" value="True" />                                    <!-- Read multiScan136 settings for FREchoFilter, LFPangleRangeFilter and LFPlayerFilter at startup, default: true -->
        <param name="host_FREchoFilter" type="int" value="2" />                                               <!-- Optionally set FREchoFilter with 0 for FIRST_ECHO (default, EchoCount=1), 1 for ALL_ECHOS (EchoCount=3), or 2 for LAST_ECHO (EchoCount=1) -->
        <param name="host_set_FREchoFilter" type="bool" value="True" />                                       <!-- If true, FREchoFilter is set at startup (default: false) -->
        <param name="host_LFPangleRangeFilter" type="string" value="$(arg host_LFPangleRangeFilter)" />       <!-- Optionally set LFPangleRangeFilter to "<enabled> <azimuth_start> <azimuth_stop> <elevation_start> <elevation_stop> <beam_increment>" with azimuth and elevation given in degree -->
        <param name="host_set_LFPangleRangeFilter" type="bool" value="$(arg host_set_LFPangleRangeFilter)" /> <!-- If true, LFPangleRangeFilter is set at startup (default: false) -->
        <param name="host_LFPlayerFilter" type="string" value="$(arg host_LFPlayerFilter)" />                 <!-- Optionaly set LFPlayerFilter to "<enabled> <layer0-enabled> <layer1-enabled> <layer2-enabled> ... <layer15-enabled>" with 1 for enabled and 0 for disabled -->
        <param name="host_set_LFPlayerFilter" type="bool" value="$(arg host_set_LFPlayerFilter)" />           <!-- If true, LFPlayerFilter is set at startup (default: false) -->

        <!-- Msgpack validation -->
        <param name="msgpack_validator_enabled" type="bool" value="False" />                                  <!-- true: check msgpack data for out of bounds and missing scan data, false: no msgpack validation (default) -->
        <param name="msgpack_validator_verbose" type="int" value="1" />                                       <!-- 0: print error messages, 1: print error and informational messages, 2: print error and all messages -->
        <param name="msgpack_validator_discard_msgpacks_out_of_bounds" type="bool" value="True" />            <!-- true: msgpacks are discarded if scan data out of bounds detected, false: error message if a msgpack is not validated -->
        <param name="msgpack_validator_check_missing_scandata_interval" type="int" value="12" />              <!-- check msgpack for missing scandata after collecting N msgpacks, default: N = 12 segments. Increase this value to tolerate udp packet drops. Use 12 to check each full scan. -->
        <param name="msgpack_validator_required_echos" type="string" value="0" />                             <!-- default: echo count = 1 -->
        <param name="msgpack_validator_azimuth_start" type="double" value="-180.0" />                         <!-- default for full scan: -180 degree -->
        <param name="msgpack_validator_azimuth_end" type="double" value="+180.0" />                           <!-- default for full scan: +180 degree -->
        <param name="msgpack_validator_elevation_start" type="double" value="-90.0" />                        <!-- default for full scan: -90 degree -->
        <param name="msgpack_validator_elevation_end" type="double" value="+90.0" />                          <!-- default for full scan: +-90 degree -->
        <param name="msgpack_validator_valid_segments" type="string" value="0 1 2 3 4 5 6 7 8 9 10 11" />     <!-- indices of valid segmentes, default for full scan: 12 segments -->
        <param name="msgpack_validator_layer_filter" type="string" value="1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" /> <!-- default for full scan: 16 layer active, i.e. "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" -->

        <!-- Configuration of ROS quality of service: -->
        <!-- On ROS-1, parameter "ros_qos" sets the queue_size of ros publisher -->
        <!-- On ROS-2, parameter "ros_qos" sets the QoS of ros publisher to one of the following predefined values: -->
        <!-- 0: rclcpp::SystemDefaultsQoS(), 1: rclcpp::ParameterEventsQoS(), 2: rclcpp::ServicesQoS(), 3: rclcpp::ParametersQoS(), 4: rclcpp::SensorDataQoS() -->
        <!-- See e.g. https://docs.ros2.org/dashing/api/rclcpp/classrclcpp_1_1QoS.html#ad7e932d8e2f636c80eff674546ec3963 for further details about ROS2 QoS -->
        <!-- Default value is -1, i.e. queue_size=32 on ROS-1 resp. qos=rclcpp::SystemDefaultsQoS() on ROS-2 is used.-->
        <param name="ros_qos" type="int" value="-1"/>  <!-- Default QoS=-1, i.e. do not overwrite, use queue_size=32 on ROS-1 resp. qos=rclcpp::SystemDefaultsQoS() on ROS-2 -->

        <!-- Configuration of laserscan messages (ROS only): -->
        <!-- Parameter "laserscan_layer_filter" sets a mask to create laserscan messages for configured layer (0: no laserscan message, 1: create laserscan messages for this layer) -->
        <!-- Use "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" to activate resp. "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" to activate laserscan messages for all 16 layers of the Multiscan136 -->
        <!-- Default is "0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0", i.e. laserscan messages for layer 5, (elevation -0.07 degree, max number of scan points) -->
        <param name="laserscan_layer_filter" type="string" value="$(arg laserscan_layer_filter)" />

        <!-- Configuration of customized pointclouds:

        Parameter "custom_pointclouds" lists all customized pointclouds to be published. Each pointcloud is given by its name and configured by the following parameters:
        "<name_of_custom_pointcloud>" type="string" value="list of key-value-pairs"

        The list of key-value-pairs defines the pointcloud properties. List of supported key-value-pairs for customized pointclouds:

        Parameter "coordinateNotation" is an enum to configure pointcloud coordinates:
            coordinateNotation=0: cartesian (default, pointcloud has fields x,y,z,i), identical to customized with fields=x,y,z,i
            coordinateNotation=1: polar (pointcloud has fields azimuth,elevation,r,i), identical to customized with fields=azimuth,elevation,range,i
            coordinateNotation=2: both cartesian and polar (pointcloud has fields x,y,z,azimuth,elevation,r,i), identical to customized with fields=x,y,z,azimuth,elevation,range,i
            coordinateNotation=3: customized pointcloud fields, i.e. the pointcloud has fields configured by parameter "fields"

        Parameter "updateMethod" is an enum to configure fullframe pointclouds versus segmented pointcloud:
            updateMethod=0: fullframe pointcloud (default)
            updateMethod=1: segmented pointcloud

        Parameter "fields" defines the fields of the pointcloud for coordinateNotation == 3 (customized pointcloud fields), e.g.
            fields=x,y,z,i: cartesian pointcloud
            fields=range,azimuth,elevation: polar pointcloud
            or any other combination of x,y,z,i,range,azimuth,elevation,layer,echo,reflector

        Parameter "echos" defines which echos are included in the pointcloud, e.g.
            echos=0,1,2: all echos
            echos=2: last echo
            or any other combination of 0,1,2

        Parameter "layers" defines which layers are included in the pointcloud, e.g
            layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 for all layers
            layers=6 for the 0 degree layer
            or any other combination of 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
        Note: layer ids enumerate from 1 up to 16.

        Parameter "reflectors" filters the points by the reflector bit, i.e.
            reflectors=0,1 for points with reflector bit set or not set
            reflectors=0 for points with reflector bit not set
            reflectors=1 for points with reflector bit set

        Parameter "infringed" defines filters the points by infringement, i.e.
            infringed=0,1 for points with infringement bit set or not set
            infringed=0 for points with infringement bit not set
            infringed=1 for points with infringement bit set
        Parameter "infringed" is currently not supported (reserved for future use)

        Optional parameter "rangeFilter" configures how invalid measurements are filtered in the customized pointcloud.
            rangeFilter=<range_min>,<range_max>,<filter_flag>
        The range (distance) of invalid scan points is 0 and can be filtered, i.e. removed from the pointcloud or set to 0, FLT_MAX or NAN.
        If the range (distance) of a scan point is less than <range_min> or greater than <range_max>, this point is filtered depending on <filter_flag>:
            <filter_flag> = 0: RANGE_FILTER_DEACTIVATED,  do not apply range filter (default)
            <filter_flag> = 1: RANGE_FILTER_DROP,         drop point, if range is not within [range_min, range_max]
            <filter_flag> = 2: RANGE_FILTER_TO_ZERO,      set range to 0, if range is not within [range_min, range_max]
            <filter_flag> = 3: RANGE_FILTER_TO_RANGE_MAX, set range to range_max, if range is not within [range_min, range_max]
            <filter_flag> = 4: RANGE_FILTER_TO_FLT_MAX,   set range to FLT_MAX, if range is not within [range_min, range_max]
            <filter_flag> = 5: RANGE_FILTER_TO_NAN        set range to NAN, if range is not within [range_min, range_max]
        Note: Using range_filter_handling 4 or 5 requires handling of FLT_MAX and NAN values in an application.
        The working range of a multiScan is specified by 0.05 m up to 60 m. Example to drop invalid measurements:
            rangeFilter=0.05,60,1
        Note: "structured" pointclouds contain all scan points (valid and invalid), i.e. these pointclouds are not filtered. Each scan point has a fixed offset in a structured pointcloud.
        "unstructured" pointclouds contain all valid measurements, i.e. these pointclouds are filtered and contain valid scan points only. Azimuth and elevation of the n-th scan point is not constant.

        Parameter "topic" defines the ros topic, e.g. topic=/cloud_fullframe for cartesian fullframe pointclouds

        Parameter "frameid" defines the ros frame of the pointcloud, e.g. frameid=world, frameid=map or frameid=base_link

        Parameter "publish" activates or deactivates the pointcloud, e.g. publish=1 to generate and publish, or publish=0 to deactivate that pointcloud
        -->

        <!-- List of customized pointclouds: -->
        <param name="custom_pointclouds" type="string" value="$(arg custom_pointclouds)"/> <!-- Default pointclouds: segmented pointcloud and fullframe pointcloud with all layers and echos in cartesian coordinates -->

        <!-- A list predefined pointclouds is configured below. Use all of them or just a subset, according to your needs. Further customized pointclouds can be added in the following configuration -->
        <!-- param name="custom_pointclouds" type="string" value="cloud_unstructured_segments cloud_polar_unstructured_segments cloud_unstructured_fullframe cloud_unstructured_echo1 cloud_unstructured_echo1_segments cloud_unstructured_echo2 cloud_unstructured_echo2_segments cloud_unstructured_echo3 cloud_unstructured_echo3_segments cloud_unstructured_reflector cloud_unstructured_reflector_segments cloud_structured_hires0 cloud_structured_hires0_segments cloud_structured_hires1 cloud_structured_hires1_segments cloud_structured cloud_structured_segments cloud_all_fields_segments cloud_all_fields_fullframe"/ -->

        <!-- cloud_unstructured_segments: cartesian coordinates, segmented, all echos, all layers, range filter on, max. 2700 points, mean ca. 1000 points per cloud -->
        <param name="cloud_unstructured_segments" type="string" value="coordinateNotation=0 updateMethod=1 echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_segments frameid=world publish=1"/>

        <!-- cloud_unstructured_fullframe: cartesian coordinates, fullframe, all echos, all layers, range filter on, max. 32400 points, mean ca. 10000 points per cloud -->
        <param name="cloud_unstructured_fullframe" type="string" value="coordinateNotation=0 updateMethod=0 echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_fullframe frameid=world publish=1"/>

        <!-- cloud_polar_unstructured_segments: polar coordinates, segmented, all echos, all layers, range filter on, max. 2700 points, mean ca. 1000 points per cloud -->
        <param name="cloud_polar_unstructured_segments" type="string" value="coordinateNotation=1 updateMethod=1 echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_polar_unstructured_segments frameid=world publish=1"/>

        <!-- cloud_polar_unstructured_fullframe: polar coordinates, fullframe, all echos, all layers, range filter on -->
        <param name="cloud_polar_unstructured_fullframe" type="string" value="coordinateNotation=1 updateMethod=0 echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_polar_unstructured_fullframe frameid=world publish=1"/>

        <!-- cloud_unstructured_echo1: cartesian coordinates, fullframe, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_echo1" type="string" value="coordinateNotation=0 updateMethod=0 echos=0 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_echo1 frameid=world publish=1"/>

        <!-- cloud_unstructured_echo1_segments: cartesian coordinates, segmented, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_echo1_segments" type="string" value="coordinateNotation=0 updateMethod=1 echos=0 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_echo1_segments frameid=world publish=1"/>

        <!-- cloud_unstructured_echo2: cartesian coordinates, fullframe, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_echo2" type="string" value="coordinateNotation=0 updateMethod=0 echos=1 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_echo2 frameid=world publish=1"/>

        <!-- cloud_unstructured_echo2_segments: cartesian coordinates, segmented, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_echo2_segments" type="string" value="coordinateNotation=0 updateMethod=1 echos=1 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_echo2_segments frameid=world publish=1"/>

        <!-- cloud_unstructured_echo3: cartesian coordinates, fullframe, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_echo3" type="string" value="coordinateNotation=0 updateMethod=0 echos=2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_echo3 frameid=world publish=1"/>

        <!-- cloud_unstructured_echo3_segments: cartesian coordinates, segmented, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_echo3_segments" type="string" value="coordinateNotation=0 updateMethod=1 echos=2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_echo3_segments frameid=world publish=1"/>

        <!-- cloud_unstructured_reflector: cartesian coordinates, fullframe, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_reflector" type="string" value="coordinateNotation=0 updateMethod=0 echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_reflector frameid=world publish=1"/>

        <!-- cloud_unstructured_reflector_segments: cartesian coordinates, segmented, first echo, all layers, range filter on -->
        <param name="cloud_unstructured_reflector_segments" type="string" value="coordinateNotation=0 updateMethod=1 echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=1 infringed=0,1 rangeFilter=0.05,999,1 topic=/cloud_unstructured_reflector_segments frameid=world publish=1"/>

        <!-- cloud_structured_hires0: cartesian and polar coordinates, fullframe, all echos, range filter off, high resolution layer 6, fields=x,y,z,i,range,azimuth,elevation, number of points: 2880 x NumEchos x NumSegments -->
        <param name="cloud_structured_hires0" type="string" value="coordinateNotation=3 updateMethod=0 fields=x,y,z,i,range,azimuth,elevation echos=0,1,2 layers=6 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_structured_hires0 frameid=world publish=1"/>

        <!-- cloud_structured_hires0_segments: cartesian and polar coordinates, segments, all echos, range filter off, high resolution layer 6, fields=x,y,z,i,range,azimuth,elevation -->
        <param name="cloud_structured_hires0_segments" type="string" value="coordinateNotation=3 updateMethod=1 fields=x,y,z,i,range,azimuth,elevation echos=0,1,2 layers=6 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_structured_hires0_segments frameid=world publish=1"/>

        <!-- cloud_structured_hires1: cartesian and polar coordinates, fullframe, all echos, range filter off, high resolution layer 14, fields=x,y,z,i,range,azimuth,elevation, number of points: 2880 x NumEchos x NumSegments -->
        <param name="cloud_structured_hires1" type="string" value="coordinateNotation=3 updateMethod=0 fields=x,y,z,i,range,azimuth,elevation echos=0,1,2 layers=14 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_structured_hires1 frameid=world publish=1"/>

        <!-- cloud_structured_hires1_segments: cartesian and polar coordinates, segments, all echos, range filter off, high resolution layer 14, fields=x,y,z,i,range,azimuth,elevation -->
        <param name="cloud_structured_hires1_segments" type="string" value="coordinateNotation=3 updateMethod=1 fields=x,y,z,i,range,azimuth,elevation echos=0,1,2 layers=14 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_structured_hires1_segments frameid=world publish=1"/>

        <!-- cloud_structured: cartesian and polar coordinates, fullframe, all echos, range filter off, low resolution layers 1,2,3,4,5,7,8,9,10,11,12,13,15,16, fields=x,y,z,i,range,azimuth,elevation, 12*360*14*3=181440 points per cloud -->
        <param name="cloud_structured" type="string" value="coordinateNotation=3 updateMethod=0 fields=x,y,z,i,range,azimuth,elevation echos=0,1,2 layers=1,2,3,4,5,7,8,9,10,11,12,13,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_structured frameid=world publish=1"/>

        <!-- cloud_structured_segments: cartesian and polar coordinates, segments, all echos, range filter off, low resolution layers 1,2,3,4,5,7,8,9,10,11,12,13,15,16, fields=x,y,z,i,range,azimuth,elevation, 360*14*3=15120 points per cloud -->
        <param name="cloud_structured_segments" type="string" value="coordinateNotation=3 updateMethod=1 fields=x,y,z,i,range,azimuth,elevation echos=0,1,2 layers=1,2,3,4,5,7,8,9,10,11,12,13,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_structured_segments frameid=world publish=1"/>

        <!-- cloud_all_fields_segments: all fields (x,y,z,i,range,azimuth,elevation,layer,echo,reflector), segments, all echos, all layers, range filter off -->
        <param name="cloud_all_fields_segments" type="string" value="coordinateNotation=3 updateMethod=1 fields=x,y,z,i,range,azimuth,elevation,layer,echo,reflector echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_all_fields_segments frameid=world publish=1"/>

        <!-- cloud_all_fields_fullframe: all fields (x,y,z,i,range,azimuth,elevation,layer,echo,reflector), fullframe, all echos, all layers, range filter off -->
        <param name="cloud_all_fields_fullframe" type="string" value="coordinateNotation=3 updateMethod=0 fields=x,y,z,i,range,azimuth,elevation,layer,echo,reflector echos=0,1,2 layers=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 reflectors=0,1 infringed=0,1 rangeFilter=0,999,0 topic=/cloud_all_fields_fullframe frameid=world publish=1"/>

        <!--
        On ROS-1 and ROS-2, sick_scan_xd publishes TF messsages to map a given base frame (i.e. base coordinates system) to the lidar frame (i.e. lidar coordinates system) and vice versa.
        The default base frame id is "map" (which is the default frame in rviz).
        The default 6D pose is (x,y,z,roll,pitch,yaw) = (0,0,0,0,0,0) defined by position (x,y,z) in meter and (roll,pitch,yaw) in radians.
        This 6D pose (x,y,z,roll,pitch,yaw) is the transform T[base,lidar] with parent "base" and child "lidar".
        For lidars mounted on a carrier, the lidar pose T[base,lidar] and base frame can be configured in this launchfile using the following parameter.
        The lidar frame id given by parameter "frame_id" resp. "publish_frame_id".
        Note that the transform is specified using (x,y,z,roll,pitch,yaw). In contrast, the ROS static_transform_publisher uses commandline arguments in order (x,y,z,yaw,pitch,roll).
        -->
        <param name="tf_base_frame_id" type="string" value="map" />              <!-- Frame id of base coordinates system, e.g. "map" (default frame in rviz) -->
        <param name="tf_base_lidar_xyz_rpy" type="string" value="0,0,0,0,0,0" /> <!-- T[base,lidar], 6D pose (x,y,z,roll,pitch,yaw) in meter resp. radians with parent "map" and child "cloud" -->
        <param name="tf_publish_rate" type="double" value="10" />                <!-- Rate to publish TF messages in hz, use 0 to deactivate TF messages -->

    </node>

</launch>

For your information, the PC receiving the data is running Ubuntu ROS1 Noetic, and its IP address is <IP_ADDRESS>.
Do you have any suggestions for solving the merge issue? After merging, I plan to use Hector SLAM as demonstrated in the example code without reflectors.
rosrun rviz rviz -d ./src/sick_scan_xd/test/emulator/config/rviz_slam_nav350.rviz & roslaunch sick_scan_xd sick_nav_350.launch & roslaunch sick_scan_xd test_200_slam_ros1_hector.launch scan_topic:=/sick_nav_350/scan
I am currently attempting with a single NAV350, but I am encountering a status error in RViz, and the map is not being generated. The tf_tree is as follows.

Is there anything that needs to be modified in this example code?
Thank you.

Thanks for your feedback. sick_multiscan.launch is the configuration file for SICK multiScan100 lidars. It cannot be used to merge the scan data from two NAV350 devices.
To run two NAV350 lidars, follow the FAQ example and start sick_scan_xd twice with different ip addresses, topics and frame ids:
roslaunch sick_scan_xd sick_nav_350.launch nodename:=sick_nav_350_front hostname:=<IP_ADDRESS> cloud_topic:=cloud_front laserscan_topic:=scan_front frame_id:=nav_350_front
roslaunch sick_scan_xd sick_nav_350.launch nodename:=sick_nav_350_rear hostname:=<IP_ADDRESS> cloud_topic:=cloud_rear laserscan_topic:=scan_rear frame_id:=nav_350_rear

You can then use e.g. the front lidar for slam by providing your system's transform chain in a hector slam configuration file like test_200_slam_ros1_hector.launch. The static_transform_publishers in the hector launch file define the 6D poses (position and orientation) of your lidars relative to a robot frame and must be adapted to your setup. See https://github.com/SICKAG/sick_scan_xd/blob/develop/doc/slam.md for details.


Python egg packages are not parsed for SBOM

What happened:
While trying to generate SBOM for a package containing a python package in egg form, syft is not able to capture the same in SBOM.
What you expected to happen:
egg package should have been discovered as part of SBOM.
Steps to reproduce the issue:
Create a simple python project with egg dependency shipped along.
Run the syft command on the project
Anything else we need to know?:
PFA screenshot for your reference.

Environment:

Output of syft version:

Version:            0.75.0
JsonSchemaVersion:  7.0.1
BuildDate:          2023-03-13T17:50:56Z
GitCommit:          cc0a376aba43e7f9c5fe66320643f72088533838
GitDescription:     v0.75.0
Platform:           darwin/arm64
GoVersion:          go1.19.6
Compiler:           gc

OS (e.g: cat /etc/os-release or similar): MacOS Ventura 13.2.1

Hi @Oh-Py-God, would you be able to share the .egg file you are working with so we can reproduce this issue? Thanks!

@tgerla attaching the egg file for your reference.
boto3-1.9.5-py2.7.egg.zip

Thank you! We will investigate and get back to you when we have an update.
What I've found so far:
This boto3 egg has an EGG-INFO/ directory that contains the PKG-INFO file we use for package detection, but Syft is looking for egg-info/PKG-INFO (lowercase). If I unpack the archive and rename EGG-INFO/ to egg-info/, the detection seems to work as expected:
tgerla@Timothys-MacBook-Pro-2 t % mv EGG-INFO egg-info
tgerla@Timothys-MacBook-Pro-2 t % syft .
 ✔ Indexed .
 ✔ Cataloged packages      [1 packages]

NAME   VERSION  TYPE
boto3  1.9.5    python

It may be the case that we need to expand our search glob to include EGG-INFO. I will let the development team know and we will do some more research.
https://github.com/anchore/syft/blob/c038f13d44ef3c646509d189bdbae31e91a77ea0/syft/pkg/cataloger/python/cataloger.go#L21

Thanks for looking into this, @tgerla.
I have also observed that syft does not parse .egg-info directories properly. PFA screenshot and sample .egg-info for your reference.

python-dateutil.egg-info.zip

Hi @Oh-Py-God, thanks for the additional details. Do you happen to know why the boto3 egg file might have EGG-INFO in uppercase, where other eggs might be using lowercase? If you don't know, that's fine, but we thought we would ask. Thank you!

Hi @tgerla, apologies for the delayed response. While generating SBOM for different products in my organization, I came across certain build processes where EGG-INFO (uppercase) directories were found.
Also, referring to the setuptools page, it is evident to find this type of a structure.
Let me know if further information is needed to fix this.

Hi @Oh-Py-God, thanks for the reply! We will probably extend the glob search to include uppercase EGG-INFO and uppercase DIST-INFO to solve this problem.


Kopf changes: add CRD, patch method

Fixes #27, #28.
Moves some changes from https://github.com/zalando-incubator/kopf/pull/110 to upstream.

@thilp thanks for the review, I incorporated your suggestions.


ViroARScene has no propType for native prop VRTARScene.onTrackingUpdateViro of native type BOOL

Trying to run viro-sample app from git.
In Android all i can see is VR with HelloWorld. Even after changing the boolean value at line 44, when I try to run AR I can still see only VR with Hello World!
In iPhone VR examples runs fine but when try to run AR this happens in iPhone 7s - OS 11.3

Working in iPhone when Changed  react viro version from 2.4.0 to 2.5.1 and that changed the deprecated methods (ViroSurface to ViroQuad)
Android still same issue. Cant see anything except black VR surface with Hello World!
Android camera permissions are given and API key is also same as iOS.
Installed ArCore apk also. Some help would be much appreciated.

Hi @SyedKabeer, for the iOS deprecated methods, change any ViroSurface to ViroQuad and that yellow box should go away.
Re: Android - what device are you using. Depending on the device, OS and Daydream support, there are minor changes you might have to make. Take a look at our Testbed page -> https://docs.viromedia.com/docs/develop-with-viro
If you are still having issue please let us know

@dam00n
In iPhone it is working all fine. Android has issues, same code which runs in iOS doesn't run in Android Device (Samsung S7 Edge).
Please refer the image below. This is what I see all the time for AR or VR.

@manbod
I did enable hot reloading I got the below error. I did all the fixes listed in the image below.
Doesn't solve the issue.

@SyedKabeer are you able to reload (not hot reload) just reload?
Also, Android devices running Nougat OS (or higher) w/ Cardboard must set debug={true} on SceneNavigator
Seems like the initial scene is being cached as @manbod mentioned. Let us know if the above helps, if not you can try clearing your cache and/or deleting the testbed from your device and reinstalling.

I tried clearing cache and reinstalling testbed many times, problem doesn't seems to solve.
SceneNavigator means ViroSceneNavigator right ?? Because i tried changing the debug value that doesn't work either.
Please refer screenshot below.

Hi @SyedKabeer ,
Sorry to hear you're running into issues. We'll need a little more info on why you are running into issues.
What version of the testbed app are you running? (The activity where a black screen loads up when you enter the local ip / ngrok url, it should say React-Viro version at the bottom of the page - It should say React-Viro version 2.6.0)
Can you paste the "dependencies" block code snippet from your package.json? (The react-viro version there should say version 2.6.1)
Can you paste your App.js contents here as well?
If you are upgrading from 2.5.1 -> make sure you remove your node modules and run npm install again.
Let us know, and we can dive deeper into your issue.
Thanks!

Closed due to inactivity. Reopen if needed.

After running the clean command in xcode and trying to build the app again, magically most of the build errors go away except one now:

It's just odd to have any errors at all when running in the testbed app as this project ran in testbed without errors when I last left off with it a week+ ago.

Following up here -- @dthian helped me out in the viro slack. Was a very simple fix, I just needed to upgrade to v2.12.0 of Viro-React! 👍


misc(share/befp): improve logging in case of good errors

We should make more informative logs about good issues during BEFP verification so as not to confuse users. There are 4 cases where we can conclude the BEFP is valid but can't finish verification(#1, #2, #3, #4). In these case we've verified shares but we can't finish BEFP verification, so we can conclude that BEFP is valid.

Hey @vgonkivs Can I work on it?

Yes, thank you 🙏

@vgonkivs please review


Added two winners in reference to issue #6173

Scanned through 10 competitions and added two winners in readme.md file as instructed
If you find this useful kindly merge and approve.

Codecov Report

Merging #6222 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #6222   +/-   ##
=======================================
  Coverage   80.24%   80.24%
=======================================
  Files          12       12
  Lines        3362     3362
=======================================
  Hits         2698     2698
  Misses        664      664

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2241563...447a6f4. Read the comment docs.

@hcho3 @trivialfis I have no idea why checks are failing , I just deleted one like which was mentioned

Thanks for the contribution!

Happy to help 😊👍


lastversion install REPO

Download distro-specific --assets to temp dir and invoke package manager, e.g. apt/yum depending on distro to directly install the latest version.

Closing as it works fine for yum/dnf interface, and I'm not interested in the apt interface. If anyone is, please submit a pull request.
 /\_/\
( o.o )
 > ^ <


Move tool handling to its own function outside of _play_speech

No functional change (other than an error message if the function throws).

@theomonnom @davidzhao - PTAL. I'm hunting down a few more cases where the agent gets stuck. This is just some refactoring to simplify the code.


ChangePropertyAction doesn't work with Image and Source property

I doesn't update the image source.

<Image Name="image" Source="../Assets/Loading.ico" MaxWidth="24" MaxHeight="24" Margin="4">
    <Interaction.Behaviors>
        <DataTriggerBehavior Binding="{Binding Updated^}" ComparisonCondition="Equal" Value="true">
            <ChangePropertyAction TargetObject="{Binding #image}" PropertyName="Source" Value="../Assets/True.ico" />
        </DataTriggerBehavior>
        <DataTriggerBehavior Binding="{Binding Updated^}" ComparisonCondition="Equal" Value="false">
            <ChangePropertyAction TargetObject="{Binding #image}" PropertyName="Source" Value="../Assets/False.ico" />
        </DataTriggerBehavior>
    </Interaction.Behaviors>
</Image>

But it works when I use text (emoji here).

<Label Name="label" Content="💤" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
    <Interaction.Behaviors>
        <DataTriggerBehavior Binding="{Binding Updated^}" ComparisonCondition="Equal" Value="true">
            <ChangePropertyAction TargetObject="{Binding #label}" PropertyName="Content" Value="✅" />
        </DataTriggerBehavior>
        <DataTriggerBehavior Binding="{Binding Updated^}" ComparisonCondition="Equal" Value="false">
            <ChangePropertyAction TargetObject="{Binding #label}" PropertyName="Content" Value="🛑" />
        </DataTriggerBehavior>
    </Interaction.Behaviors>
</Label>

It's just because Image doesn't work with string, but works with IBitmap

It's just because Image doesn't work with string, but works with IBitmap

Yes, this is true, but Avalonia uses a converter (Bitmap Type Converter), which allows you to write
<Image Source="/Assets/myImage.png"> in XAML.
The same behavior is expected when using ChangePropertyAction, but it is different, most likely because the converter is not used.

In file src/Avalonia.Xaml.Interactions/Core/TypeConverterHelper.cs line 69 for the type Avalonia.Media.IImage returns a ReferenceConverter and the ConvertFromInvariantString method returns null.


[Feature request] allow to path params other than String

Vue Router allows using params to path data that is not necessarily defined in the URL itself. Other packages allow path extra params during the navigation.
The use case is simple: dev may have already loaded data that he would like to pass forward during the navigation to reduce the number of API requests or reduce the time that is needed for page render

Duplicate of https://github.com/lulupointu/vrouter/issues/177


Fix issue #1508. Throw exception when registering invalid extension assembly/type.

See issue #1508.
The problem seemed to be that there were multiple try-catches around the methods loading the assemblies, so that the exception did not bubble out of ParseExtensionsElement(NLogXmlElement extensionsElement, string baseDirectory).
I removed the try-catches in there, so that a NLogConfigurationException is created in the try-catch in the toplevel method XmlLoggingConfiguration.Initialize(XmlReader reader, string fileName, bool ignoreErrors).
Let me know if this fixes the issue and if you see any problems with removing the inner try-catches.

Mhhh. I don't get why that one test is not passing with appveyor.
And it seems like travis-ci has a problem.

Thanks for the PR!
On holiday now but i checked it in short, see comments.
One unit test is broken, but I'm sure the 2 catches should be restored.
I restarted travis-ci.org, it was bugged

Alright, I readded the try-catches. You were right. If they were omitted the node wasn't correctly parsed.
Now it should continue parsing the <add .../> elements, even if one doesn't exist (if ThrowConfigExtensions==false).

could you check why InvalidXMLConfiguration_DoesNotThrowErrorWhen_ThrowExceptionFlagIsNotSet fails?

Mh, I don't get why that test fails on Mono. It passes on my machine. Do you have any recommendations how to debug this?

I have fixed the unit test and merged the code in https://github.com/NLog/NLog/pull/1553
Thanks for the PR!

It's online!

Yey, my first PR got merged!
Thank you for your help in figuring this one out.


Upgrading to EntityframworkCore.Sqlite 2.0.0 preview-1 causes Android app crashes

Hi.
When I Upgraded my EFCore.Sqlite 1.1.2 to Ver 2.0.0 preview-1 , my app crashes before deploy. There is no error , there is no any exception!
I want to get rid of this error :

unauthorized access to “/system/lib/libsqlite.so”

I search a lot in Internet and majority of them said that error would get away by the next EFCore.Sqlite update.
The UPW app runs without any problem with new sqlite update package. The problem is Android. Is there any thing that I must do ?
Further technical details
EF Core version: 2.0.0 preview-1
Database Provider: Microsoft.EntityFrameworkCore.Sqlite
Operating system: Windows 10
IDE: Visual Studio 2017

(Also asked on StackOverflow)

I have no idea what's causing the error. Nothing in EF Core or Microsoft.Data.Sqlite will try to use libsqlite.so. You may want to follow up on ericsink/SQLitePCL.raw, but I suspect he'll say the same thing about his library.


Update trace4cats-context-utils, ... to 0.14.3

About this PR
📦 Updates

io.janstenpickle:trace4cats-context-utils
io.janstenpickle:trace4cats-context-utils-laws
io.janstenpickle:trace4cats-core
io.janstenpickle:trace4cats-testkit

from 0.14.0 to 0.14.3
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (0.14.0).
You might want to review and update them manually.
README.md

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.janstenpickle" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.janstenpickle" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, version-scheme:early-semver, old-version-remains, commit-count:1

Superseded by #189.


Try using arm64 graviton2 instead of arm64

This commit switches the architecture tag for the arm64 travis jobs to
use arm64-graviton2 instead. The arm64-graviton jobs are hosted on
Amazon's graviton2 CPU ec2 nodes which should be faster (not that the
regular arm64 nodes were slow).

Pull Request Test Coverage Report for Build 587307438

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.688%

Totals

Change from base Build 587307338:
0.0%

Covered Lines:
4460

Relevant Lines:
4661

💛  - Coveralls


feat(generic controller): expose methods to support custom resources that like to define the attachments

ProblemStatement: GenericController serves the purpose of being used as a config file to define the watch & attachments required to implement the reconciliation logic for any CustomResource. However, for certain use cases, it seems better to delegate definition of attachments to specific CustomResource specs instead of being defined in GenericController specs.  GenericController is thus left with the watch definition only.
The use cases that will need this feature are the ones where the attachment kinds are dynamic & can be defined as well as removed by users of the CustomResource.
This also means individual CustomResource's hooks need to be more involved in the reconciliation process.  In other words, these hooks will take up the additional responsibility of managing the desired state themselves instead of the current way of metac handling the desired state.
This issue tracks the possibility of exposing methods in metac that allows these hooks to invoke this desired state handling logic.

Thinking more on this, GenericController configs can be loaded dynamically from kubernetes ConfigMap instead of the solution proposed above.
Proposed Solution
Metac will be run on local mode. In this mode, metac reads the generic controller config files mounted at specified location. As an enhancement, metac can additionally read these config files from kubernetes config map. This lets end users make use of config map for cases where generic controller spec needs to be set depending on custom controller's desired state needs. This also avoids the need to manage the desired state logic in controller's hook logic.


TODOs for 0.1 release

[x] Modify markdown-it config / postcss config / babel config
[x] ❌ Basic support for layout components transition
[ ] Documentation website
[x] Copy static folder to generated website, maybe add transformation support
[x] ❌No need to write JSON files for markdown files? maybe use a markdown loader
[x] ❌Ask user to restart process when anything except for meta and themeConfig changed in config file (later)

Plugins:

[x] Generate categories/archived/tags page
[x] Integrate google analytics
[x] ❌NetlifyCMS will check out this later
[x] Read pages directory, add the components to router
[x] Custom data source, read from config file

Caution: I might do some --force push randomly until 0.1 😅

So I just released it without a documentation website, sorry
Check out current docs https://github.com/egojump/peco/tree/master/docs


[libical] new port

Describe the pull request
Adds new LibIcal library. Builds on top of #8754
Depends on:

[ ] #20966

Which triplets are supported/not supported? Have you updated the CI baseline?
All official, plus arm64-osx

Does your PR follow the maintainer guide?

Yes

@PhoebeHui this is ready to build now.


Improve API for checking if data is Immutable

Both write docs about the various predicates, also add an immutable value detection predicate at the top level of the API.

:+1: - will this also cater for primitive values too? e.g.
Immutable.isImmutable(Immutable.fromJS({x: 5})); // true
Immutable.isImmutable(5); // true

Sorry, re-reading the title for this issue I'm guessing the capitalisation is significant. i.e. this issue is capturing an API function that returns true iff an object passed as an argument is an instance of any Immutable.* class. Let's call this Immutable.isImmutableInstance(x)
My previous comment is related but would deal with the wider question of whether the argument is immutable (lower case 'i')

:+1:
For now, I've been shimming with something like this
var _ = require('./lodash');

function isImmutable(thing){
    return isList(thing) || isMap(thing) || isSet(thing) || isOrderedSet(thing) || isOrderedMap(thing);
}

function isList(thing){
	return _.isObject(thing) && thing['@@__IMMUTABLE_LIST__@@'];
}

function isMap(thing){
	return _.isObject(thing) && thing['@@__IMMUTABLE_MAP__@@'];
}

function isSet(thing){
	return _.isObject(thing) && thing['@@__IMMUTABLE_SET__@@'];
}

function isOrderedSet(thing){
	return _.isObject(thing) && thing['@@__IMMUTABLE_ORDERED__@@'] && thing.hasOwnProperty('__hash');
}

function isOrderedMap(thing){
	return _.isObject(thing) && thing['@@__IMMUTABLE_ORDERED__@@'] && !thing.hasOwnProperty('__hash');
}

module.exports = {
	isImmutable: isImmutable,
	isList: isList,
	isMap: isMap,
	isSet: isSet,
	isOrderedSet: isOrderedSet,
	isOrderedMap: isOrderedMap
};

@NickStefan you should better use the built-in Immutable.List.isList, Immutable.Set.isSet and so on. Checking for @@__IMMUTABLE_ORDERED__@@ is an internal detail which may change in future versions.
isImmutable() can be replaced with Immutable.Iterable.isIterable() since all classes inherit from Immutable.Iterable.

@madebyherzblut thank you! I must have missed those methods in the docs.

+1

+1

+1

I've been using a check like this:
   My motivation here is mostly that .get of undefined shits itself violently, and initializing properly all over the place helps, but doesn't catch all edge cases. I just want the data or false without any breakage. Specific type checking causes me to do more work if I want it to change later.

This looser version solves many more edge cases(most if not all extend type Iterable which has .get, and all data is eventually gotten) than a specific type check does(which usually only saves you when you try to update on the wrong type).

Here we go.

/* getValid: Checks for valid ImmutableJS type Iterable

    returns valid Iterable, valid Iterable child data, or undefined

    Iterable.isIterable(maybeIterable) && maybeIterable.get(['data', key]), becomes
    getValid(maybeIterable, ['data', key])

    But wait! There's more! As a result:
    getValid(maybeIterable) returns the maybeIterable or undefined would really like a false instead    */

export const validate = (maybeIterable, path) =>
  Iterable.isIterable(maybeIterable) && path
    ? ((typeof path === 'object' && maybeIterable.getIn(path)) || maybeIterable.get(path))
    : Iterable.isIterable(maybeIterable) && maybeIterable;

Just give me what I am asking for or tell me no. Don't explode. I believe underscore does something similar also.

what if I need to check it in 3rd party lib? I need some "signature" to be sure if the value I've got follows some protocol of immutableJS, like equals.


iOS native color picker opens up automatically after awesome-color-picker

Thank you for this awesome library. I just wanted to point out a bug that I’m encountering…
I’m using Safari on iOS 17.2.1. Here is a video of the issue I’m facing. It will show that the native iOS color picker opens up immediately after the awesome color picker. That wouldn’t be the worst thing in the world however, if I choose a different color in the iOS picker, the color doesn’t change in the awesome color picker. You will see what I’m talking about.
If you would like me to try anything, just let me know. Thanks again!

Thanks for using the library! 😄
Are you using the library in v3? This bug came up in v2 (see this issue #18) and I removed the fix to solve accessibility warnings.
Can you check if the problem is solved on this documentation site preview? I adding again the fix.

Oh wow my bad! Yes the examples work perfectly!  I thought I looked through the old issues and I know I did not see I was using the older version.
Thank you again for all your hard work on this and your other open source projects!


bst2html doc's

See original issue on GitLab
In GitLab by [Gitlab user @willsalmon] on Oct 9, 2018, 11:00
Summary
bst2html refers to the CONTRIBUTING guild but the guild dose not refer back to it so if the information that it describes is in there it is hard to find, I could not find it.
doc/bst2html.py --help
Usage: bst2html.py [OPTIONS] DESCRIPTION

  Run a bst command and capture stdout/stderr in html

  This command normally takes a description yaml file, see the CONTRIBUTING
  file for information on it's format.

if the information is some were else then the doc string should be updated else could we make it easier to find the info in CONTRIBUTING
Other relevant information

BuildStream version affected: current master: 49df3d75f4e52076cb5ce9ef0c00dfe2c6b318b3

In GitLab by [Gitlab user @tristanvb] on Oct 9, 2018, 12:09
Hi [Gitlab user @willsalmon],
So the format of the session file is documented exactly here.
The bst2html.py script is invoked automatically as a part of the Makefile in the doc directory, people should not have to run it manually, even when generating new session outputs or force regenerating the existing ones for a new release, the comment in bst2html.py is just intended to point people in the right direction if they happen to open that file.
Maybe we can refer to the section title "Adding BuildStream command output" in the help output of bst2html.py to make the specific section easier to find ? And maybe we can improve the documentation about how the sessions are generated in CONTRIBUTING.rst ?

This seems to be adequate, I'll close the issue with a "patches welcome" note in case someone wants to change anything further around this.


Incorrect number of workloads/pods displayed

On master-head commit id: c7f3cce

From the namespace picker, select Default project
Click on Apps and Martket place
Installed Apps page is shown.
On the left navigation pane, Number of deployments, pods is seen > 0

Click on deployments
The deployments, now shown are = 0

Expected:
The actual value of deployments is 0 in this project. So the left pane should always show the right number of deployments/pods = 0

Could be backend, @vincent99 could help confirm where the initial numbers are coming from.

On master-head commit id: cfbd0d3
See this issue fixed.


W083 language change. Closes gh-3058

This PR contains squashed commits from https://github.com/jshint/jshint/pull/3058, with an additional commit that:

adds a missing space to the end of the first portion of the error message
updates the tests to reflect the new language

Coverage remained the same at 97.763% when pulling 9129f082e6affa153f07a53a9771dd7f8aa5caf7 on W083-language-change into cc215bde53610e861d5a679131e7095add1bb3f8 on master.

Merged to master at commit 481cdcaf0d6a206e8061a0c324d413afcf3d852a. Thanks @rwaldron and @iamlikeme-x!


Optional fields in proto massages

Hi! I see that in cstrike15_gcmessages.proto or cstrike15_gcmessages.proto in node-csgo fields are optional, but there in generated protobufs not.
It not so scary, but a few problems arrives:

Noisy info in inspected items(empty fields with zero value);
It is not possible to distinguish item with stattrek and another quality from non-stattrek item.

You can see second problem in csgofloat-inspect:
// Patch for items that are stattrak and unusual (ex. Stattrak Karambit)
if (iteminfo.killeatervalue !== null && iteminfo.quality !== 9) {
    name += `${this.csgo_english['strange']} `;
}

I think i can monkey patch this in my code, but decided to tell you about problems, thanks!

With betterproto b4 I can probably fix this this, but it would break a lot of my code, so I'm inclined to only  to only do this on specific fields

Understand, so can i ask you to fix just killeatervalue to be optional?

Would you mind opening a PR for it, I'm a little swamped? All you'd need to do is pass optional=True to the field function

#7


ng g module with route option not working with the new provideRouter

Command
generate
Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
when using the new way provideRouter the command ng g m foo --route=foo -m=app stop working
Minimal Reproduction
create new angular 15 project
in app-routing.module.ts

remove AppRoutingModule
export the routes const

in app.module.ts

remove AppRoutingModule from import array
add provideRouter(routes) to the providers array

then in the command line run ng g m foo --route=foo -m=app
Exception or Error
Couldn't find a route declaration in /src/app/app-routing.module.ts.
Use the '--module' option to specify a different routing module.

Your Environment
Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1500.5
@angular-devkit/build-angular   15.0.5
@angular-devkit/core            15.0.5
@angular-devkit/schematics      15.0.5
@angular/cli                    15.0.5
@schematics/angular             15.0.5
rxjs                            7.5.7
typescript                      4.8.4

Anything else relevant?
changing the file name from app-routing.module.ts to routes.ts gives a different but similar error message
Couldn't find a route declaration in /src/app/app.module.ts.
Use the '--module' option to specify a different routing module.

@alan-agius4 why this needs to be voted for to be fixed?

@robertIsaac it shouldn’t 😀

I'm willing to take this up

I would like to take this up


Add NCCL to library installer

Depends on ~https://github.com/cupy/cupy/pull/4912~ (merged) and #4852

#4912 merged, ready for review.
/test

pfnCI, test this please.

Jenkins CI test (for commit bcc9dc2f7b63d630d508b7f331768dc65f225e1b, target branch master) succeeded!

Rebased!

Jenkins, test this please.

Jenkins CI test (for commit fd0d80e7712fc9306ea00c02e4c65c3b21a11de9, target branch master) failed with status FAILURE.

Windows test passed, Jenkins failure is a known flaky one.

LGTM!


Create CI builds against GDAL 3.6 & 3.7

Should we consider dropping 3.2 and/or 3.3? Under what principles should we make that evaluation?

This is a really good question. My idea was to have a test for the GDAL included in the current Ubuntu LTS.  (and all GDAL versions released after that).

Nominating this for the new release, since the 3.7 bindings are broken.

Fixed in #412

yes 22.04 is the latest LTS.


DSD-683: Better link styling in the Heading and Card components

Fixes JIRA ticket DSD-683
This PR does the following:

Updates the styling for links in the Heading component so they are the standard styling rather than all black.
This also updates how headings are displayed in the Card component. For the "full-click functionality" feature, the links in Heading component are colored black and not underlined.
Minor update to the NotificationHeading component so it passes/renders an id correctly.

How has this been tested?
Storybook and better UI/snapshot tests.
Accessibility concerns or updates

N/A

Checklist:

[ ] I have updated the Storybook documentation accordingly.
[ ] I have added relevant accessibility documentation for this pull request.
[ ] All new and existing tests passed.

Front End Review:

[ ] View the example in Storybook

Tugboat has finished building the preview for this pull request!
Link:

https://pr835-qyrmadjxadznrv1snaehdoxetfusyadj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61d76c61dc579fc65d9746a3

Tugboat has finished building the preview for this pull request!
Link:

https://pr835-qyrmadjxadznrv1snaehdoxetfusyadj.tugboat.qa

Dashboard:

https://dashboard.tugboat.qa/61d76c61dc579fc65d9746a3


Limited runtime host permissions might break some Tampermonkey features like script update, GM_xmlhttpRequest and others!

I cant use scrips
Chrome blocking Tampermonkey
Chrome 76+

im just opened agario dark theme
Scripst work in 1 second and not working

This project has been abandoned for 3+ years and will not be continued to be developed.


503 unavailable, now works again.

Hi there, I know you are busy, and thanks a lot for warehouse.
I just got a (small) crash I guess, I was not able to reproduce (around 930 AM Pacific):
$ cat ~/.pypirc
[distutils]
index-servers =
    pypi

[pypi]
repository:https://upload.pypi.io/legacy/
username: <username>
password: <passwd>

$ ls -1 dist/
ipython-5.0.0rc1-py2.py3-none-any.whl
ipython-5.0.0rc1.tar.gz
ipython-5.0.0rc1.zip

$twine upload dist/*
Uploading distributions to https://upload.pypi.io/legacy/
Uploading ipython-5.0.0rc1-py2.py3-none-any.whl
HTTPError: 503 Server Error: Service Unavailable for url: https://upload.pypi.io/legacy/

ipython-5.0.0rc1-py2.py3-none-any.whl was though uploaded correctly, and I was able to resume the upload for the sdists.
So just leaving that there in case you want to look at the logs.. otherwise feel free to close, all is fine on my end now.

I'm going to close this, I see the error and it was a timeout error from the edge while waiting for the request to be processed. It was the only one in the last ~24 hours so I'm going to consider it an isolated error for right now, but I'll monitor it and if I continue to see them I'll dig in deeper.
Thanks!

Thanks a lot, just wanted to make you aware in case.
BTW I enjoyed hearing you on Talk Python To Me. Thanks for taking the time to do that as well.


Cannot import md3 models in blender 2.78

Cannot import md3 models in blender 2.78. Can someone help?

@bassmaster429 Can you describe your problem?

I guess this is a duplicate of #4, closing.


Check component exists prior to delete in local

Closes #690
Should not affect global path e.g.
ks param set replicas 4 --env default
ks param delete replicas --env default

Addresses case where ks param delete <string> where component name or param key is missing.
Signed-off-by: GuessWhoSamFoo<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 1175

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
123 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.03%) to 71.373%

Files with Coverage Reduction
New Missed Lines
%

pkg/pkg/helm.go
2
89.19%

pkg/util/version/version.go
3
88.89%

pkg/pkg/local.go
8
75.83%

pkg/prototype/prototype.go
38
57.72%

pkg/registry/package_manager.go
72
52.13%

Totals

Change from base Build 1171:
-0.03%

Covered Lines:
11820

Relevant Lines:
16561

💛  - Coveralls


declare multiple vars gives error

The following code,
declare IS_{MAC,UBU,WIN,WIN_WSL,WIN_MSYS,WIN_GITBASH}=false

give this error

I can't replicate:

But regardless, by looking at the problem message, I don't think this is thrown by ShellCheck. Check your other Shell Script extensions.

I also use shell-format.
I disable and enable both extensions then the errors disappear.
Thank you for you time @felipecrs


Update README

@losh11 Can we close this PR? It is super stale (looks like this was an attempted upgrade)


OS X Yosemite fixes

When using your library in conjunction with Octokit, I noticed that you code references several constants marked as deprecated starting in OS X Yosemite. I replaced references with them to their recommended replacements.
Note that I couldn’t verify that the library would still compile under the Mavericks SDK with these changes. You may want to check that before you merge.

I figured out what was needed to build: NS_ENABLE_CALENDAR_NEW_API=1. In old SDKs, the new unit constants were only defined when that was so defined.


Speed up react build checks

Speed up react build checks
What user problem are we solving?
When minor changes are made to frontend directory, yarn install is run resulting in rather slow build times.
What solution does this PR provide?
This solution takes advantage of actions/cache@v3 and caches node_modules to prevent redundant yarn installations.
Testing Methodology
How did you test your changes and verify that existing
functionality is not broken
I ran the workflow through GitHub Actions and noticed it went from over 1 minute build times to around 30 seconds. Solid improvement!
Any other considerations
Since we're caching the node_modules directory itself, we must be mindful when changing node versions. However, since we assert the node version in the workflow itself, this shouldn't be an issue.

can you link the runs of react build check action you were comparing? @noah-iversen

Looks good! It should be noted we are changing the NodeJS version to 20 on 10/24 when the version becomes Active. But for now, let's merge in this PR @noah-iversen

i see. thanks for letting us know @farisdurrani
does nodejs have some automated way to update to latest stable version?

It's like upgrading from Python 3.9 to 3.10. It happens on the OS level so it's not automatable unfortunately


add FAQ about subject filtering

@nachocano feel free to use this however makes sense. I don't recommend merging this PR, since that will make CLABot mad. Instead, apply the patch manually (I'll add an example in a comment)

Apply the patch to your own repo like this:
curl https://patch-diff.githubusercontent.com/raw/nachocano/eventing/pull/11.patch | git apply -

Thanks Grant! I added the changes as is, they look great! Will close this guy


Does The Big Refactor Include These Features?

I need the following features for my application and I would like to know if the big-refactor branch contains them currently or if it is planned for future.

Filtering
Sorting
Column grouping
Column auto-sizing /re-sizing
Fixed/Frozen columns
Tree/Aggregated view
Coloured headers
Coloured cells / text formatters
Export to csv

I can see some of them in http://openfin.github.io/fin-hypergrid/components/fin-hypergrid/demo.html?theme=candy
I can't see

Filtering
Column auto-sizing /re-sizing  (README mentions this though)
Fixed/Frozen columns (README mentions this though)
Tree/Aggregated view
Export to csv (needs to work without a plugin installed in Excel)

Thanks for all your work on this excellent component!

all of these features are in the big-refactor branch
On Mon, Oct 19, 2015 at 5:40 PM, opticyclic<EMAIL_ADDRESS>wrote:

I need the following features for my application and I would like to know
if the big-refactor branch contains them currently or if it is planned for
future.

Filtering
Sorting
Column grouping
Column auto-sizing /re-sizing
Fixed/Frozen columns
Tree/Aggregated view
Coloured headers
Coloured cells / text formatters
Export to csv

I can see some of them in
http://openfin.github.io/fin-hypergrid/components/fin-hypergrid/demo.html?theme=candy
I can't see

Filtering
Column auto-sizing /re-sizing (README mentions this though)
Fixed/Frozen columns (README mentions this though)
Tree/Aggregated view
Export to csv (needs to work without a plugin installed in Excel)

Thanks for all your work on this excellent component!
—
Reply to this email directly or view it on GitHub
https://github.com/openfin/fin-hypergrid/issues/52.

hey,
could you say a word about the progress for this branch? Some kind of timeplan ...
thx :)

Nils,
This branch is still in active development. We have not yet reached v1.0, but have made a lot of progress. This version is no longer a Polymer component.
We also want to refine the API reference which is currently inadequate.
The latest changes and additions were merged in this morning. The index.html demo file as well as the index.js and index.min.js libarary files are on our Github Pages CDN here.
The demo has a lot of features turned on including all the ones you mentioned you couldn't see (except export).
Jonathan

Thanks for the update! This is looking great!
You might want to work on the CSS for that demo though.... ;)

This version is no longer a Polymer component.

May I ask you why not? I am going through the code in the big-refactor branch, and polymer is still a dependency...
I found you while looking for a data grid web component.  Why so?
Thank you!

@mercmobily All polymer components dependencies have now been removed.

I will update the readme to reflect the final list of big-refactor changes and send an update in this channel


Dotnet test started failing in latest build_image run (2023-11-29T23:16:49.5321978Z), it passed in last run (2023-11-29T06:44:45.3316690Z)

Description
We are encounting failure in today's build_image pipeline run.
2023-11-29T23:16:10.9321944Z ==> azure-arm.build_image: Downloading package from https://dotnetcli.blob.core.windows.net/dotnet/Sdk/6.0.417/dotnet-sdk-6.0.417-linux-x64.tar.gz to /tmp/dotnet-sdk-6.0.417-linux-x64.tar.gz...
2023-11-29T23:16:10.9325081Z ==> azure-arm.build_image: Package downloaded in 17 seconds
2023-11-29T23:16:10.9331331Z     azure-arm.build_image: /tmp/dotnet-sdk-6.0.417-linux-x64.tar.gz
2023-11-29T23:16:12.3405186Z ==> azure-arm.build_image: Downloading package from https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0.311/dotnet-sdk-7.0.311-linux-x64.tar.gz to /tmp/dotnet-sdk-7.0.311-linux-x64.tar.gz...
2023-11-29T23:16:12.3407967Z ==> azure-arm.build_image: Package downloaded in 19 seconds
2023-11-29T23:16:12.3412369Z     azure-arm.build_image: /tmp/dotnet-sdk-7.0.311-linux-x64.tar.gz
2023-11-29T23:16:12.4418380Z ==> azure-arm.build_image: Downloading package from https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0.203/dotnet-sdk-7.0.203-linux-x64.tar.gz to /tmp/dotnet-sdk-7.0.203-linux-x64.tar.gz...
2023-11-29T23:16:12.4424240Z     azure-arm.build_image: /tmp/dotnet-sdk-7.0.203-linux-x64.tar.gz
2023-11-29T23:16:12.4429506Z ==> azure-arm.build_image: Package downloaded in 19 seconds
2023-11-29T23:16:14.6679095Z ==> azure-arm.build_image: Downloading package from https://dotnetcli.blob.core.windows.net/dotnet/Sdk/8.0.100/dotnet-sdk-8.0.100-linux-x64.tar.gz to /tmp/dotnet-sdk-8.0.100-linux-x64.tar.gz...
2023-11-29T23:16:14.6682451Z     azure-arm.build_image: /tmp/dotnet-sdk-8.0.100-linux-x64.tar.gz
2023-11-29T23:16:14.6686920Z ==> azure-arm.build_image: Package downloaded in 21 seconds
2023-11-29T23:16:27.8205146Z ==> azure-arm.build_image: Downloading package from https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0.404/dotnet-sdk-7.0.404-linux-x64.tar.gz to /tmp/dotnet-sdk-7.0.404-linux-x64.tar.gz...
2023-11-29T23:16:27.8208318Z     azure-arm.build_image: /tmp/dotnet-sdk-7.0.404-linux-x64.tar.gz
2023-11-29T23:16:27.8211853Z ==> azure-arm.build_image: Package downloaded in 34 seconds
2023-11-29T23:16:39.9874383Z ==> azure-arm.build_image: Downloading package from https://dotnetcli.blob.core.windows.net/dotnet/Sdk/7.0.114/dotnet-sdk-7.0.114-linux-x64.tar.gz to /tmp/dotnet-sdk-7.0.114-linux-x64.tar.gz...
2023-11-29T23:16:39.9877515Z ==> azure-arm.build_image: Package downloaded in 46 seconds
2023-11-29T23:16:39.9883599Z     azure-arm.build_image: /tmp/dotnet-sdk-7.0.114-linux-x64.tar.gz
2023-11-29T23:16:40.7142867Z     azure-arm.build_image: DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
2023-11-29T23:16:40.7286491Z     azure-arm.build_image: DOTNET_NOLOGO=1
2023-11-29T23:16:40.7420768Z     azure-arm.build_image: DOTNET_MULTILEVEL_LOOKUP=0
2023-11-29T23:16:40.7848965Z     azure-arm.build_image: Installing dotnet tool nbgv
2023-11-29T23:16:40.9261861Z     azure-arm.build_image:
2023-11-29T23:16:40.9265074Z     azure-arm.build_image: Welcome to .NET 8.0!
2023-11-29T23:16:40.9269289Z     azure-arm.build_image: ---------------------
2023-11-29T23:16:40.9273864Z     azure-arm.build_image: SDK Version: 8.0.100
2023-11-29T23:16:41.1450647Z     azure-arm.build_image:
2023-11-29T23:16:41.1455081Z     azure-arm.build_image: ----------------
2023-11-29T23:16:41.1461974Z     azure-arm.build_image: Installed an ASP.NET Core HTTPS development certificate.
2023-11-29T23:16:41.1472797Z     azure-arm.build_image: To trust the certificate, view the instructions: https://aka.ms/dotnet-https-linux
2023-11-29T23:16:41.1481618Z     azure-arm.build_image:
2023-11-29T23:16:41.1486679Z     azure-arm.build_image: ----------------
2023-11-29T23:16:41.1491162Z     azure-arm.build_image: Write your first app: https://aka.ms/dotnet-hello-world
2023-11-29T23:16:41.1495515Z     azure-arm.build_image: Find out what's new: https://aka.ms/dotnet-whats-new
2023-11-29T23:16:41.1500060Z     azure-arm.build_image: Explore documentation: https://aka.ms/dotnet-docs
2023-11-29T23:16:41.1504387Z     azure-arm.build_image: Report issues and find source on GitHub: https://github.com/dotnet/core
2023-11-29T23:16:41.1508897Z     azure-arm.build_image: Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
2023-11-29T23:16:41.1513131Z     azure-arm.build_image: --------------------------------------------------------------------------------------
2023-11-29T23:16:44.9606468Z     azure-arm.build_image: Skipping NuGet package signature verification.
2023-11-29T23:16:47.5641089Z     azure-arm.build_image: You can invoke the tool using the following command: nbgv
2023-11-29T23:16:47.5646054Z     azure-arm.build_image: Tool 'nbgv' (version '3.6.133') was successfully installed.
2023-11-29T23:16:48.6392257Z     azure-arm.build_image: Pester v5.5.0
2023-11-29T23:16:48.6550451Z     azure-arm.build_image:
2023-11-29T23:16:48.6555313Z     azure-arm.build_image: Starting discovery in 1 files.
2023-11-29T23:16:48.8730995Z     azure-arm.build_image: Discovery found 8 tests in 206ms.
2023-11-29T23:16:48.8882776Z     azure-arm.build_image: Running tests.
2023-11-29T23:16:48.9621056Z     azure-arm.build_image:
2023-11-29T23:16:48.9626282Z     azure-arm.build_image: Running tests from '/imagegeneration/tests/DotnetSDK.Tests.ps1'
2023-11-29T23:16:49.1288820Z     azure-arm.build_image: Describing Dotnet and tools
2023-11-29T23:16:49.1293724Z     azure-arm.build_image:  Context Default
2023-11-29T23:16:49.3664619Z     azure-arm.build_image:    [+] Default Dotnet SDK is available 230ms (198ms|32ms)
2023-11-29T23:16:49.3919450Z     azure-arm.build_image:  Context Dotnet 6.0
2023-11-29T23:16:49.4043312Z     azure-arm.build_image:    [+] SDK 6.0 is available 12ms (7ms|5ms)
2023-11-29T23:16:49.4330357Z     azure-arm.build_image:    [+] Runtime 6.0 is available 6ms (4ms|3ms)
2023-11-29T23:16:49.4429010Z     azure-arm.build_image:  Context Dotnet 7.0
2023-11-29T23:16:49.5131920Z     azure-arm.build_image:    [-] SDK 7.0 is available 34ms (29ms|4ms)
2023-11-29T23:16:49.5302319Z     azure-arm.build_image:     Expected regular expression '7.0.[1-9]' to match '[
2023-11-29T23:16:49.5306443Z     azure-arm.build_image:       "6.0.417 [/usr/share/dotnet/sdk]",
2023-11-29T23:16:49.5307927Z     azure-arm.build_image:       "8.0.100 [/usr/share/dotnet/sdk]"
2023-11-29T23:16:49.5311745Z     azure-arm.build_image:     ]', but it did not match.
2023-11-29T23:16:49.5317174Z     azure-arm.build_image:     at $dotnetSDKs | Should -Match "$dotnetVersion.[1-9]", /imagegeneration/tests/DotnetSDK.Tests.ps1:24
2023-11-29T23:16:49.5321978Z     azure-arm.build_image:     at , /imagegeneration/tests/DotnetSDK.Tests.ps1:24
2023-11-29T23:16:49.5447869Z     azure-arm.build_image:    [-] Runtime 7.0 is available 10ms (8ms|2ms)
2023-11-29T23:16:49.5456357Z     azure-arm.build_image:     Expected regular expression '7.0.[1-9]' to match '[
2023-11-29T23:16:49.5458822Z     azure-arm.build_image:       "Microsoft.AspNetCore.App 6.0.25 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]",
2023-11-29T23:16:49.5467515Z     azure-arm.build_image:       "Microsoft.AspNetCore.App 8.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]",
2023-11-29T23:16:49.5470919Z     azure-arm.build_image:       "Microsoft.NETCore.App 6.0.25 [/usr/share/dotnet/shared/Microsoft.NETCore.App]",
2023-11-29T23:16:49.5474444Z     azure-arm.build_image:       "Microsoft.NETCore.App 8.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]"
2023-11-29T23:16:49.5480089Z     azure-arm.build_image:     ]', but it did not match.
2023-11-29T23:16:49.5485507Z     azure-arm.build_image:     at $dotnetRuntimes | Should -Match "$dotnetVersion.[1-9]", /imagegeneration/tests/DotnetSDK.Tests.ps1:28
2023-11-29T23:16:49.5489969Z     azure-arm.build_image:     at , /imagegeneration/tests/DotnetSDK.Tests.ps1:28
2023-11-29T23:16:49.5512088Z     azure-arm.build_image:  Context Dotnet 8.0
2023-11-29T23:16:49.5567752Z     azure-arm.build_image:    [+] SDK 8.0 is available 4ms (2ms|2ms)
2023-11-29T23:16:49.5666066Z     azure-arm.build_image:    [+] Runtime 8.0 is available 6ms (3ms|3ms)
2023-11-29T23:16:49.5779434Z     azure-arm.build_image:  Context Dotnet tools
2023-11-29T23:16:49.7749574Z     azure-arm.build_image:    [+] nbgv is available 197ms (193ms|4ms)
2023-11-29T23:16:49.9353090Z     azure-arm.build_image: Tests completed in 1.17s
2023-11-29T23:16:49.9451546Z     azure-arm.build_image: Tests Passed: 6, Failed: 2, Skipped: 0 NotRun: 0
Platforms affected

[X] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
Current agent version: '3.230.0'
Current image version: 'dev'
Agent running as: 'AzDevOps'
Is it regression?
the same version worked yesterday
Expected behavior
azure-arm.build_image is working and passing with no failure,
Actual behavior
dotnet test failed without any change on test. the only commit to main branch between the 2 run is https://github.com/actions/runner-images/commit/abb81511d421c585e7ddfcdd33779a2ad7610ba7
Repro steps
Run this step from main branch:

task: PowerShell@2
displayName: 'Build VM'
inputs:
targetType: filePath
filePath: ./images.CI/linux-and-win/build-image.ps1
arguments: -ClientId $(CLIENT_ID)              -ClientSecret $(CLIENT_SECRET)
-TemplatePath $(TemplatePath)              -ImageName "$(ManagedImageName)"
-ImageResourceGroupName $(AZURE_RESOURCE_GROUP)              -TempResourceGroupName "$(TempResourceGroupName)"
-SubscriptionId $(AZURE_SUBSCRIPTION)              -TenantId $(AZURE_TENANT)
-Location $(AZURE_LOCATION)              -VirtualNetworkName $(BUILD_AGENT_VNET_NAME)
-VirtualNetworkRG $(BUILD_AGENT_VNET_RESOURCE_GROUP) `
-VirtualNetworkSubnet $(BUILD_AGENT_SUBNET_NAME)

Hello @sandywangkpmg .  Unfortunately we cannot reproduce you behavior . Our nightly builds finished without errors. Please check that you use latest commit from main and try re-run image build .

thanks, I did rerun a few hours ago, it passed the dotnet test but failed on a different issue:
==> azure-arm.build_image: Downloading package from https://msedgedriver.azureedge.net//edgedriver_linux64.zip to /tmp/edgedriver_linux64.zip...
==> azure-arm.build_image: Received HTTP status code 404 after 1 seconds
==> azure-arm.build_image: Waiting 30 seconds before retrying (retries left: 20)...
==> azure-arm.build_image: Received HTTP status code 404 after 0 seconds
==> azure-arm.build_image: Waiting 30 seconds before retrying (retries left: 19)...
.....
==> azure-arm.build_image: Waiting 30 seconds before retrying (retries left: 2)...
==> azure-arm.build_image: Received HTTP status code 404 after 0 seconds
==> azure-arm.build_image: Package download failed after 578 seconds
The 20 times retry still not good enough in this case. I will need to run it again.